Клуб API Карт

Информация о районах Москвы

vveya
15 февраля 2013, 20:12

Прошу помочь в решении задачи определения принадлежности определённой точки на карте к району Москвы. На выходе мне нужно получить адрес объекта и идентификатор района, в котором он расположен.

Первый вопрос, который хочу задать: Обратное геокодирование иногда возвращает название района, а иногда - нет. Если возвращает, то, в зависимости от положения, его номер в списке найденных объектов изменяется.

Собственно, вопрос: есть ли какой-нибудь чёткий алгоритм получения информации о районе без добавления на карту дополнительных объектов? Или 

Если такого алгоритма нет, то, как я понимаю, нужно будет задать границы районов самостоятельно - в виде ломаных или многоугольников. Это - не проблема, но как потом установить связь между положением и границами этих объектов? Типовой алгоритм для выявления факта нахождения точки в пределах многоугольника реализовать несложно, но районов-то много! Ведь не запускать же этот алгоритм для каждого из них по очереди?


Может быть, кто-нибудь уже решал подобную проблему?  

3 комментария
Подписаться на комментарии к посту

1. геокодер возвращает информацию в соответствии со стандартом xAL

2. если у вас есть координаты полигонов районов, можно использовать метод геометрии полигона contains для определения попадания точки в его границы (т.е. никаких алгоритмов реализовывать не надо и геокодер тут не нужен)

3. Районов не так много и и перебирать их все, вызывая метод contains на его геометрии вполне себе нормальное решение (это будет в разы быстрее чем даже один http-запрос к геокодеру)

Спасибо за ответ.

Однако, обнаружилось намного более простое решение этой задачи. Как выяснилось, всё уже сделали за нас:-): если в качестве опции для геокодера задать kind:'district', то он как раз и возвращает готовое название района Москвы или другого города. 

 Демо 

Отличное демо, наконец я узнал какие микрорайоны есть в Подольске.