使用AngularJS和ui-gmap-google-map指令(http://angular-ui.github.io/angular-google-maps/#!/)我創建了一個Google地圖,繪製了駕車路線。當我嘗試繪製不同的路線時,第一條路線仍然在地圖上。我試過directionsDisplay.setMap(null);刪除舊路線,但這是行不通的。誰能幫忙?AngularJS ui-gmap-google-map刪除駕車路線
這裏是我的控制器代碼中的相關部分:
uiGmapIsReady.promise().then(function (map_instances) {
$scope.mapRef = $scope.map.control.getGMap();
});
$scope.getDirections = function (lat, long, origin, type) {
uiGmapGoogleMapApi.then(function (maps) {
var directionsService = new maps.DirectionsService();
var directionsDisplay = new maps.DirectionsRenderer();
if (origin == "" || type == "geo") {
origin = $scope.geoPosition.coords.latitude + ", " + $scope.geoPosition.coords.longitude;
}
var request = {
origin: origin,
destination: lat + ", " + long,
travelMode: maps.TravelMode['DRIVING'],
optimizeWaypoints: true
};
directionsService.route(request, function (response, status) {
if (status === google.maps.DirectionsStatus.OK) {
directionsDisplay.setMap(null);
directionsDisplay.setMap($scope.mapRef);
directionsDisplay.setDirections(response);
} else {
console.log('Directions request failed due to ' + status);
}
});
});
}
事情是你可以調用map.remove()或刪除一個特定的層,其中路徑顯示正常當你console.log你$ scope.mapRef那裏應該有圖層 – stackg91
不會map.remove獲取擺脫整個地圖?你能告訴我刪除現有路線的最佳方法嗎? – user1024941
嘗試directionsDisplay.setMap(null);或directionsService.setMap(null) – stackg91