2017-01-19 31 views
0

複数のルートを読み込むと、前のルートは削除されません。 多くの人がdirectionsDisplay.setMapnullに設定すると言いましたが、それは動作しません。 ルートは地図上にあり、directionsDisplayにはないようです。 これは動作しません私のコードです:google.mapでルートをクリアするにはどうすればよいですか?

NgMap.getMap('mapShop').then(function(map) { 
    $scope.googleMaps = map; 
    var directionsDisplay = new google.maps.DirectionsRenderer(); 
    var directionsService = new google.maps.DirectionsService(); 
        directionsDisplay.setMap(null); 
        directionsDisplay.setDirections(null); 
        directionsDisplay.setMap($scope.googleMaps); 

    // get geolocation for center map and marker 
    NavigatorGeolocation.getCurrentPosition().then(function(position) { 
     $scope.latitude = $routeParams.latitude; 
     $scope.longitude = $routeParams.longitude; 
     $scope.urlLocalCard = "http://maps.apple.com/?daddr=" + $routeParams.latitude + "," + $routeParams.longitude + "&saddr=" + position.coords.latitude + "," + position.coords.longitude + "&ll=" + $routeParams.latitude + "," + $routeParams.longitude + "&z=10&t=s"; 
     var request = { 
      origin: position.coords.latitude + ',' + position.coords.longitude, 
      destination: $routeParams.latitude + ',' + $routeParams.longitude, 
      travelMode: google.maps.DirectionsTravelMode.DRIVING 
     }; 
     directionsService.route(request, function(response, status) { 
      if (status === google.maps.DirectionsStatus.OK) { 
       directionsDisplay.setDirections(response); 
      } else { 
       alert('Google route unsuccesfull!'); 
      } 
     }); 
    }); 
+0

JSコンソールにはどのようなエラーがありますか? –

+0

コンソールにエラーが表示されます。 –

+0

それはどういう意味ですか? –

答えて

1

をあなたはgoogle.maps.DirectionsRendererの新しいインスタンスに後者の変数を割り当てることによって、古いdirectionsDisplayへの参照を失うので。 directionsDisplaydirectionsServiceをグローバルスコープに移動します。

var directionsDisplay, 
    directionsService; 

// Update global reference upon Google map loads 
function initMap(){ 

    directionsDisplay = new google.maps.DirectionsRenderer(); 
    directionsService = new google.maps.DirectionsService(); 

} 

NgMap.getMap('mapShop').then(function(map) { 

     $scope.googleMaps = map; 

     directionsDisplay.setMap(null); 
     directionsDisplay.setDirections(null); 

     // rest of code  

}); 
+0

は、このエラーを表示します: "googleは定義されていません" –

+0

これはよくある間違いです。ライブラリを読み込んだ後、グローバル参照を 'iniMap'コールバックを使って更新します。 –

+0

どうすればいいですか? –

関連する問題