5

GoogleマップのジオコーディングAPIに問題があります。私は角度Googleマップを使用して、コールバック関数と住所をジオコードしようとしています角度Googleマップジオコーディングコールバック

.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: {}}; 
     }); 

    }); 
}]) 

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> 

しかし、私が呼び出す場合:

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

コールバック関数の外固定緯度とLNGを使用すると、すべてが正常に動作します。

ヒント?

あなたの貴重な助けをありがとう:)

答えて

3

私は最終的に答えを見つけました!あなたが使用する必要が

$scope.$apply(function() { 
    $scope.map = ... 
}); 
関連する問題