função de execução angular-google-maps ONCE após o carregamento inicial do mapa
usandoangular-google-maps incorporar um mapa do google em um aplicativo
Preciso de um comando que execute uma função uma vez após a conclusão do carregamento inicial do mapa
- mas apenas na carga inicial,não após cada manipulação de mapa
Não posso usaridle
outilesloaded
uma vez que estes são disparados após cada movimento ...
A função que eu quero executar precisa obter limites do mapa para extrair dados de um servidor no carregamento inicial da página - eu quero que isso ocorra uma vez no carregamento inicial e seja uma função manual usando uma atualizaçãomap-control
- se eu usaridle
outilesloaded
para disparar isso vai puxar dados do servidorcada vez que um usuário move o mapa.
Alguém sabe como acionar um comando único para obter detalhes do mapa (limites etc.) após o carregamento inicial do mapa?
Eu tentei colocarmaps.getBounds()
na função 2ª promessa, mas não funciona.
Nota,Eu tenho um violino trabalhando aqui - Eu simplesmente não posso encadear mais promessas após o$scope.map
controles / opções etc são definidos porque não retornam uma promessa:
O exemplo de código nos documentos não mostra como encadear uma promessadepois de a$scope.map
é definido.
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>
controlador
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...
});
});
Obviamente omaps
objeto retornado pelouiGmapGoogleMapApi
promessa é completamente diferente damaps
objeto retornado por eventos comotilesloaded
etc ... bastante confuso.
Além disso,o FAQ indica apenas como usartilesloaded
para obter a instância do mapa - que não funciona por razões já descritas.