1

Когда я меняю свое приложение с пути jQuery на угловое, Я пытаюсь использовать Angular-Google-Maps.Угловые-Google-Карты: как использовать «метод» в контроллере

Но я не могу найти, где находятся объекты Google Map (Map, Marker, Polygon ...) и подход к использованию Object 'method' (например, getMap(), getPath(), getPosition() ..).

Если мне нужно получить позицию маркера, который перетаскивается, как я могу это сделать? как обычно?

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

ответ

7

Edit: Я нашел способ, как получить положение маркера, когда он был 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>