Клуб API Карт

ГеоКодирование и сужение мест поиска

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

Как сделать чтобы GeoCoder выдавал результат из определенной локации, например одного города? Не добавлять же постоянно в начало к пользовательскому запросу название города.

зы map.getBounds() чтото не прокатывает видать

И попутный вопрос: как сделать ограничение просмотра видимой области карты в пределах одного города ?

10 комментариев
Михаил Королев
28 января 2016, 08:42

по первому вопросу - могу предложить добавлять к строке запроса к геокодеру название локации в явном виде, прямо в формате ответа Геокодера Яндекса.

например, пишу вот здесь:http://api.yandex.ru/maps/jsapi/examples/geocoding.html

"Нижний новгород"

получаю ответ "Россия, Нижегородская область, Нижний Новгород"

Соответственно для поиска по Нижнему - достаточно добавлять это в начало строки, и введённая улица будет явно искаться в Нижнем.

Ну а по второму, думаю лучше дождаться ответа авторов.

При создании объекта класса YMaps.Geocoder можно указать в параметр boundedBy (область на карте, где предположительно находится искомый объект). Тогда поиск будет идти именно с этой области. Подробнее можно почитать в справочнике по программному интерфейсу.

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

в принципе подходит, я именно так и думал. но просто не знаю как это реализовать, с js я не так плотно и тесно взаимосвязан как с php.

А насчет boundedBy я указываю... он все равно ищет черте-где .....
Для того, чтобы запретить масштабирование карты двойным кликом, воспользуйтесь методом карты disableDblClickZoom(), для того, чтобы запретить перетаскивание карты мышью - disableDragging().

Можете привести ссылку на пример неправильного поиска геокодера, если ему задать boundedBy?
prinf.nnov.ru/section/map

попробуйте
сорри :) prinf.nnov.ru/section/map/

(слеш на конце)
К сожалению, страница по указанному Вами адресу отображается некорректно.
Я написал небольшой пример. Если искать ст. м. "Чкаловская", то будет найдена именно в Нижнем Новгороде, т.е. если указать boundedBy, то геокодер начинает искать именно с этой области.
эмм а что там неокорреткно?
Высыпалось множество ошибок php и сайт не работал. Сейчас все нормально.