Клуб API Карт

Геокодирование - поиск в определенном регионе

Пост в архиве.

Помогите, пожалуйста, найти наиболее рациональное решение.

У меня есть список городов и список находящихся в них объектов.

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

Но нужно при поиске ограничить область поиска определенным расстоянием от центра. Для разных городов это расстояние разное.

А иногда нужно найти объекты только в выбранном регионе. К примеру, в Московской области, но исключая Москву.

Какое решение будет наиболее разумным?

4 комментария

геокодер умеет фильтровать только по прямоугольной области.

Если вам нужно чтото сложнее (МО без Москвы) тогда придется делать полигон с дыркой и делать пост-фильтрацию результатов поиска, либо, как вариант всегда склеивать запрос с "Московская область, "

Спасибо. Пока обойдусь тем, что буду склеивать запрос.

 

И еще вопрос, возможно, глупый. Аналогично примеру http://api.yandex.ru/maps/jsbox/2.1/multigeocode - только в отличие от этого примера, я перебираю объекты в цикле, там добавляется строчка ".add(ymaps.geocode('Тут адрес объекта'))" .

Но до этих строчек в примере стоит var objects = ymaps.geoQuery(ymaps.geocode('Москва, Слесарный переулок, д.3')) - т.е. один адрес запрашивается отдельно. Как сделать так, чтобы все, что мне нужно, запрашивалось в цикле, не приходилось один адрес отделять? Не смогла найти.

 

Я тоже не смог найти, как это можно сделать и можно ли вообще. Поэтому первую запись массива/объекта отдельно, а со второй и далее - циклом.

Посмотрите примеры по GeoQuery http://api.yandex.ru/maps/jsbox/2.1/placemarks_in_circle

Можно еще поискать по форуму по этому ключевому слову, было уже несколько подобных вопросов.