1

プロジェクトでhttps://github.com/allenhwkim/angularjs-google-mapsディレクティブを使用 しています

以下は、マップ上にマーカーを描画するコード サンプルです。

<map id="map" style="height:450px" zoom="4" zoom-to-include- markers='auto' center="{[{center.lat}]},{[{center.long}]}" on-center-changed="centerChanged()">
<marker id={[{$index}]} animation="DROP" ng-repeat="location in locations" position="{[{location.latitude}]},{[{location.longitude}]}" on-click="click()" title="Click to zoom"></marker> 

</map>

これらのマーカーを JavaScript 関数から選択する必要があります。ID でマーカーを選択すると、以下に示すようにマーカーが dom 要素として与えられます。

<marker id="1" animation="DROP" ng-repeat="location in locations" position="10.0050407,76.3459498" on-click="click()" title="Click to zoom" class="ng-scope"></marker>

Google マップのマーカー オブジェクトの代わりに

javascriptからGoogleマップマーカーオブジェクトとしてng-repeatで初期化されたマーカーを選択できる方法はありますか?

4

1 に答える 1

3

Markerangularのスコープを使用してオブジェクトを取得できます。あなたの JS コードは表示されませんが、Angularjs-Google-Maps の例から、スコープ内のマーカーの配列が$scope.map.markers[key]どこにあるかによって各マーカーを参照できます。$scope.map.markers

var app=angular.module('myapp', ['ngMap']);
app.controller('MarkerRemoveCtrl', function($scope) {
  $scope.positions = [{lat:37.7699298,lng:-122.4469157}];
  $scope.addMarker = function(event) {
    var ll = event.latLng;
    $scope.positions.push({lat:ll.lat(), lng: ll.lng()});
  }
  $scope.deleteMarkers = function() {
    $scope.positions = [];
  };
  $scope.showMarkers = function() {
    for (var key in $scope.map.markers) {
      $scope.map.markers[key].setMap($scope.map);
    };
  };
  $scope.hideMarkers = function() {
    for (var key in $scope.map.markers) {
      $scope.map.markers[key].setMap(null);
    };
  };
});
于 2015-09-28T09:12:13.393 に答える