我们有两个文本框,在两个文本框中给出位置名称并将其转换为纬度和经度值。并将值传递给下面的函数。第一次方向加载成功,第二次修改文本框的值,它将覆盖前一次的方向。它没有清除之前加载的方向。我想清除这个方向,然后加载新方向。请帮助。
var directionsService = new google.maps.DirectionsService();
var directionsDisplay;
function loadDirections(start,end)
{
directionsDisplay = new google.maps.DirectionsRenderer();
if (start && end)
{
resultsDiv.update(''); // So we clear the div out ourselves
var request = {
origin: start,
destination: end,
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.DirectionsUnitSystem.IMPERIAL
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
directionsDisplay.setMap(map.map);
directionsDisplay.setPanel(resultsDiv);
}
}
移动这一行:
directionsDisplay = new google.maps.DirectionsRenderer();
…out of loadDirections()
.
否则,您将在每个函数调用时使用DirectionsRenderer
的新实例,这将不会覆盖由先前调用中使用的实例创建的路由。