gpt4 book ai didi

google-maps-api-3 - Google Places Autocomplete 建议与 Unit No/Subpremise 没有出现在响应数组中

转载 作者:行者123 更新时间:2023-12-03 11:29:22 36 4
gpt4 key购买 nike

我正在使用 Google Places API 使用 javascript 自动完成地址

当我在输入框中键入地址的单元号和街道号码时,它会在建议下拉列表中显示结果,但是当我选择地址时, Action “place_changed”事件的监听器没有任何地址为“subpremise”类型的 address_component 地址' 甚至 formatted_address 属性中也没有单元号。尽管它确实包含来自 'street number'、'city'、'country' 等的其他详细信息

例如:如果我输入“1403/648 Bourke Street”,但国家限制为澳大利亚。它在下拉列表中向我显示了 5 个结果,第一个结果为“1403/648 Bourke street, Melbourne,Australia”,但是当我选择此选项时,我在 place_change 事件监听器中得到的是“648 Bourke street, Melbourne, Australia”

虽然这个问题是间歇性的,但它适用于某些单位地址,但对其他单位地址无效。任何建议将不胜感激!!

最佳答案

在我看来,谷歌正在验证地址是真实的(至少在他们上次更新他们的地点数据库时是真实的 - 我猜是政府记录)。问题是,在创建新的“子前提”地址的地方一直在发生分割,而对这些的查找似乎更频繁。奇怪的是,他们允许“无效”地址作为自动完成建议,但随后限制了结果。

查找下面的悉尼地址将返回“subpremise”和“street_number”

“澳大利亚新南威尔士州悉尼皮特街 9/321 号”

以下墨尔本地址仅与“路线”一样准确

"2/321 Pitt Street, Brunswick, Victoria, Australia"

最大的问题是结果不会在回复中的任何地方返回单位或街道号码。

我把下面的 JS 代码拼凑在一起,将用户输入的地址与返回的结果进行比较。如果缺少“数字”,则会添加它们。您可以根据需要进行自定义以适合您的代码。

if (addressType == 'route') {
var regex = RegExp('^(.*)'+GPLACESSTREET.split(' ',1)[0]), // get all the user entered values before a match with the first word from the Google result
result = regex.exec(INPUTFEILD.value);

if ( Array.isArray(result) ) {
FULLSTREETADDRESS = result[1]+''+GPLACESSTREET; // add the street name to the user-entered unit & street number
}
}

关于google-maps-api-3 - Google Places Autocomplete 建议与 Unit No/Subpremise 没有出现在响应数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17936689/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com