longitude latitude google georreferenciación geocoder from example ejemplos address javascript angularjs google-maps callback google-geocoding-api

javascript - latitude - Google Maps angulares de devolución de llamada de geocodificación



google maps javascript api (1)

después de más googlear, ¡finalmente encontré la respuesta!

Tienes que usar:

$scope.$apply(function() { $scope.map = ... });

Tengo algunos problemas con google maps geocoding api.

Estoy usando Angular Google Maps y tratando de geocodificar una dirección con una función de devolución de llamada:

.controller(''myCtrl'', [''$scope'', ''$rootScope'', ''uiGmapGoogleMapApi'', function ($scope, $rootScope, uiGmapGoogleMapApi) { // To be set by previous step $rootScope.chosenTown = "Roma" // geocode the given address var geocodeAddress = function(address, callback) { var geocoder = new google.maps.Geocoder(); geocoder.geocode( { ''address'': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { callback(results[0].geometry.location); } else { console.log("Geocode was not successful for the following reason: " + status); } }); }; // google maps is ready uiGmapGoogleMapApi.then(function(maps) { // geocode chosen town geocodeAddress($rootScope.chosenTown, function(latLng){ console.log("1 " + latLng.lat()) console.log("2 " + latLng.lng()) $scope.map = { center: { latitude: latLng.lat(), longitude: latLng.lng() }, zoom: 12, bounds: {}}; }); }); }])

Y el código html:

<div class="col-lg-5 finalStepMap"> <ui-gmap-google-map center=''map.center'' zoom=''map.zoom'' draggable="true" options="options" bounds="map.bounds"> <ui-gmap-markers models="markers" coords="''self''" options="''options''"></ui-gmap-markers> </ui-gmap-google-map> </div>

El mapa no se muestra.

Sin embargo, si llamo:

$scope.map = { center: { latitude: 10, longitude: 40}, zoom: 12, bounds: {}}; });

Con lat fijo y lng fuera de la función de devolución de llamada, todo funciona bien.

¿Cualquier pista?

Gracias por tu valiosa ayuda :)