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);
})
})
}