Google maps 谷歌自动完成API可能有一个新的错误
因此,在我的工作中,我实现了一个使用谷歌自动完成API的简单地址搜索。这已经运行了一段时间,但最近我们遇到了一个问题,错误的地址进入系统。我发现当你搜索带有单位号码的地址时会出现问题 复制这个问题。 在此处输入具有单元号的任何地址。 例如,弗莱明顿街10/311号 选择出现的任何结果。地图上的标记现在将改为显示“弗莱明顿街10号”。因此,单位编号成为街道编号Google maps 谷歌自动完成API可能有一个新的错误,google-maps,google-maps-api-3,street-address,Google Maps,Google Maps Api 3,Street Address,因此,在我的工作中,我实现了一个使用谷歌自动完成API的简单地址搜索。这已经运行了一段时间,但最近我们遇到了一个问题,错误的地址进入系统。我发现当你搜索带有单位号码的地址时会出现问题 复制这个问题。 在此处输入具有单元号的任何地址。 例如,弗莱明顿街10/311号 选择出现的任何结果。地图上的标记现在将改为显示“弗莱明顿街10号”。因此,单位编号成为街道编号 var input = document.getElementById('address_autocomplete') var opti
var input = document.getElementById('address_autocomplete')
var options = {
types: ['address'],
componentRestrictions: {country: 'au'}
};
autocomplete = new google.maps.places.Autocomplete(input, options);
autocomplete.addListener('place_changed', addressCallBack);
function addressCallBack() {
var place = autocomplete.getPlace();
console.log(place.address_components); //unit number is now the street number
}
下面是我修改过的代码片段,它显示了街道号丢失的位置,单元号变成了街道号
var input = document.getElementById('address_autocomplete')
var options = {
types: ['address'],
componentRestrictions: {country: 'au'}
};
autocomplete = new google.maps.places.Autocomplete(input, options);
autocomplete.addListener('place_changed', addressCallBack);
function addressCallBack() {
var place = autocomplete.getPlace();
console.log(place.address_components); //unit number is now the street number
}
我还没有找到任何关于这个的信息,所以如果我遗漏了一些我想知道的事情,或者至少让大家知道这个问题
现在,我有一个解决办法,让事情继续运行
编辑-这是我做的一个测试,演示了这个问题
然后我选择了第一个结果,澳大利亚林伍德维多利亚州万蒂纳路23/45号,
也就是说,至少是澳大利亚万蒂纳路45号23单元
选择搜索结果后,将向Google place服务发送一个请求,以获取有关该位置的更多详细信息。
回应
/**/_xdc_._knjkfp && _xdc_._knjkfp( {
"html_attributions" : [],
"result" : {
"address_components" : [
{
"long_name" : "23",
"short_name" : "23",
"types" : [ "street_number" ]
},
{
"long_name" : "Wantirna Road",
"short_name" : "Wantirna Rd",
"types" : [ "route" ]
},
{
"long_name" : "Ringwood",
"short_name" : "Ringwood",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Maroondah City",
"short_name" : "Maroondah",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Victoria",
"short_name" : "VIC",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Australia",
"short_name" : "AU",
"types" : [ "country", "political" ]
},
{
"long_name" : "3134",
"short_name" : "3134",
"types" : [ "postal_code" ]
}
],
"geometry" : {
"location" : {
"lat" : -37.8187267,
"lng" : 145.2275479
},
"viewport" : {
"northeast" : {
"lat" : -37.8173781197085,
"lng" : 145.2287786302915
},
"southwest" : {
"lat" : -37.82007608029149,
"lng" : 145.2260806697085
}
}
},
"icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
"name" : "23 Wantirna Rd"
},
"status" : "OK"
}
)
如你所见,回复显示地址现在是澳大利亚林伍德维克市万蒂纳路23号。这意味着Place服务将单元号误认为街道号。在这种情况下,街道编号只需为45而不是23。不幸的是,目前不支持单元编号格式的就地自动完成。公共问题跟踪器中有一个功能请求,要求添加对单元号/子许可证就地自动完成的支持。您可以在此处看到功能请求: 请注意,它于2018年6月29日重新开放,谷歌要求启动此功能请求,以确定有多少人对此功能感兴趣
同样,在中也报道了和你们的问题非常相似的问题,但谷歌将其标记为35830389的副本 根据您的测试,提供一个失败的完整示例,以及预期结果如何?您使用的是什么版本的API?是什么让你认为这是一个新引入的bug?我现在添加了一个示例测试,它精确地显示了失败的地方。谢谢,谢谢你的链接。有趣的是,在我开始在我们的系统上看到问题的前几天,这个问题被重新讨论。我不确定是否有什么变化。我的代码允许我从place.address\u组件中获取单元号。我不知道如果没有它,人们怎么可能将此功能用于装运地址?它实际上鼓励人们不包括公寓号码。这就成了邮递公司的噩梦,他们必须弄清楚它要去哪个单位。除非您随后通过邮政服务网站运行地址,以验证是否需要一个单位。啊。