如何为googlemaps使用地理编码?

时间:2014-04-27 12:54:05

标签: angularjs google-maps promise

我正在尝试使用googlemaps进行地理编码。我遇到的问题是我的代码中的Geocoder在再次居中之前没有返回:

 GeoCoder.getLocations($scope.address).then(function(results) {
    var latLng = results[0].geometry.location;
    $scope.center = {
      lat: latLng.k,
      lng: latLng.A
    };
    $scope.zoom = 10;
  });

在我的gmaps指令中,我将地图的中心设置为从GeoCoder返回的新lat / lng(参见上文)。调用服务以及何时返回设置新位置的更好解决方案是什么?也许是异步电话? 这是url plunkr:http://plnkr.co/edit/6Wg3UZNsJOHLQCmTJPCQ?p=preview

1 个答案:

答案 0 :(得分:0)

刚刚返回中心怎么样?或者链接中心的承诺?当您准备好使地图居中时,您可以解决它。

var centerPromise = GeoCoder.getLocations($scope.address).then(function(results) {
    var latLng = results[0].geometry.location;
    $scope.nextCenter = {
        lat: latLng.k,
        lng: latLng.A
    };
    return new $q.defer().promise;
 });