У меня есть сайт с многочисленными пешеходными маршрутами, отображаемыми в виде полилиний на картах Google.Все полилинии имеют Strokecolor зеленый по умолчанию.Мне бы хотелось, чтобы при нажатии на полилинию ее цвет становился красным.Он должен оставаться красным, пока не будет нажата вторая (другая) полилиния.Первая полилиния должна затем стать зеленой, а вторая - красной.
Я искал и искал и пробовал множество решений, но ни одно из них не работает.
Отправленный мною «тестовый» код «чистый» без каких-либо неудачных попыток.
<!DOCTYPE html>
<html>
<head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
#map {
height: 100%;
}
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
var map;
var flightPath;
var pathSymbol;
function initMap() {
pathSymbol = {
path: google.maps.SymbolPath.CIRCLE,
strokeColor: '#FF0000',
strokeOpacity: 1,
strokeWeight: 4,
fillColor: '#FF0000',
fillOpacity: 1,
scale: 3
};
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 45, lng: -87},
zoom: 6
});
var flightPlanCoordinates = [
{ lat: 42.5, lng: -86.5 },
{ lat: 42.5, lng: -87.5},
{ lat: 43.5, lng: -88.5 },
{ lat: 44.5, lng: -88.5 },
{ lat: 46.5, lng: -89.5 },
{ lat: 49.5, lng: -89.5 },
];
var flightPlanCoordinates2 = [
{ lat: 42, lng: -86 },
{ lat: 42, lng: -87},
{ lat: 42, lng: -88 },
{ lat: 43, lng: -88 },
{ lat: 44, lng: -89 },
{ lat: 49, lng: -89 },
];
var arrayOfFlightPlans = [flightPlanCoordinates, flightPlanCoordinates2];
for (let i = 0; i < 2; i++) {
addPath({
path: arrayOfFlightPlans[i],
strokeColor: '#8CB65F',
strokeOpacity: 1.0,
strokeWeight: 4,
});
}
}
function addPath(props) {
flightPath = new google.maps.Polyline({
path: props.path,
strokeColor: props.strokeColor,
strokeOpacity: props.strokeOpacity,
strokeWeight: props.strokeWeight
});
flightPath.setMap(map);
flightPath.addListener('mouseover', function(event) {
this.setOptions({
zIndex: 10,
icons: [{
icon: pathSymbol,
offset: '0',
repeat: '40px',
zIndex: 10
}],
});
});
flightPath.addListener('mouseout', function(event) {
this.setOptions({
zIndex: 0,
icons: [{
visible: false,
zIndex: 0
}],
});
});
}
</script>
</body>
</html>