Вопрос уже где-то появлялся, но остался без ответа.
Задача, вроде бы, несложная. Получить адрес, отправить его в яндексовский гелокатор, получить координаты. Далее я вижу 2 пути:
1. Спросить у Яндекса, относится ли точка к той или иной зоне доставки.
2. Собственным алгоритмом на посчитать, входит ли точка в многоугольник.
Первый способ упирается в то, что найти подобный инструмент в API Яндекса у меня не получилось. Плохо смотрел?
Второй — в список вершин полигона. Вручную переписывать координаты кольцевой (спб), Лен. области и границ города как-то не очень хочется:) Может они уже где-то лежат, а я не видел?
Есть еще одна задачка. Посчитать расстояние, например, от кольцевой до адреса. Требуемая точность ~5км, поэтому можно не задействовать инструменты для построения маршрутов, а просто посчитать расстояние до ближайшей точки на кольце. Возможно, кто-то подскажет идею получше?
Все это, естественно, хочется делать на сервере, а не на клиенте. Отсюда вопросы:
1. Может ли яндекс сказать, входит ли точка в многоугольник? (используя только xml api)
2. Где можно взять список координат кольцевой, границ СПб и ЛО?
3. Возможно, у кого-нибудь есть идея, как лучше посчитать расстояние от границы зоны до точки?
Естественно, приветствуются альтернативные идеи реализации.
черт… попадание точки в многоугольник, алгоритм примитивный:
>> Алгоритм примерно такой: провести луч из точки например вправо. Посчитать кол-во пересечений луча со сторонами полигона. Если нечетное — то внутри, если четное — снаружи.
Рисуйте зоны на сайте яндекса, экспортируйте их к себе, вставляйте на сервер, используйте.