我正在使用具有自动完成功能的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
。
答案 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
希望这会有所帮助!