2011-12-05 40 views
1

我使用的是Google Maps API v3,並且已經實現了基於標記拖動結束功能呈現的路線。但是如果再次拖動標記,那麼原始的一組方向不會被刪除。Google地圖標記拖動結束方向 - 清除以前的路線

該地圖是根據地理編碼請求和源自動填充文本框生成的,目標是靜態的。這一切工作正常。我已經閱讀了API文檔,它說使用.setMap(null);選項,但它沒有清除方向,我相信這是因爲我沒有重新生成地圖。我的代碼的渲染方向如下:

google.maps.event.addListener(markersrc, 'dragend', function() { 
    geocoder.geocode({ 'latLng': markersrc.getPosition() }, function (results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
      var request = { 
       origin: markersrc.getPosition(), 
       destination: markerdst.getPosition(), 
       travelMode: google.maps.DirectionsTravelMode.DRIVING 
      }; 
      var directionsDisplay = new google.maps.DirectionsRenderer(); 
      var directionsService = new google.maps.DirectionsService(); 
      directionsDisplay.suppressMarkers = true; 
      directionsDisplay.setMap(map); 
      directionsDisplay.setPanel(document.getElementById("directions_panel")); 
      directionsService.route(request, function (response, status) { 
       if (status == google.maps.DirectionsStatus.OK) { 
        directionsDisplay.setDirections(response); 
       } 
      }); 
     } 
    }); 
}); 

任何人有任何想法如何我可以得到原始方向清除?

回答

1

在我看來,每次拖動標記時,都會重新創建DirectionsDisplay和DirectionsService。相反,我認爲你需要將它們創建爲全局變量,它只能由dragend事件監聽器更新。

+0

謝謝你是解決它的正確方法! –

相關問題