我们正在使用 Google 地理编码 API 来验证交通预订表单上的英国邮政编码,但它并不总是返回街道地址,例如 EC2Y 8DR 伦敦邮政编码将返回经度/纬度,但不会填充嘘声表单字段。我们放弃了付费服务,现在我们的客户在输入预订时遇到了严重的问题。
你可以在这里看到这个https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform
有解决办法吗?
提前致谢 西蒙
最佳答案
让我们看一下“EC2Y 8DR”的自动完成请求
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=EC2Y%208DR&key=YOUR_API_KEY
如果您执行此请求,您将看到建议“London EC2Y 8DR, United Kingdom”的类型为“postal_code”(地点 ID ChIJgYd44lUbdkgRUMGemVRu-1Q)。因此,当您请求此地点 ID 的详细信息时,您将得到有关邮政编码本身的信息,其中不包含任何街道名称。
您可以在 map 制作工具中查看邮政编码: http://www.google.com/mapmaker?gw=90&iwloc=0_0&dtab=history&cid=6123609427973947728
解决方法如下:
当您请求地点时,请详分割析其类型。如果类型为“postal_code”,则提取邮政编码的纬度、经度并执行反向地理编码以获得最近的街道地址。
在您的示例中,邮政编码的坐标为 51.5202776,-0.09492260000000001。反向地理编码将返回地址“331 Shakespeare Tower, London EC2Y 8DR, UK”。
请查看地理编码器工具中的结果:
https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D51.520278%252C-0.094923
关于javascript - 英国邮政编码 Google API 未返回街道地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36350968/