Как определить зоны доставки по адресу?

Вопрос уже где-то появлялся, но остался без ответа.

Задача, вроде бы, несложная. Получить адрес, отправить его в яндексовский гелокатор, получить координаты. Далее я вижу 2 пути:

1. Спросить у Яндекса, относится ли точка к той или иной зоне доставки.

2. Собственным алгоритмом на посчитать, входит ли точка в многоугольник.


Первый способ упирается в то, что найти подобный инструмент в API Яндекса у меня не получилось. Плохо смотрел?

Второй — в список вершин полигона. Вручную переписывать координаты кольцевой (спб), Лен. области и границ города как-то не очень хочется:) Может они уже где-то лежат, а я не видел?


Есть еще одна задачка. Посчитать расстояние, например, от кольцевой до адреса. Требуемая точность ~5км, поэтому можно не задействовать инструменты для построения маршрутов, а просто посчитать расстояние до ближайшей точки на кольце. Возможно, кто-то подскажет идею получше?

Все это, естественно, хочется делать на сервере, а не на клиенте. Отсюда вопросы:


1. Может ли яндекс сказать, входит ли точка в многоугольник? (используя только xml api)

2. Где можно взять список координат кольцевой, границ СПб и ЛО?

3. Возможно, у кого-нибудь есть идея, как лучше посчитать расстояние от границы зоны до точки?


Естественно, приветствуются альтернативные идеи реализации.


Заранее спасибо.
  • Вопрос задан
  • 3948 просмотров
Решения вопроса 1
@rPman
черт… попадание точки в многоугольник, алгоритм примитивный:
>> Алгоритм примерно такой: провести луч из точки например вправо. Посчитать кол-во пересечений луча со сторонами полигона. Если нечетное — то внутри, если четное — снаружи.

Рисуйте зоны на сайте яндекса, экспортируйте их к себе, вставляйте на сервер, используйте.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы