Как ограничить область поиска на Народной карте

Автор: | 08.01.2011

В начале, хочу поздравить Вас с Новым Годом и Рождеством! Пожелать крепкого здоровья, счастья и успехов во всем!

После публикации заметки «Используем Народную карту на своем сайте» читатели задавали мне вопрос: «Как можно ограничить область поиска на Народной карте?».

В этой небольшой заметке я расскажу как это легко сделать.

В качестве примера возьмем код из уже упомянутой заметки : «Используем элемент управления Поиск по карте»

Для поиска по Яндекс.Карте и Народной карте используется один и тот же класс Ymaps.Geocoder у которого есть специальные параметры для ограничения области поиска :

boundedBy — задает прямоугольная область на карте, где необходимо осуществлять поиск;
strictBounds в значении true – разрешает искать только внутри области, заданной опцией boundedBy.

Учитывая выше сказанное нам необходимо добавить следующий код:

// Прямоугольная область для Нижнего Новгорода
var nnovgorodBounds = new YMaps.GeoBounds(
new YMaps.GeoPoint(43.77352,56.198029), 
new YMaps.GeoPoint(44.119589,56.372946)
);

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

А строку добавления элемента поиска переписываем в виде:

map.addControl(new YMaps.SearchControl({geocodeOptions: {geocodeProvider: "yandex#pmap", boundedBy : nnovgorodBounds, strictBounds : true}}));

Посмотрим на наш пример в действии:

С начала загрузим старую версию страницы и попробуем найти на карте объект со словом Юпитер.

Получим следующий результат

Теперь найдем тоже используя исправленный нами код, с ограниченной областью поиска

Для написания данной заметки использовалась статья «Как ограничить область поиска?».

Измененный расширенный пример по работе с геокодером

.

Как ограничить область поиска на Народной карте: 2 комментария

  1. Андрей

    Добрый день!
    После введения ограничения на поиск при введении поискового запроса запрос выполняется корректно и объект находится на карте с максимальным масштабом, но если сразу после этого вписать другой поисковый запрос на объект, который не находится в пределах видимости (он банально не отображается в окне карты), то поск выдаст фразу, что такого объекта нет. Если масштаб предварительно уменьшить, что бы весь город влезал в окно отображения карты, то поиск корректно выполняется. Можете сказать с чем это может быть связано?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *