你会发现许多已经有答案显示如何在其上构建具有不同颜色的路线how to change the color of route in google maps v3
我想知道如何在已经构建和渲染后更改颜色。
我在地图上显示了许多不同的路线,但我想显示红色或深色,如果此方向点处于活动状态并将其他路线颜色更改为灰色,直到其中一个处于活动状态。
代码:
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer({
polylineOptions: {
strokeColor: "red"
}
});
var mapOptions = {
zoom:7,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: {lat: 41.850033, lng: -87.6500523}
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
directionsDisplay.setMap(map);
}
function calcRoute() {
var start = document.getElementById('start').value;
var end = document.getElementById('end').value;
var request = {
origin:start,
destination:end,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
演示了如何使用两条路线:http://jsfiddle.net/8xq4gd8y/15/
答案 0 :(得分:7)
directionsRenderer
类有setOptions
方法。请参阅documentation。
directionsDisplay.setOptions({
polylineOptions: {
strokeColor: 'red'
}
});
为此,您需要将其从地图中删除并重新添加以查看颜色变化。
例如,在事件监听器中,您可以执行以下操作:
google.maps.event.addListener(map, 'click', function() {
directionsDisplay.setMap(null);
directionsDisplay.setOptions({
polylineOptions: {
strokeColor: 'blue'
}
});
directionsDisplay.setMap(map);
});