如何确保地图已加载
How to ensure that the map is loaded
getGMap() return是地图对象的一个实例。如果地图还没有准备好,这个函数 return 是未定义的。是否有事件或方式告诉地图已准备好并且调用 getGMap 肯定会 return Google 地图?
谢谢
亚什
您可以通过将 tilesloaded 事件传递到地图选项的 "events" 属性 来附加到该事件。 tilesloaded 在地图上加载图块后触发(因此加载地图)。
您可以在控制器中使用 uiGmapIsReady
- 请参阅 docs 中的 IsReady
。
uiGmapIsReady
returns:
- 地图加载并准备就绪后的承诺
- 一组地图信息(我称之为 map_instances
)
-- 数组长度取决于您在页面中加载了多少地图
-- 数组中的每个对象都包含 google 地图对象
要在您的控制对象上使用 getGmap()
ready 将如下所示:
HTML
<div ng-app="myApp" ng-controller="myController">
<ui-gmap-google-map
center="map.center"
zoom="map.zoom"
control="map.control">
</ui-gmap-google-map>
</div>
控制器
myApp.controller('myController', function ($scope, uiGmapIsReady) {
$scope.map = {
center : {
latitude: 37.7749295,
longitude: -122.4194155
},
zoom : 14,
control : {}
};
uiGmapIsReady.promise()
.then(function (map_instances) {
var map1 = $scope.map.control.getGMap(); // get map object through $scope.map.control getGMap() function
var map2 = map_instances[0].map; // get map object through array object returned by uiGmapIsReady promise
});
});
请注意您还可以通过两种方法访问地图对象:
- 通过 map_instances
数组(看起来像 [map1Instance, map2Instance, ...]
)
- 通过 $scope.map.control.getGMap()
只要您在 html 和 $scope
中定义了它
JSFIDDLE
getGMap() return是地图对象的一个实例。如果地图还没有准备好,这个函数 return 是未定义的。是否有事件或方式告诉地图已准备好并且调用 getGMap 肯定会 return Google 地图?
谢谢
亚什
您可以通过将 tilesloaded 事件传递到地图选项的 "events" 属性 来附加到该事件。 tilesloaded 在地图上加载图块后触发(因此加载地图)。
您可以在控制器中使用 uiGmapIsReady
- 请参阅 docs 中的 IsReady
。
uiGmapIsReady
returns:
- 地图加载并准备就绪后的承诺
- 一组地图信息(我称之为 map_instances
)
-- 数组长度取决于您在页面中加载了多少地图
-- 数组中的每个对象都包含 google 地图对象
要在您的控制对象上使用 getGmap()
ready 将如下所示:
HTML
<div ng-app="myApp" ng-controller="myController">
<ui-gmap-google-map
center="map.center"
zoom="map.zoom"
control="map.control">
</ui-gmap-google-map>
</div>
控制器
myApp.controller('myController', function ($scope, uiGmapIsReady) {
$scope.map = {
center : {
latitude: 37.7749295,
longitude: -122.4194155
},
zoom : 14,
control : {}
};
uiGmapIsReady.promise()
.then(function (map_instances) {
var map1 = $scope.map.control.getGMap(); // get map object through $scope.map.control getGMap() function
var map2 = map_instances[0].map; // get map object through array object returned by uiGmapIsReady promise
});
});
请注意您还可以通过两种方法访问地图对象:
- 通过 map_instances
数组(看起来像 [map1Instance, map2Instance, ...]
)
- 通过 $scope.map.control.getGMap()
只要您在 html 和 $scope