地図上に表示されているマーカーでイベントを処理する方法についてです。
マーカーをダブルクリックするイベントを検知し、地図をズームアップし、地図の中心をマーカーの位置に移動するサンプルコードを作ってみました。
デモとコードサンプルはこちら。
サンプルコードの説明
1)ui-gmap-markerタグにevents属性追加(HTML)
<ui-gmap-marker ng-repeat=”m in map.markers” coords=”m” events=”m.events” idKey=”m.id” options=”m.options” isLabel=’true’ >
</ui-gmap-marker>
2)マーカーで使用できるイベント
下記参照
https://developers.google.com/maps/documentation/javascript/reference#Marker
3)イベント検知時に実行する関数を定義
・地図のズームを17に変更します。
・マーカーの位置情報(緯度・経度)を取得し、その位置を地図の中心に設定します。
var onMarkerDblclickd = function (marker, eventName, args) { $scope.map.zoom = 17; $scope.map.center.latitude = marker.getPosition().lat(); $scope.map.center.longitude = marker.getPosition().lng(); $scope.$apply(); }
4)各マーカーのイベント定義に上記関数を設定
markers: [ { : events: { dblclick: function (marker, eventName, args) { onMarkerDblclickd(marker, eventName, args); } } },