从Google地方信息自动填充中选择后,如何解决输入文本时输入的地址错误?

时间:2019-07-06 03:26:10

标签: angularjs google-api google-places-api google-places

我正在使用具有自动完成功能的Google Places API来创建带有用户地址的表格。自动完成功能会显示地址列表,其中包含我要选择的地址,但是选择该选项后,该地址会用错误的地址字符串填充输入文本。如我所见,这不是错误的地址号码,也是错误的街道名称,当我在事件getPlace()上管理place_changed时,地址也被更改,就像Google再调用一次api。 / p>

这是Google API的错误还是我的代码有问题?

*编辑: 这是我用于处理Google Place自动完成功能的指令代码:

app.directive('googleplace', function () {
    return {
        restrict: 'A',
        link: function ($scope, element, attrs, model) {
            $scope.gPlace = new google.maps.places.Autocomplete(element[0], {types: ['geocode']});
            google.maps.event.addListener($scope.gPlace, 'place_changed', function () {
                var position = $scope.gPlace.getPlace();
                if (!position.geometry) {
                    alert("Address is not available: ' " + position.name + " '");
                    return;
                }
                if (map && marker) {
                    if (position.geometry.viewport) {
                        map.fitBounds(position.geometry.viewport);
                    } else {
                        map.setCenter(position.geometry.location);
                    }
                    marker.setPosition(position.geometry.location);
                } else {
                    initMap(position.geometry.location.lat(), position.geometry.location.lng());
                }
                updatePosition(position.geometry.location.lat(), position.geometry.location.lng(), input_count, element[0].id);
            });
        }
    }
});

示例:我在输入中输入地址字符串55a 3/2, Ninh Kiều, Cần Thơ, Vietnam,自动填充功能也会在下拉列表中显示该结果,但是当我选择该地址时,自动填充功能会将错误的地址填充到输入文本中。地址字符串变为55 Mạc Thiên Tích, Xuân Khánh, Ninh Kiều, Cần Thơ, Vietnam

1 个答案:

答案 0 :(得分:4)

此行为也显示在Google的自动完成示例https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete

这两个地址似乎指向相同的地点ID,因此可能是API问题。建议您将反馈发送到Google地图,请参阅https://support.google.com/maps/answer/3094045?hl=en&ref_topic=3093612

希望这会有所帮助!