Клуб API Карт

Геокодер - поиск в крае

KMikhail2007
19 декабря 2010, 23:25
Подскажите плиз можно ли привязать поиск к определенному краю, на пример надо найти поселок "Южный", но не тот что в Тульской обл., а тот что в Краснодарском крае?
7 комментариев
Подписаться на комментарии к посту
Если Вы всегда хотите искать в определенной области,
можно использовать поля boundedBy и strictBounds в options
Посмотрите пример Поиск объектов в заданной области

Либо используйте полное описание объекта через запятые
Россия, Краснодарский край, Динской район, поселок Южный 

Делаю так:


 



var bound = new YMaps.GeoBounds(new YMaps.GeoPoint(66.18,66.60), new YMaps.GeoPoint(66.59,66.75));


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



 


Но всё что-то не то. За пределами заданной зоны точно не ищёт, но и в этой зоне тоже не очень. К примеру, я нашел один объект, тут же ищу другой -- нет результата. Уменьшаю масштаб, снова ищу - ищет.


По части слова вообще отказывается искать! К примеру, ищу "больн" -- нет результата, "больничная" -- есть результат.


Что делать?

 
Но всё что-то не то. За пределами заданной зоны точно не ищёт, но и в  этой зоне тоже не очень. К примеру, я нашел один объект, тут же ищу  другой -- нет результата. Уменьшаю масштаб, снова ищу - ищет.


Топикстартер пишет про Геокодер.
Причем тут SearchControl?

Читайте документацию про options.useMapBounds
он по-умолчанию true  и Ваш bounds игнорирует

>Топикстартер пишет про Геокодер.


Ну вы ответили ему про это, этим ответом вы навели меня на то, как сделать поиск только по городу, но возникли некоторые трудности. Поэтому я у вас спросил, как у знающего человека (не захотел из-за такой мелочи создавать новую ветку).


Ещё спросил из-за того, что посчитал геокодер и SearchControl достаточно родственными вещами...



Читайте документацию про options.useMapBounds
он по-умолчанию true  и Ваш bounds игнорирует

 Спасибо! Теперь гораздо лучше (добавил useMapBounds:false в SearchControl), хотя раньше не сказать, что полностью мой bounds игнорировался. За его пределами точно не искал...


Можно ещё один вопрос? Как сделать так, чтобы поиск осуществлялся по части слова? Есть "Площадь В. Нака", по "Нак" (фамилия) ничего не находит, только по "нака", что не очень правильно.


 

День добрый. Сейчас, боюсь, так искать не получится. Мы не закладывали такой возможности. Если искать по частям слов, в выдаче окажется сумасшедшее количество объектов. Количество "мусора" превысит пользу от такого поиска.
Возможно, было бы уместно опционально сделать такую возможность, чтобы искалось по части слова, если по текущему запросу (поиск по полному слову) ничего не найдено.
Да, конечно. Мы мониторим запросы к сервису и отслеживаем неответы. Если много неответов будет в следствие подобных запросов, значит, нужно будет научиться отвечать :-)