Клуб API Карт

Административные округа

andikov89
25 августа, 11:06

Опишу в кратце задачу.
Имеем карту и фильтр, в фильтре есть кнопки АО по которым фильтруются объекты, те что не попадают под фильтр, скрываются.

Так же имеется страница пользователя, где он может изменять местоположение своего объекта.

Есть округа, где декодирование возвращает не то что нужно.
Например есть округ ЗелАО.
Если сделать декодированный запрос по любому адресу этого округа, то в ответ приходит не название округа, а город Зеленоград. Можно воспользоваться API карты OSM, в ответ приходит округ, как и ожидалось. Но это лишний запрос на внешний ресурс. Можно определять АО по массиву координат, но хотелось бы от этого отказаться, так как вызовет нагрузку, в полигонах OSM очень большое кол-во точек.

Вопрос следующий.
Как еще можно определить АО, без мультиполигонов и лишних запросов на внешние ресурсы?

4 комментария
Подписаться на комментарии к посту
Вы запрашиваете район города (kind=district) и в ответ приходит "Москва, Зеленоград, 20-й микрорайон"


Насколько я понял википедию Зеленоград и ЗелАО это одно и тоже





dimik,

Видимо в яндексе по своему определяют принадлежность округов к городу. 
Судя по вики, в Москве 12 округов, в которые входит ЗелАО. Соответственно, логично было бы получать в ответ на запрос (kind=district) название округа, как это происходит c остальными округами. С новомосковским округом такая же проблема.


Если запросить по координатам центра округа, то возвращает его название как и нужно. Но при изменении координат на любой адрес округа, почему то возвращает город. Странно это.


Я так понимаю тут не обойтись без полигонов, либо еще как то проверять принадлежность точки к округу.
Обновлено 25 августа, 12:26
andikov89,
возможно, но в любом случае district это неправильный kind для округа. тут надо запрашивать locality
dimik,
Я все таки думаю, что district правильней, вот например запрос на Центральный административный округ с параметром locality, возвращает не округ.