有一个奇怪的问题。我有一个设置有各种标记的地图。在infoWindow上,您可以点击“获取路线”,触发onClick ...第一次路线获取正确显示但是如果点击另一个标记并询问方向......前一个方向路线不会从地图中清除绘制新的
我已经尝试了一些事情,更具体地说是在stackoverflow question提供的解决方案,但似乎没有任何效果。
我的代码是:
function getDirections(id) {
var directionsDisplay = new google.maps.DirectionsRenderer;
var directionsService = new google.maps.DirectionsService;
var start = document.getElementById('pos1').innerHTML;
var end = document.getElementById('pos'+id).innerHTML;
end = end.slice(0, -1);
end = end.substring(1);
directionsDisplay.setMap(null);
directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById('directions'));
directionsService.route({
origin: start,
destination: end,
travelMode: google.maps.TravelMode.DRIVING
}, function(response, status) {
if (status === google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
console.log(response);
} else {
window.alert('Directions request failed due to ' + status);
}
});
disableMovement(false);
infoWindow.close();
var control = document.getElementById('directions');
control.style.display = 'block';
map.controls.push(control);
}
在这张图片上你可以看到我得到的东西......之前的路线在新的路线被绘制之前没有从地图上删除。
答案 0 :(得分:1)
以后有人需要它的答案......
这些:
var directionsDisplay = new google.maps.DirectionsRenderer;
var directionsService = new google.maps.DirectionsService;
必须在点击事件之外。