Клуб API Карт

Поиск геокодером в видимой области

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

При поиске улицы в видимой области карты у меня почему-то происходит поиск по всей карте.

На примере из документации происходит тоже самое

http://api.yandex.ru/maps/jsapi/examples/geocoding.html

Например, если ввести в поиск "невский", то он найдет невский проспект в Петербурге, хотя на экране Москва.


Вопрос, почему?


--

Уточню. В приведенном примере яндекса четко прописана область поиска (map.getBounds()). Но поиск происходит не только по той области, которая задается текущим положением карты (map.getBounds()).

6 комментариев
Александр Новиков
28 января 2016, 07:47
Геокодер никак не привязан к тому что у вас на экране в текущий момент. Но для геокодера есть возможность ограничить область поиска - смотрите документацию.
А вы сами из питера?
Если да то умный геокодер подставляет его в начало строки поиска, если вы не указали другой город.
А так варианта два - задать область поиска как сказал Newman, либо произвести обратное геодирование, получить от ответа регион или город, и дальше работать от них
Александр Перов
28 января 2016, 07:47
Уточню. В приведенном примере яндекса четко прописана область поиска (map.getBounds()). Но поиск происходит не только по той области, которая задается текущим положением карты (map.getBounds()).
Искать я хочу в одном конкретном городе. Т.е. обратное геокодирование мне не нужно.
И да, я из питера.
Sergey Konstantinov
28 января 2016, 07:47
По умолчанию, геокодер ищет объекты, начиная с переданной области. Для того, чтобы объекты вне области не искались вообще необходимо указать параметр strictBounds: true

new YMaps.Geocoder('Адрес', { boundedBy: map.getBounds(), strictBounds: true });
Александр Перов
28 января 2016, 07:47
О! Спасибо! Это то что надо. Как я проглядел эту опцию в доках - ума не приложу.
Воспользуйтесь советом, который дал twirl-team, так же можете почитать статью "Как ограничить область поиска?".