Клуб API Карт

Добавление через options.set баллуна по клику на polygon

Kratit
15 апреля 2013, 18:41

 

// добавление на карту коллеции объектов (полигонов)           

            myMap.geoObjects.add(myCollection);  //выводим коллекцию на карту

// обработчик клика по полигону в коллекции        

            myCollection.events.add('click', function (e) {

                var object = e.get('target'); // ссылка не геообъект (полигон в моём случае)

                var idPolygon = object.properties.get('id');   // это id полигона БД, чтобы получить данные для баллуна

                $.post('/settings/pushDataBalloon', {id:idPolygon}, function(data){

// метод balloonDataInCollection(data) в качестве data содержит массив с данными для вывода в баллун

// и возвращает ymaps.layout.storage.add('my#simplestBCLayoutExist', myBalloonContentLayoutClassExist);

                    var Myballoon = PolygonData.balloonDataInCollection(data); 

// а вот тут у меня походу ошибка, потому что баллун появляется только при двойном клике и выводится в баллуне сразу два баллуна,

// т.е. один раз нажимаю на полигон: результат - ничего, на тот же полигон нажимаю, появляется баллун с двойны вложением. 

                    object.options.set('balloonContentLayout', 'my#simplestBCLayoutExist');

                }, 'JSON');

            });

 

 

Помогите пожалуйста решить проблемы. Заранее спасибо. Проблема описана в комментариях к коду. 

 

3 комментария
Подписаться на комментарии к посту
зачем добавлять макет в хранилище при каждом клике на полигон? добавь его один раз и выставь опцию коллекции. Постом у тебя должны приходить только данные, но не макеты

Ну хоть бы один примерчик: 

 

 добавь его один раз и выставь опцию коллекции

Пожалуйста!!! 

myCollection.options.set('balloonContentLayout', 'my#simplestBCLayoutExist');