1

當我將應用程序從jQuery方式更改爲角度方式時,我嘗試使用Angular-Google-Maps。但我找不到Google Map對象(地圖,標記,多邊形...) 以及使用Object'方法'(如getMap(),getPath(),getPosition() ..)。Angular-Google-Maps:如何在控制器中使用'方法'

如果我需要獲取被拖動的標記的位置,我該怎麼辦? 就像我平時所做的一樣?

marker = new google.maps.Marker(opts); 
postion = marker.getPosition(); 

回答

7

編輯: 我找到了路怎麼走標記位置,當它被dragged'n'dropped。您可以設置回調函數標記:

<google-map center="center" zoom="zoom" control="googleMap"> 
    <marker coords="coords" options="options" events="events"> 
</google-map> 

然後在控制器中定義回調:

$scope.events: { 
       dragend: function (marker) { 
        $rootScope.$apply(function() { 
        console.log(marker.position.lat()); 
        console.log(marker.position.lng()); 
        }); 
       } 
      } 

老答: 它目前是不可能的: https://github.com/nlaplante/angular-google-maps/issues/277

但是,您可以獲得原始的google.maps.Map對象:

指令調用:

<google-map center="center" zoom="zoom" control="googleMap"></google-map> 

角控制器:

... 
$scope.center = = { 
      latitude: 48.13171, 
      longitude: 11.549554 
     }; 
$scope.zoom = 8; 
$scope.googleMap = {}; // this is filled when google map is initiated 

function getMapObject() { 
    $scope.googleMap.control.getGMap(); 
} 
... 
+1

略有不同了。 。 。 '$ scope.googleMap.getGMap()' –

0

其實你甚至不需要事件,圖書館已經與綁定範圍的標記位置。

這裏是我做到了在咖啡腳本:

控制器:

$scope.map = 
    center: 
    latitude: k 
    longitude: D 
    zoom: 16 
    marker: 
    coord: 
     k 
     D 

查看:

<ui-gmap-google-map center='map.center' zoom='map.zoom'> 
     <ui-gmap-marker 
       idKey="'pin'" 
       coords="map.marker.coord" 
       options="{'draggable':true}" 
       > 
     </ui-gmap-marker> 
    </ui-gmap-google-map> 

    <pre>{{map | json}}</pre> 
相關問題