首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Angular-Google-Maps中添加标记

在Angular-Google-Maps中添加标记
EN

Stack Overflow用户
提问于 2015-06-18 17:00:32
回答 2查看 20.2K关注 0票数 12

我目前在谷歌地图上添加一个点击标记时遇到了一些麻烦。我使用的是http://angular-ui.github.io

下面是我的代码: HTML:

代码语言:javascript
复制
<ui-gmap-google-map center='map.center' zoom='map.zoom' events="map.events">
  <ui-gmap-marker coords="map.marker.coords" idKey="map.marker.id"></ui-gmap-marker>
</ui-gmap-google-map>

这是我的JS:

代码语言:javascript
复制
$scope.map = {
    center: {
        latitude: alat.value, longitude: alon.value },
        zoom: 15,
        streetViewControl: false,
        events: {
            click: function (map, eventName, originalEventArgs) {
                var e = originalEventArgs[0];
                var lat = e.latLng.lat(),lon = e.latLng.lng();
                $scope.map.marker = {
                    id: 1,
                    coords: {
                        latitude: lat,
                        longitude: lon
                    }
                };
                $scope.$apply();
            }
        }
    };

我一直在使用Angular- Google -Maps API,但到目前为止我对Google Maps API还不是很在行。到目前为止,我已经推断出我的click事件可以工作,但是我的标记没有被添加到地图中。如果能帮上忙,我们将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-18 17:46:46

我已经创建了fiddle。这是HTML。

代码语言:javascript
复制
<div ng-app="main" ng-controller="mainCtrl">
    <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>

控制器是这样的。

代码语言:javascript
复制
angular.module('main', ['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();
            }
        }
        }
    });
});
票数 16
EN

Stack Overflow用户

发布于 2015-06-18 18:05:38

看起来你需要给$scope.map.marker.id一个初始值。否则,将发生以下错误。

gMarker.key未定义,必须输入!!

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30910883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档