Nad*_*jib 5 javascript google-maps google-maps-api-3 google-places-api
我有一个输入字段(我们称之为 $addressInput),我要求用户提供他的地址。
\n\n然后,我在后端使用该地址来检索该地址的纬度和经度。
\n\n对于某些地址,例如“214 Avenue du G\xc3\xa9n\xc3\xa9ral Leclerc, Eaubonne, France”,如果用户输入此地址,谷歌地图自动完成功能将在自动完成功能中向用户建议两个不同的地址下拉菜单。\n第一个(=建议 A)是“214 Avenue du G\xc3\xa9n\xc3\xa9ral Leclerc, Eaubonne, France”,第二个(=建议 B)是“214 Rue du G\xc3\xa9n” \xc3\xa9ral Leclerc,法国欧博讷”。
\n\n但是如果用户点击建议A,虽然输入填充的是“214 Avenue du G\xc3\xa9n\xc3\xa9ral Leclerc, Eaubonne, France”,但谷歌地图自动完成返回的真实formatted_address与建议A不一样,它是“214 Avenue de la Division Leclerc, 95160 Montmorency, France”。
\n\n为什么谷歌地图自动完成功能不直接在下拉列表中建议真实的 formatted_value ?为什么它在下拉列表中向用户显示地址,但在内部使用不同格式的地址?\n是否可以强制自动完成 API 在选择下拉列表中显示 formatted_address?\n在这种情况下,我会建议 A = " 214 Avenue de la Division Leclerc, 95160 Montmorency, France”(而不是“214 Avenue du G\xc3\xa9n\xc3\xa9ral Leclerc ...”)和建议 B =“214 Rue du G\xc3\xa9n\xc3\ xa9ral Leclerc,欧博讷,法国”
\n\n请在下面找到让我知道这一点的代码:
\n\nvar $addressAutoCompleteInput = $(\'.js-address-autocomplete-input\'); //this is my input\n\nvar addressAutocomplete = new google.maps.places.Autocomplete($addressAutoCompleteInput[0], {\n componentRestrictions: {country: \'fr\'}\n});\n\naddressAutocomplete.addListener(\'place_changed\', function() {\n console.log(addressAutocomplete.getPlace().formatted_address)\n});\nRun Code Online (Sandbox Code Playgroud)\n\n确切的行为发生在谷歌地图自动竞争的官方页面上\n https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete?hl=fr
\n\n地图上显示的标记与用户输入的 formatted_address 不同。
\n\n谢谢。
\n要了解发生的情况,您应该查看第一个建议的地点 ID。这是EjEyMTQgQXZlbnVlIGR1IEfDqW7DqXJhbCBMZWNsZXJjLCBFYXVib25uZSwgRnJhbmNl。
当您看到这些长地点 ID 而不是类似的内容时,ChIJHzwQtJeLGGARxaSLI71pDSY意味着该地址在 Google 数据库中不存在。自动完成功能接受您的输入,因为它们假设您可能比 Google 更了解确切的地址。因此,他们创建插入的地点 ID(长的 ID)并将其传递给详细信息。但是,详细信息会搜索可能与用户输入相匹配的现有地点,因此它们会将长地点 ID 解析EjEyMTQgQXZlbnVlIGR1IEfDqW7DqXJhbCBMZWNsZXJjLCBFYXVib25uZSwgRnJhbmNl为现有地点 ID ChIJ31WNvopo5kcRoAlv3ui0Aj0214 Avenue de la Division Leclerc, 95160 Montmorency, France。
Google 问题跟踪器中报告了这种插值地点 ID 的不当行为,并已在 bug 中进行处理
\n\nhttps://issuetracker.google.com/issues/35823492
\n\n根据最新消息,谷歌目前正在努力解决这个问题。请随意为该错误加注星标以添加您的投票并订阅通知。
\n\n是否可以强制自动完成 API 在选择下拉列表中显示 formatted_address?
\n\n为此,您需要在 Google 数据库中创建缺失的地址“214 Avenue du G\xc3\xa9n\xc3\xa9ral Leclerc, Eaubonne, France\”。唯一的选择是向 Google 报告缺少的地址,发送反馈,如支持帮助中所述:
\n\nhttps://support.google.com/maps/answer/3094045?hl=zh-CN&ref_topic=3093612
\n\n一旦谷歌添加了缺失的地址,自动完成功能就应该按预期工作。
\n| 归档时间: |
|
| 查看次数: |
3293 次 |
| 最近记录: |