Клуб API Карт

Отображение нужных меток и их баллунов

ovvk-info
10 октября 2012, 14:12

Добрый день.

Необходимо следующее. На карте есть метки. Ищется город и если в нем есть метка, то отображается только она. Если нет, то отображается искомый город и ближайший к нему.

geoResult - найденный город

obj4 - найденная ближайшая метка на карте

dist - расстояние между ними

В АПИ 1.0 было: 

var bounds new YMaps.GeoCollectionBounds();

if ( dist > 1000 ) {

map.addOverlay(geoResult);

bounds.clear();

bounds.add(obj4.getGeoPoint());

bounds.add(geoResult.getGeoPoint());

map.setBounds(bounds);

map.setZoom (map.getZoom()-1);

if ($("#CityFindType").val() == 1) { geoResult.openBalloon(); }

}else {

bounds.clear();

map.setZoom (9);

map.setCenter(obj4.getGeoPoint());

obj4.openBalloon();

}


В АПИ 2.0 пытаюсь по всякому. Например так:

var myGroup = new ymaps.GeoObjectCollection();

if ( dist > 1000 ) {

map.geoObjects.add(geoResult);

myGroup.add(obj4);

myGroup.add(geoResult);

//map.geoObjects.add(myGroup);

map.setBounds(myGroup.getBounds());

//map.setBounds([obj4.geometry.getCoordinates(), geoResult.geometry.getCoordinates()]);

if ($("#CityFindType").val() == 1) { geoResult.Balloon.open(); } //Пытаюсь открыть баллун, но не получается

} else {

map.setCenter(obj4.geometry.getCoordinates(),9);

obj4.Balloon.open();}


В случае, если искомый город присутствует - карта центруется на нем, но не открфывется баллун - только после клика.

В другом случае - просто исчезает существующая метка с карты.

5 комментариев
Подписаться на комментарии к посту

с большой буквы называют классы.

Экзампляры - с маленькой

balloon

Спасибо с одной проблемой разобрались.

А как быть с setBounds?

Никак карта не хочет показывать оба объекта.

И еще, после поиска через searchControl не открывается баллун на найденной метке.

geoResult.Balloon.open()

прочитайте что я написал вам выше

 

с большой буквы называют классы.Экзампляры - с маленькойballoon
Да, я понял свою ошибку. А с bounds вы можете мне помочь?