Клуб API Карт

Открытие полигона по внешней ссылке

pixelwow
15 мая 2011, 12:01

Подскажите как правильно открыть описание полигона?

Посмотрел документацию, на сколько я понял, открыть можно только метку? (http://api.yandex.ru/maps/jsapi/doc/ref/reference/map.xml#event-BalloonOpen)

Как делал я: http://duma.pihel.jino.ru/deputy/okrug.php?fltr=1&dep=0&okr=0&str=0&num=&corp=0

В событии удачного создания карты создаю массив с балунами:

var ms = {};
    function createMarker(object) {
         var latlng = new YMaps.GeoPoint(object.lng, object.lat);
         var marker = new YMaps.Placemark(latlng); 
         marker.mid = object.id;
         ms[parseInt(object.description)] = marker;
    }
 
..... 
ml.get(0).forEach(function (obj) {
                 createMarker(obj);
                 obj.description = loadDescr(obj.description);
            }
..... 

 

 

Обработчки клика на ссылку:

function openbal(id) {
  map.setCenter(ms[id].getGeoPoint()
  ms[id].openBalloon(
  //map.setCenter(new YMaps.GeoPoint(37.616485,55.751635)
  //map.openBalloon(new YMaps.GeoPoint(37.616485,55.751635), 'Москва', {hasCloseButton: false, mapAutoPan: 0}
  //map.openBalloon(ms[id].getGeoPoint(), 'test', , {hasCloseButton: false, mapAutoPan: 0}
  return false;
}

 

Меня перебрасывает куда-то в море (похоже координаты не верные записываются или вообще пустые?)

Или нужно вообще как-то подругому делать?

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

 

Посмотрел документацию, на сколько я понял, открыть можно только метку?

 

Нет отрыть балун можно у любого оверлея и просто на карте по координате.

в том числе у полигона и ломаной 

 

В событии удачного создания карты создаю массив с балунами:

Я не знаю такого события, расскажите про него поподробнее

 

Меня перебрасывает куда-то в море (похоже координаты не верные записываются или вообще пустые?)

Можно поставить firebug и посмотреть что приходит

 

 

Я не знаю такого события, расскажите про него поподробнее

 

 

// Обработчик успешной загрузки YMapsML
        YMaps.Events.observe(ml, ml.Events.Load, function (ml) {
//
    });

 

спасибо за совет переделал все проще и заработало

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

Это все же событие загрузки YMapsML, а не карты.

 

В принципе, в вашем случае, все можно сделать еще проще.

Никаких специальных манипуляций для открытия балуна не нужно делать.

Он сам открывается по клику

Вашу функцию loadDescr тоже можно сократить впользу встроенного в АПИ механизма шаблонов

 

Никаких специальных манипуляций для открытия балуна не нужно делать.

Он сам открывается по клику

Я хотел, чтобы балун открывался не по клику на округе,  а по клику на внешней ссылке из результатов поиска:

http://duma.pihel.jino.ru/deputy/okrug.php?fltr=1&dep=0&okr=0&str=0&num=&corp=0

(блок "Результаты поиска")

Насчет шаблонов, спасибо, сейчас почитаю.