angular-google-maps запускает функцию ОДИН РАЗ после начальной загрузки карты
с помощьюугловые-Google-карты включить карту Google в приложение
Мне нужна команда, которая будет запускать функцию ОДИН РАЗ после завершения начальной загрузки карты
- но только при начальной загрузке,не после каждой манипуляции с картой
Я не могу использоватьidle
или жеtilesloaded
так как они запускаются после каждого движения ...
Функция, которую я хочу запустить, должна получить границы карты для извлечения данных с сервера при начальной загрузке страницы - я хочу, чтобы это происходило ОДИН РАЗ при начальной загрузке, а затем выполнялось вручную, используя обновлениеmap-control
- если я используюidle
или жеtilesloaded
чтобы запустить это, он будет тянуть данные серверакаждый время, когда пользователь перемещает карту.
Кто-нибудь знает, как запустить однократную команду, чтобы получить детали карты (границы и т. Д.) После начальной загрузки карты?
Я пытался положитьmaps.getBounds()
в функции второго обещания, но она не работает.
Заметка,У меня тут скрипка работает - Я просто не могу больше обещать после$scope.map
элементы управления / опции и т. д. определены, потому что они не возвращают обещание:
Пример кода в документации не показывает, как связать обещаниепосле $scope.map
определено.
HTML
<div class="angular-google-map-container" ng-controller="MainCtrl">
<ui-gmap-google-map center="map.center" zoom="map.zoom" draggable="true" options="map.options" events="map.events" control="googlemap">
</ui-gmap-google-map>
</div>
контроллер
myApp.controller('MainCtrl', function($scope, uiGmapGoogleMapApi) {
uiGmapGoogleMapApi
.then(function(maps){
$scope.map = {
center: {
latitude: 37.7749295,
longitude: -122.4194155
},
zoom: 12
events: {
tilesloaded: function (maps, eventName, args) {
myServiceFuntion(maps) // this work fine but fires every time
},
dragend: function (maps, eventName, args) {
myServiceFuntion(maps) // this work fine but fires every time
},
zoom_changed: function (maps, eventName, args) {
myServiceFuntion(maps) // this work fine but fires every time
}
}
}
$scope.bounds = maps.getBounds() // this gives me 'getBounds() not a function'
myServiceFuntion(maps); // this gives an error... ?
return maps; //no promise returned here so no chance to delay the function below
})
.then(function(maps){
//is this where i need to put my function ? doesn't delay on map load since no promise returned...
});
});
Очевидно, чтоmaps
объект, возвращаемыйuiGmapGoogleMapApi
обещание полностью отличается отmaps
объект, возвращаемый такими событиями, какtilesloaded
и т.д ... довольно запутанно.
Также,FAQ только указывает, как использоватьtilesloaded
получить экземпляр карты - который не работает по причинам, уже описанным.