Google 地图自动完成格式的地址与显示的地址不一样
Google Maps Autocomplete Formatted address is not the same as the displayed one
我有一个输入字段(我们称之为 $addressInput),我要求用户在其中提供他的地址。
然后我在后端使用这个地址来检索地址的纬度和经度。
对于某些地址,例如“214 Avenue du Général Leclerc, Eaubonne, France”,如果用户输入此地址,google 地图自动完成功能会在自动完成下拉。
第一个(= 建议 A)是“214 Avenue du Général Leclerc, Eaubonne, France”,第二个(=suggestion B)是“214 Rue du Général Leclerc, Eaubonne, France”。
但是如果用户点击建议 A,虽然输入填充的是“214 Avenue du Général Leclerc, Eaubonne, France”,但 google 地图自动完成返回的真实 formatted_address 并不是与建议A相同,是“214 Avenue de la Division Leclerc, 95160 Montmorency, France”。
为什么 google 地图自动完成功能不直接在下拉列表中提示真正的 formatted_value?为什么它在下拉列表中向用户显示地址,但在内部使用不同格式的地址?
是否可以强制自动完成 API 在选择下拉列表中显示 formatted_address?
在这种情况下,我会建议 A =“214 Avenue de la Division Leclerc, 95160 Montmorency, France”(而不是“214 Avenue du Général Leclerc ...”)和建议 B =“214 Rue du Général Leclerc, Eaubonne,法国
请在下面找到让我知道这一点的代码:
var $addressAutoCompleteInput = $('.js-address-autocomplete-input'); //this is my input
var addressAutocomplete = new google.maps.places.Autocomplete($addressAutoCompleteInput[0], {
componentRestrictions: {country: 'fr'}
});
addressAutocomplete.addListener('place_changed', function() {
console.log(addressAutocomplete.getPlace().formatted_address)
});
确切的行为发生在 google 地图自动竞争的官方页面上
https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete?hl=fr
地图上显示的标记与用户输入的 formatted_address 不同。
谢谢。
要了解发生了什么,您应该查看第一个建议的地点 ID。是EjEyMTQgQXZlbnVlIGR1IEfDqW7DqXJhbCBMZWNsZXJjLCBFYXVib25uZSwgRnJhbmNl
。
当您看到这些长地址 ID 而不是 ChIJHzwQtJeLGGARxaSLI71pDSY
之类的内容时,这意味着该地址不存在于 Google 数据库中。自动完成接受您的输入,因为他们假设您可能比 Google 更了解确切地址。因此,他们创建了插值地点 ID(长的)并将其传递给详细信息。但是,详细信息会搜索可能与用户输入匹配的现有地点,因此它们会将您的长地点 ID EjEyMTQgQXZlbnVlIGR1IEfDqW7DqXJhbCBMZWNsZXJjLCBFYXVib25uZSwgRnJhbmNl
解析为现有地点 ID ChIJ31WNvopo5kcRoAlv3ui0Aj0
214 Avenue de la Division Leclerc, 95160 Montmorency, France。
在 Google 问题跟踪器中报告了插值地点 ID 的这种不当行为,并在错误
中进行了处理
https://issuetracker.google.com/issues/35823492
根据最近的消息,Google 目前正在努力解决这个问题。随时为错误加注星标以添加您的投票并订阅通知。
是否可以强制自动完成 API 在选项下拉列表中显示 formatted_address?
为此,您需要在 Google 数据库中创建缺失的地址“214 Avenue du Général Leclerc, Eaubonne, France”。唯一的选择是向 Google 报告丢失的地址,发送反馈,如支持帮助中所述:
https://support.google.com/maps/answer/3094045?hl=en&ref_topic=3093612
一旦 Google 添加了缺失的地址,自动完成功能应该会按预期工作。
我的多个地址都面临同样的问题。
例如:
我正在查找“601 Telegraph Canyon Road”,Google 地图地址自动完成功能向我们显示 "Canyon Villa Apartment Homes, 601 Telegraph Canyon Road, Chula Vista, CA, USA" 但实际上 API 的格式化地址返回“601 Telegraph Canyon Rd, Chula Vista, CA 91910,美国。
Google 地图地址自动完成 API:
那么,我们可以做些什么作为解决方案。
我正在联系一个 姓名 和 格式的地址 以获得几乎准确的数据。
来自 API 的姓名和格式化地址:
我知道,这不是一个好的解决方案,但我们已将同样的问题报告给 Google。
目前,我们正在遵循此解决方案。
如果有人有确切的解决方案,请告诉我们。
我有一个输入字段(我们称之为 $addressInput),我要求用户在其中提供他的地址。
然后我在后端使用这个地址来检索地址的纬度和经度。
对于某些地址,例如“214 Avenue du Général Leclerc, Eaubonne, France”,如果用户输入此地址,google 地图自动完成功能会在自动完成下拉。 第一个(= 建议 A)是“214 Avenue du Général Leclerc, Eaubonne, France”,第二个(=suggestion B)是“214 Rue du Général Leclerc, Eaubonne, France”。
但是如果用户点击建议 A,虽然输入填充的是“214 Avenue du Général Leclerc, Eaubonne, France”,但 google 地图自动完成返回的真实 formatted_address 并不是与建议A相同,是“214 Avenue de la Division Leclerc, 95160 Montmorency, France”。
为什么 google 地图自动完成功能不直接在下拉列表中提示真正的 formatted_value?为什么它在下拉列表中向用户显示地址,但在内部使用不同格式的地址? 是否可以强制自动完成 API 在选择下拉列表中显示 formatted_address? 在这种情况下,我会建议 A =“214 Avenue de la Division Leclerc, 95160 Montmorency, France”(而不是“214 Avenue du Général Leclerc ...”)和建议 B =“214 Rue du Général Leclerc, Eaubonne,法国
请在下面找到让我知道这一点的代码:
var $addressAutoCompleteInput = $('.js-address-autocomplete-input'); //this is my input
var addressAutocomplete = new google.maps.places.Autocomplete($addressAutoCompleteInput[0], {
componentRestrictions: {country: 'fr'}
});
addressAutocomplete.addListener('place_changed', function() {
console.log(addressAutocomplete.getPlace().formatted_address)
});
确切的行为发生在 google 地图自动竞争的官方页面上 https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete?hl=fr
地图上显示的标记与用户输入的 formatted_address 不同。
谢谢。
要了解发生了什么,您应该查看第一个建议的地点 ID。是EjEyMTQgQXZlbnVlIGR1IEfDqW7DqXJhbCBMZWNsZXJjLCBFYXVib25uZSwgRnJhbmNl
。
当您看到这些长地址 ID 而不是 ChIJHzwQtJeLGGARxaSLI71pDSY
之类的内容时,这意味着该地址不存在于 Google 数据库中。自动完成接受您的输入,因为他们假设您可能比 Google 更了解确切地址。因此,他们创建了插值地点 ID(长的)并将其传递给详细信息。但是,详细信息会搜索可能与用户输入匹配的现有地点,因此它们会将您的长地点 ID EjEyMTQgQXZlbnVlIGR1IEfDqW7DqXJhbCBMZWNsZXJjLCBFYXVib25uZSwgRnJhbmNl
解析为现有地点 ID ChIJ31WNvopo5kcRoAlv3ui0Aj0
214 Avenue de la Division Leclerc, 95160 Montmorency, France。
在 Google 问题跟踪器中报告了插值地点 ID 的这种不当行为,并在错误
中进行了处理https://issuetracker.google.com/issues/35823492
根据最近的消息,Google 目前正在努力解决这个问题。随时为错误加注星标以添加您的投票并订阅通知。
是否可以强制自动完成 API 在选项下拉列表中显示 formatted_address?
为此,您需要在 Google 数据库中创建缺失的地址“214 Avenue du Général Leclerc, Eaubonne, France”。唯一的选择是向 Google 报告丢失的地址,发送反馈,如支持帮助中所述:
https://support.google.com/maps/answer/3094045?hl=en&ref_topic=3093612
一旦 Google 添加了缺失的地址,自动完成功能应该会按预期工作。
我的多个地址都面临同样的问题。
例如: 我正在查找“601 Telegraph Canyon Road”,Google 地图地址自动完成功能向我们显示 "Canyon Villa Apartment Homes, 601 Telegraph Canyon Road, Chula Vista, CA, USA" 但实际上 API 的格式化地址返回“601 Telegraph Canyon Rd, Chula Vista, CA 91910,美国。
Google 地图地址自动完成 API:
那么,我们可以做些什么作为解决方案。 我正在联系一个 姓名 和 格式的地址 以获得几乎准确的数据。
来自 API 的姓名和格式化地址:
我知道,这不是一个好的解决方案,但我们已将同样的问题报告给 Google。 目前,我们正在遵循此解决方案。
如果有人有确切的解决方案,请告诉我们。