Клуб API Карт

Как сделать, чтобы при поиске не было масштабирования вплоть до дома, а центровка на результате была?

Пост в архиве.
anatoly-kirsanov
13 июля 2013, 13:26

Сделал свой провайдер поиска для ymaps.control.SearchControl. Возвращаю ему список результатов. Там точки и многоугольники. В списке найденных вариантов показываются только точки. Это меня устраивает. Но не устраивает, что при переходе к найденной точке происходит масштабирование (у меня маштаб установлен так, что видна вся Москва, а при переходе переключается на дома). Ищу по названию объекта (прямое геокодирование).

 

В итоге в элементе управления я отключил переход вообще (noCentering: true). Но это тоже не дело, т.к. точки бывают за пределами области видимости.

 

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

6 комментариев

Слушайте клик на метках из списка результатов и выставляйте карте соответствующий центр.

anatoly-kirsanov
13 июля 2013, 19:06

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

 

На эти точки надо вешать обработчки?

да

anatoly-kirsanov
14 июля 2013, 05:21

Не работает этот способ.

Обработчик точно есть, событие обрабатывается. Только создается оно не при клике на пункт в результатах поиска, а при клике на точку на карте.

При этом отрабатывается как центрирование карты в обработчике, так и балун показывается (он задан для точки).

Это значит, что на строках списка должно быть свое событие, точнее обработчик (событие наверняка тоже click).

Проблема в том, что непонятно как получить доступ к этому списку, чтобы на его элементы повесить обработчик.

Смотрели события в документации? Например, resultselect?

anatoly-kirsanov
14 июля 2013, 16:54

Спасибо. Это то, что нужно.

 

Теперь понятно почему в примерах результаты поиска добавляют в GeoObjectArray, а не сразу на карту или через GeoObjectCollection.