TransWikia.com

после загрузки kml на нажатие области поймать balloon

Stack Overflow на русском Asked on November 20, 2021

var data = ymaps.geoXml.load("http://mebelmarket31.ru/service/GeoKML.kml").then(function(res) 
{
    myMap.geoObjects.add(res.geoObjects);
           
    res.geoObjects.events.add('click', function (e) 
    {
        var coords = e.get('coords');
        
        // Если метка уже создана – просто передвигаем ее.
        if (myPlacemarkw) 
        {
            myPlacemarkw.geometry.setCoordinates(coords);
        } else 
        {
            myPlacemarkw = createPlacemark(coords);
            myMap.geoObjects.add(myPlacemarkw);
        }
        getAddress(coords);            
          
    });
    
    res.geoObjects.events.add('balloonopen', function (e) 
    {
        var target = e.get('target');
        
        target.close();
        
    });
                   
});

// Создание метки.
function createPlacemark(coords) {
    return new ymaps.Placemark(coords, {
        iconCaption: 'поиск...'
    }, {
        preset: 'islands#violetDotIconWithCaption'
    });
}

// Определяем адрес по координатам (обратное геокодирование).
function getAddress(coords) {
    myPlacemarkw.properties.set('iconCaption', 'поиск...');
    ymaps.geocode(coords).then(function (res) {
        var firstGeoObject = res.geoObjects.get(0);

        myPlacemarkw.properties
            .set({
                // Формируем строку с данными об объекте.
                iconCaption: [
                    // Название населенного пункта или вышестоящее административно-территориальное образование.
                    firstGeoObject.getLocalities().length ? firstGeoObject.getLocalities() : firstGeoObject.getAdministrativeAreas(),
                    // Получаем путь до топонима, если метод вернул null, запрашиваем наименование здания.
                    firstGeoObject.getThoroughfare() || firstGeoObject.getPremise()
                ].filter(Boolean).join(', '),
                // В качестве контента балуна задаем строку с адресом объекта.
                balloonContent: firstGeoObject.getAddressLine()
            });
    });
}

Не могу ни как поймать этот хитрый балун который показывает имя зоны.
Необходимо его выловать и поправить например добавить адрес точки и цену доставки.
Либо его просто закрыть а свою точку я сам поставлю.

Спасибо.

One Answer

Вот он и балун, молодо зелено.

 res.geoObjects.events.add('balloonopen', function (e) 
    {
        var target = e.get('target');
        
        var balloon = target.balloon;
               
        balloon.close();
        
    });

Answered by Станислав on November 20, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP