API Яндекс Карты - изменение цвета по клику на регион

подскажите, пожалуйста, как реализовать изменение цвета региона по клику или наведению, https://jsfiddle.net/ag2qpv8y/

ymaps.ready(init);

function init() {
    var map = new ymaps.Map('map', {
        center: [66.25, 65.15],
        zoom: 2,
        behaviors: ['drag'],
        controls: ['zoomControl']
        }, {
        // Ограничим область карты.
        restrictMapArea: [[79, 5], [34, -120]]
    });
    map.controls.get('zoomControl').options.set({size: 'small'});
    // Добавим заливку цветом.
    var pane = new ymaps.pane.StaticPane(map, {
        zIndex: 100, css: {
            width: '100%', height: '100%', backgroundColor: '#0D6FFF', opacity: '0.8'
        }
    });
    map.panes.append('white', pane);
        
    ymaps.borders.load('001', {
        lang: 'ru',
        fillColor: '#fff',
        strokeColor: '#000',
        strokeOpacity: 1.4,
        strokeWidth: 2,
        quality: 1
    }).then(function (result) {

        var background = new ymaps.Polygon([
            [
                [85, -100],
                [85, 0],
                [85, 100],
                [85, 180],
                [85, -110],
                [-85, -110],
                [-85, 180],
                [-85, 100],
                [-85, 0],
                [-85, -100],
                [85, -100]
            ]
        ], {}, {
            fillColor: '#fff',
            strokeColor: '#0267FF',
            strokeOpacity: 1,
            strokeWidth: 2,
        });

        var RU = result.features.filter(function (feature) { return feature.properties.iso3166 == 'RU'; })[0];
        var BY = result.features.filter(function (feature) { return feature.properties.iso3166 == 'BY'; })[0];
        var AB = result.features.filter(function (feature) { return feature.properties.iso3166 == 'AB'; })[0];
        var AZ = result.features.filter(function (feature) { return feature.properties.iso3166 == 'AZ'; })[0];
        var KZ = result.features.filter(function (feature) { return feature.properties.iso3166 == 'KZ'; })[0];
        var UZ = result.features.filter(function (feature) { return feature.properties.iso3166 == 'UZ'; })[0];

        var masks = RU.geometry.coordinates;
        masks.forEach(function(mask){
            background.geometry.insert(1, mask);
        });
        var masks2 = BY.geometry.coordinates;
        masks2.forEach(function(mask){
            background.geometry.insert(1, mask);
        });
        var masks3 = AB.geometry.coordinates;
        masks3.forEach(function(mask){
            background.geometry.insert(1, mask);
        });
        var masks4 = AZ.geometry.coordinates;
        masks4.forEach(function(mask){
            background.geometry.insert(1, mask);
        });
        var masks5 = KZ.geometry.coordinates;
        masks5.forEach(function(mask){
            background.geometry.insert(1, mask);
        });
        var masks6 = UZ.geometry.coordinates;
        masks6.forEach(function(mask){
            background.geometry.insert(1, mask);
        });
                
        // Добавим многоугольник на карту.
        map.geoObjects.add(background);
        

    var objectManager = new ymaps.ObjectManager();
    // Загрузим регионы.
    ymaps.borders.load('RU', {
        lang: 'ru',
        quality: 1
    }).then(function (result) {
        // Создадим объект regions, где ключи это ISO код региона.
        var regions = result.features.reduce(function (acc, feature) {
            var iso = feature.properties.iso3166;
            feature.id = iso;
            feature.options = {
                fillOpacity: 0.2,
                strokeColor: '#0267FF',
                strokeOpacity: 1.4,
                strokeWidth: 2
            };
            acc[iso] = feature;
            return acc;
        }, {});

        // Добавим регионы на карту.
        result.features = [];
        for (var reg in regions) {
            result.features.push(regions[reg]);
        }
        objectManager.add(result);
        map.geoObjects.add(objectManager);
    })
    })
}






Ответы (0 шт):