在角度谷歌地图中使用鼠标移动标记

时间:2015-11-25 09:40:18

标签: javascript jquery angularjs google-maps angular-google-maps

我正在做一个有角度的项目。它包含一个使用angular-google-maps的谷歌地图。所以在这张地图上,用户可以添加许多markers

app.js

angular.module('mapAngular', ['uiGmapgoogle-maps'])
    .controller('MainCtrl', function($scope) {
        angular.extend($scope, {
            map: {
                center: {
                    latitude: 42.3349940452867,
                    longitude: -71.0353168884369
                },
                zoom: 11,
                markers: [],
                events: {
                    click: function(map, eventName, originalEventArgs) {
                        var e = originalEventArgs[0];
                        var lat = e.latLng.lat(),
                            lon = e.latLng.lng();
                        var marker = {
                            id: Date.now(),
                            coords: {
                                latitude: lat,
                                longitude: lon
                            }
                        };
                        $scope.map.markers.push(marker);
                        console.log($scope.map.markers);
                        $scope.$apply();
                    }
                }
            }
        });
    });

HTML

<div>
    <ui-gmap-google-map center="map.center" zoom="map.zoom" draggable="true" events="map.events">
        <ui-gmap-marker ng-repeat="m in map.markers" coords="m.coords" icon="m.icon" idkey="m.id"></ui-gmap-marker>
    </ui-gmap-google-map>
</div>

地图将显示所有添加的标记。我需要一个功能来使用鼠标动态移动此标记。请给我一个有价值的指导方针吗? 感谢

Plunker

1 个答案:

答案 0 :(得分:1)

通过向options="{draggable:true}"指令提供<ui-gmap-marker>来解决此问题。

<ui-gmap-marker ng-repeat="m in map.markers" coords="m.coords" icon="m.icon" idkey="m.id" options="{draggable:true}" >
</ui-gmap-marker>