Angular-Google-Maps:如何在控制器中使用'method'

Che*_*Lin 1 google-maps google-maps-api-3 angularjs angular-google-maps

当我将我的应用程序从jQuery方式更改为Angular方式时,我尝试使用Angular-Google-Maps.

但我找不到谷歌地图对象(地图,标记,多边形...)和使用对象'方法'的方法(如getMap(),getPath(),getPosition()..).

如果我需要获取被拖动的标记的位置,我该怎么办?就像我平常一样?

marker = new google.maps.Marker(opts);
postion = marker.getPosition();
Run Code Online (Sandbox Code Playgroud)

kuc*_*ram 7

编辑: 我找到了一种方法,当它被拖动时,如何获得标记位置.您可以为标记设置回调函数:

<google-map center="center" zoom="zoom" control="googleMap">
   <marker coords="coords" options="options" events="events">
</google-map>
Run Code Online (Sandbox Code Playgroud)

然后在控制器中定义回调:

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

旧答案: 目前无法实现:https: //github.com/nlaplante/angular-google-maps/issues/277

但是,您可以获取原始的google.maps.Map对象:

指令电话:

<google-map center="center" zoom="zoom" control="googleMap"></google-map>
Run Code Online (Sandbox Code Playgroud)

角度控制器:

...
$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();
}
...
Run Code Online (Sandbox Code Playgroud)