Клуб API Карт

Определение: к какому территориальному сегменту (выбранному полигону) относится адрес

Сергей Потапов
24 июня 2014, 17:53

Приветствую всех. Задача следующего рода:

1) Есть список адресов домов в Петербурге.

Например:

Невский, 56

Будапештская, 32

Лиговский, 23

и т.д.

 

2) Есть сегментация: деление карты Петербурга на области (фигуры). По аналогии с фигурами (полигонами, границами) районов, но выбирается по своему усмотрению.

 

3) Задача в следующем:

1. Разбить город на сегменты (очерчить границы каждого сегмента и назвать очерченный полигон). Всего, предположим, 20 сегментов.

2. Сформировать запрос Яндексу:

- К какому сегменту относится объект с такими-то координатами долготы и широты?

Не принципиально: указывать адрес дома или его координаты.

Не принципиально: получать ответ на запрос по одному объекту (следовательно, запросов и файлов данных будет столько, сколько объектов). Либо сформировать файл запроса, содержащий все адреса, и в ответе получить информацию: к какому сегменту относится каждый из указанных адресов.

 

Думаю, понятно сформулировал. Если вкратце: как не отметить на карте, а получить информацию о том, к какому из определенных пользователем полигонов на карте относится адрес?

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

прогоняете ваши адреса через геокодер и сохраняете их координаты.

обрисовываете ваши сегменты полигонами

используете метод геометрии полигона contains для определения какие из координат адресов в него попадают

Сергей Потапов
24 июня 2014, 20:29

Спасибо большое. Я понял, какие инструменты использовать. Но как это прописать? Возможно ли сформулировать простой запрос яндексу вида (в виде ссылки, так же, как и при запросе о геокодировании): яндекс-карты - точка с заданными координатами - координаты полигона. Просто вижу все эти параметры. Не знаю, как их совместить воедино. Координаты полигонов создать могу. Координаты адресов тоже. А как корректно написать формулу проверки вхождения с использованием опции contains... Сложно. Не программист я.

var myPolygon = new ymaps.Polygon([[_координаты_]]);

 

if(myPolygon.geometry.contains([_координаты_])) {

    console.log('попали в полигон!!!');

}

 

Сергей Потапов
26 июня 2014, 11:53

Выглядит, как надо. И уж в завершение, чтоб помогли на все 100%. Как файл целиком должен выглядеть? То, что Вы написали + верх и низ страницы. Чтобы грубо говоря: в эту страницу подставить координаты полигона и адреса, открыть страницу и появится запись: попали в полигон!!!