使用AngularJS进行反向地理编码

时间:2016-01-06 14:56:05

标签: angularjs google-maps reverse-geocoding

我正在Angular中尝试反向地理编码directive,目前我只能从一个位置获取lat / lng坐标,但反向地理编码指令只会给我一个错误

  

Geocoder因以下原因失败:ZERO_RESULTS

我创建了一个简单的Plnkr示例来演示我想要实现的内容,您可以查看here

使用$scope.$apply(function(){ $scope.lat = lat; $scope.lng = lng; });

如果我使用常规坐标而不是像

那么无关紧要
$scope.$apply(function(){
        $scope.lat = 4.545;
        $scope.lng = 12.756;
    });

因为这只会导致反向地理编码出现相同的错误。我已尝试在index.html文件

中尝试花括号

<reverse-geocode lat="{{lat}}" lng="{{lng}}"></reverse-geocode>但我有一种强烈的感觉,我需要以某种方式编辑它们以获取lat / lng coords,但到目前为止没有运气

1 个答案:

答案 0 :(得分:1)

因为该指令将在异步$window.navigator.geolocation.getCurrentPosition完成之前编译并执行,这意味着在指令中attrs.latattrs.lng都将为空。

一个简单的解决方案是在数据可用之前阻止指令执行:

<reverse-geocode ng-if="lat && lng" lat="{{lat}}" lng="{{lng}}"></reverse-geocode>

演示: http://plnkr.co/edit/mJJ8OIvff1Xspnx24LfJ?p=preview