当前位置: 首页 > 知识库问答 >
问题:

角谷歌地图地理编码回调

诸新霁
2023-03-14

我有一些问题与谷歌地图地理编码api。

我正在使用谷歌地图,并尝试使用回调函数对地址进行地理编码:

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

使用回调函数之外的固定lat和lng,一切正常。

有线索吗?

谢谢你宝贵的帮助:)

共有1个答案

秦新立
2023-03-14

经过更多的谷歌搜索,我终于找到了答案!

您必须使用:

$scope.$apply(function() { 
    $scope.map = ...
});
 类似资料:
  • 我已经用自动完成和谷歌地理编码应用编程接口实现了谷歌地方应用编程接口。问题是结果似乎不正确。 有时自动完成列表中的一些选择结果根本没有地理编码,我得到的只是状态ZERO_RESULTS。 我知道Google Autocomplete也使用Places,而Google Geocode只使用邮政编码,这可能会有一些问题,但我如何限制Autocomplete只提供邮政编码结果呢。

  • 问题内容: 我正在尝试从Google Map geocode api获取LatLng。我的代码下方的地址值为“ New York,NY” 但我没有得到任何警报值。 谢谢你的帮助。 问题答案: 您需要就规则与API联系。 编辑: 我真是愚蠢,早上不应该在stackoverflow上!问题是跨域请求。出于安全原因,这是不允许的。 请使用Google自己的地址解析客户端。

  • 我用谷歌地图标记找到了一个答案,但是自从它死了,我就陷入了死胡同。 我想知道是否有人知道我将如何在我的网站上为用户复制此内容:https://www.google.ca/maps/place/Toronto,在m4n3m5/@43.7216028,-79.3771275,16z/数据=!3m1!4b1!4m5!3m4!10x89D4CD2E4F1652CD:0xee93f0117ea5797d!8

  • 所以我看到了一个特殊的例外,我敢肯定的是谷歌地图的绘图代码。 我有一个片段,在那里我以编程方式添加了一个支持地图片段,然后我在其中操纵谷歌地图实例。 这是stacktrace: 我无法可靠地复制它(尽管这种情况经常发生),我已经查看了ReadWriteDirectByteBuffer和ShortToByteBufferAdapter,但没有任何东西突然出现在我面前。 有什么想法吗?

  • 我认为问题是我需要添加构建提示。我可以找到在哪里添加他们,但我不确定他们应该是什么格式。我也不知道要补充什么。我想我发现了一个帖子,说我需要添加Android.xapplication=Android:value=“Your Key”/>Android.xPermissions= 但我不确定构建提示条目表单中的格式是什么

  •        LSV默认的对谷歌影像进行了加载,如果需要加载其他的谷歌地图数据,可以通过LSV中直接点击即可加载。