Добавьте слушателя для вашего нажатия кнопки.Это можно сделать разными способами.Одним из них является использование Google Maps addDomListener
.
. Затем необходимо выполнить цикл по всем функциям и установить соответствующий стиль, например:
.
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map-canvas'), {
zoom: 4,
center: {
lat: -28,
lng: 137
}
});
// Load GeoJSON.
map.data.loadGeoJson(
'https://storage.googleapis.com/mapsdevsite/json/google.json');
// Color each letter gray. Change the color when the isColorful property
// is set to true.
map.data.setStyle(function(feature) {
var color = 'gray';
if (feature.getProperty('isColorful')) {
color = feature.getProperty('color');
console.log(color)
}
return ({
fillColor: color,
strokeColor: color,
strokeWeight: 2
});
});
// When the user clicks, set 'isColorful', changing the color of the letters.
map.data.addListener('click', function(event) {
event.feature.setProperty('isColorful', true);
});
google.maps.event.addDomListener(document.getElementById('blue-button'), 'click', function() {
map.data.setStyle(function(feature) {
if (feature.getProperty('color') == 'blue') {
return ({
fillColor: 'blue',
strokeColor: 'blue',
strokeWeight: 2
});
} else {
return ({
fillColor: 'grey',
fillOpacity: .5,
strokeColor: 'grey',
strokeWeight: 2
});
}
});
});
}
#map-canvas {
height: 160px;
}
<button id="blue-button">blue</button>
<div id="map-canvas"></div>
<!-- Replace the value of the key parameter with your own API key. -->
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap">
</script>