Клуб API Карт

Замена содержимого балуна

Юрий Казаков
10 августа 2012, 16:59

Здравствуйте

 

<?xml version="1.0" encoding="windows-1251"?>

<ymaps:ymaps xmlns:ymaps="http://maps.yandex.ru/ymaps/1.x" xmlns:repr="http://maps.yandex.ru/representation/1.x" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maps.yandex.ru/schemas/ymaps/1.x/ymaps.xsd">

<ymaps:GeoObjectCollection>

<gml:featureMembers>

<ymaps:GeoObject>

<gml:id>1021</gml:id>

<gml:name>Объект №1</gml:name>

<gml:description>...</gml:description>

<gml:Point><gml:pos>30.527964 53.987643</gml:pos>

</gml:Point>

</ymaps:GeoObject>

...

</gml:featureMembers>

</ymaps:GeoObjectCollection>

</ymaps:ymaps>

 

 

Нужно, чтобы при открытии балуна, обработчику события balloonopen передавался gml:id.

Как добраться из callback-функции до поля id?

Пытаюсь сделать

 

map.events.add("balloonopen", function(_e) {

  alert(???); // Как вывести в алерт id связанного с данным балуном GeoObject'а?

});

Спасибо.

 

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

Если обработчик открытия балуна вешать на метку

то так:

console.log(e.get('target').properties.getAll());

Если, как у Вас, вешать его на карту (не знаю зачем это надо)

тогда так:

console.log(e.get('balloon').getData().geoObject.properties.getAll());

Юрий Казаков
10 августа 2012, 17:48

Спасибо большое. Всё получилось!:-)

Юрий Казаков
10 августа 2012, 19:13

Простите, а можно ещё вопросик?

Задаю балуну его наполнение:

balloonContentBody = "

Объект 1

Последние 10 коммутаций:

";

В другой функции делаю:

document.getElementById('divObj1Journal').innerHTML = "Blah-blah-blah
999999999999999999999999
000
";

 

Но размеры балуна остаются прежние и, соответственно, отображается только небольшой кусочек innerHTML'а.

В чём косяк? Можно ли как-либо задать балуну свойство типа autosize? Если нет, то как это обойти?

Спасибо!

 

Балуна физически нет в dom до его открытия.

Все доступные опции балуна есть в документации