Google maps 谷歌自动完成API可能有一个新的错误

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

因此,在我的工作中,我实现了一个使用谷歌自动完成API的简单地址搜索。这已经运行了一段时间,但最近我们遇到了一个问题,错误的地址进入系统。我发现当你搜索带有单位号码的地址时会出现问题

复制这个问题。 在此处输入具有单元号的任何地址。

例如,弗莱明顿街10/311号

选择出现的任何结果。地图上的标记现在将改为显示“弗莱明顿街10号”。因此,单位编号成为街道编号

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组件中获取单元号。我不知道如果没有它,人们怎么可能将此功能用于装运地址?它实际上鼓励人们不包括公寓号码。这就成了邮递公司的噩梦,他们必须弄清楚它要去哪个单位。除非您随后通过邮政服务网站运行地址,以验证是否需要一个单位。啊。