【发布时间】:2016-02-11 19:16:17
【问题描述】:
我正在研究 Angular-Google-MAP。我想在地图上添加标记。但是当我点击地图时,我收到错误$scope.map.control.getGMap is not a function。这是在 geocodePosition() 中定义的,当 Map click 甚至被调用时。请让我知道为什么它不起作用....
<ui-gmap-google-map center='map.center' zoom='map.zoom' control='map.control' id="map-canvas" events="map.events">
<ui-gmap-markers models="markers" idkey="markers.id" coords="'coords'" events="markerEvents" icon="'icon'">
</ui-gmap-markers>
</ui-gmap-google-map>
在控制器中
function MapController($scope, GMapReady, GoogleMapApi, $timeout) {
GMapReady.promise().then(
var map={
center: {
latitude: 21.1458004,
longitude: 79.08815460000005
},
bounds : {northeast : { latitude : 79.08815460000005, longitude : 79.08815460000005},
southwest : { latitude : 79.08815460000005, longitude : 79.08815460000005}},
zoom: 5,
control : {}
};
$scope.map=map;
$scope.map.events ={
click: function(map, eventName, originalEventArgs){
var e=originalEventArgs[0];
var lat=e.latLng.lat(),lon=e.latLng.lng();
var latlng = new google.maps.LatLng(lat, lon);
geocodePosition(latlng);
}
}// end of Map event
);
function geocodePosition(pos){
.....some code .......
......................
var map_obj=$scope.map.control.getGMap();
var service = new google.maps.places.PlacesService(map_obj);
};
}
【问题讨论】:
-
您从
geocodePosition内部调用getGMap,但我看不出您在哪里定义了该函数。 -
@duncan 为什么我们需要定义
getGMap它是谷歌地图的方法..
标签: javascript angularjs google-maps google-maps-api-3 angular-google-maps