0

我们有两个文本框,在两个文本框中给出位置名称并转换为纬度和经度值。并将值传递给下面的函数。第一次方向加载成功,第二次修改文本框值,会覆盖之前的方向。它没有清除以前加载的方向。我想清除方向并加载新方向。请帮忙。

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);
    }
}
4

1 回答 1

3

移动这一行:

directionsDisplay = new google.maps.DirectionsRenderer();

……出loadDirections()

否则,您将DirectionsRenderer在每个函数调用中使用 at 的新实例,这不会覆盖由先前调用中使用的实例创建的路由。

于 2013-05-31T07:57:04.733 回答