función de ejecución angular-google-maps UNA VEZ después de la carga inicial del mapa
utilizandoangular-google-maps para incorporar un mapa de google en una aplicación
Necesito un comando que ejecute una función UNA VEZ después de que se complete la carga inicial del mapa
- pero solo en la carga inicial,no después de cada manipulación del mapa
No puedo usaridle
otilesloaded
ya que estos se disparan después de cada movimiento ...
La función que quiero ejecutar necesita obtener límites del mapa para extraer datos de un servidor en la carga de la página inicial; quiero que esto ocurra UNA VEZ en la carga inicial, luego sea una función manual que use una actualizaciónmap-control
- si usoidle
otilesloaded
para disparar esto extraerá datos del servidorcada momento en que un usuario mueve el mapa.
¿Alguien sabe cómo disparar un comando único para obtener detalles del mapa (límites, etc.) después de la carga inicial del mapa?
He intentado ponermaps.getBounds()
en la segunda función de promesa pero no funciona.
Nota,Tengo un violín trabajando aquí - Simplemente no puedo encadenar más promesas después del$scope.map
los controles / opciones, etc. se definen porque no devuelven una promesa:
El ejemplo de código en los documentos no muestra cómo encadenar una promesadespués el$scope.map
se define.
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 elmaps
objeto devuelto por eluiGmapGoogleMapApi
promesa es completamente diferente a lamaps
objeto devuelto por eventos comotilesloaded
etc ... bastante confuso.
También,las preguntas frecuentes solo indica cómo usartilesloaded
para obtener la instancia del mapa, que no funciona por razones ya descritas.