英国邮政编码Google API未返回街道地址

时间:2016-04-01 07:56:51

标签: javascript google-maps validation google-geocoding-api street-address

我们正在使用Google地理编码API在我们的运输预订表单上验证英国邮政编码,但它并不总是返回街道地址,例如EC2Y 8DR伦敦邮政编码将返回长/纬线,但不会填充起始表单字段。我们离开了付费服务,现在我们的客户在预订时遇到了严重的问题。

您可以在https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform

看到此信息

有解决方法吗?

提前致谢 西蒙

1 个答案:

答案 0 :(得分:3)

让我们来看看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的详细信息时,您将获得有关邮政编码本身且不包含任何街道名称的信息。

https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJgYd44lUbdkgRUMGemVRu-1Q&key=YOUR_API_KEY

您可以在地图制作工具中看到邮政编码: 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'

请查看Geocoder工具中的结果:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D51.520278%252C-0.094923