目前我遇到一個問題。我使用並更改了示例API來繪製兩點的路線。 A點是當前位置。 B點是多個標記位置之一。這些標記被創建,我稱之爲附近的搜索功能。谷歌地圖刪除以前的路線,並繪製一條新的路線
function showInfoWindow() {
var marker = this;
places.getDetails({
placeId: marker.placeResult.place_id
},
function(place, status) {
if (status !== google.maps.places.PlacesServiceStatus.OK) {
return;
}
infoWindow.open(map, marker);
buildIWContent(place);
});
var clickLat = marker.position.lat();
var clickLon = marker.position.lng();
var directionsDisplay = new google.maps.DirectionsRenderer({
map: map
});
var directionsService = new google.maps.DirectionsService();
showRoute(clickLat, clickLon, directionsDisplay, directionsService);
}
function showRoute(clickLat, clickLon, directionsDisplay, directionsService) {
var pointA = {
lat: currentLat,
lng: currentLon
};
var pointB = {
lat: clickLat,
lng: clickLon
};
directionsDisplay.setOptions({
suppressMarkers: true
});
//directionsDisplay.setMap(map);
//directionsDisplay.setDirections({ routes: [] });
// Set destination, origin and travel mode.
var request = {
destination: pointB,
origin: pointA,
travelMode: google.maps.TravelMode.DRIVING
};
//directionsDisplay.setMap(null);
// Pass the directions request to the directions service.
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
// Display the route on the map.
//directionsDisplay.set('directions', null);
//directionsDisplay.setMap(map);
//directionsDisplay.setDirections({ routes: [] });
directionsDisplay.setDirections(response);
} else {
window.alert('Directions request failed due to ' + status);
}
});
}
這些代碼可能已經繪製了兩個點的路線。但問題是當我點擊一個標記調用showInfoWindow()時,它將繪製一條路線,並且當它再次調用showInfoWindow()時再次點擊另一條標記,它將繪製另一條路線,保留前一條路線。我想清除先前的一條路線。嘗試了所有在線方法,找不到原因。
你是如何調用這個代碼?請提供證明此問題的[最小,完整,測試和可讀示例](http://stackoverflow.com/help/mcve)。 – geocodezip
什麼是'buildIWContent'? – geocodezip
@geocodezip,這是顯示標記信息的另一個函數。我認爲這個問題發生在showRoute()中。 –