谷歌地图 api 为有效的邮政编码返回 Notfound 结果以进行距离计算

Posted

技术标签:

【中文标题】谷歌地图 api 为有效的邮政编码返回 Notfound 结果以进行距离计算【英文标题】:Google map api returns Notfound result for valid postal-cod for distance calculation 【发布时间】:2017-06-21 12:57:11 【问题描述】:

我们正在使用 Google map api 来查找两个邮政编码之间的距离。我们可以使用 google map api Working Map API example 获取任意两个邮政编码之间的距离。某些邮政编码在发送邮政编码时没有任何空格时会返回 NotFound 错误,但对于相同的邮政编码,如果我们在 3 个字母后留出空格,它可以正常工作并正确返回距离。

API 网址

http://maps.googleapis.com/maps/api/distancematrix/json?origins=H3W3C4&destinations=H1C0A6&mode=driving&language=en-EN&sensor=false

示例 1:

网址:http://maps.googleapis.com/maps/api/distancematrix/json?origins=H3W3C4&destinations=H1A0C2&mode=driving&language=en-EN&sensor=false 邮政编码:H1A0C2, api 结果:未找到

示例 2:

网址:http://maps.googleapis.com/maps/api/distancematrix/json?origins=H3W3C4&destinations=H1A 0C2&mode=driving&language=en-EN&sensor=false 邮政编码:H1A 0C2,api 结果:返回正确的距离

如果我们提供不带空格的邮政编码,以下是 api 返回 NotFound 的邮政编码列表(但如果我们提供像 'H1A 0C2' 这样的空格,它将返回结果)

H1A0C2 H1A0C3 H1A0C4 H1B0B7 H1C0E3 H1C0E4 H1C0E5 H1C0E6 H1C0E7 H1C0E8 H1C0E9 H1C0G1 H1C0G2

如果我们给出有/没有空格,下面列出了 api 正确返回距离的邮政编码(如果我们给出 'H1C 0A7' 和 'H1C0A7' 效果很好。

H1C0A7 H1C0A8 H1C0A9

尽管对于大多数邮政编码,无论有无空格,它都可以使用,但对于少数情况,它不会返回没有空格的值。可能是什么原因?

【问题讨论】:

issuetracker.google.com/issues/62893426 【参考方案1】:

我建议检查邮政编码是否存在于 Google 数据库中。

例如,邮政编码H1A0C2 似乎不见了

https://developers-dot-devsite-v2-prod.appspot.com/maps/documentation/utils/geocoder/#q%3D%26options%3Dtrue%26in_country%3DCA%26in_postal_code%3DH1A0C2

如您所见,地理编码工具仅返回邮政编码前缀HA1,而不是邮政编码本身。

对于邮政编码H1C0A9,地理编码器返回一个完整的邮政编码:

https://developers-dot-devsite-v2-prod.appspot.com/maps/documentation/utils/geocoder/#q%3D%26in_country%3DCA%26in_postal_code%3DH1C0A9

我认为距离矩阵无法找到缺少邮政编码的距离。但是,当您添加一个空白区域时,它可以找到邮政编码前缀并根据邮政编码前缀的坐标计算距离。所以在这种情况下,结果可能不够精确。

您可以按照以下支持文档中的说明向 Google 报告缺少的邮政编码:

https://support.google.com/maps/answer/3094088

希望这会有所帮助!

【讨论】:

是的,我在谷歌的 issuetracker 门户中也做了同样的事情。他们说他们的数据库错过了这个邮政编码。

以上是关于谷歌地图 api 为有效的邮政编码返回 Notfound 结果以进行距离计算的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地理编码 API 不如使用地址的谷歌地图准确

如何使用谷歌地图 api 将邮政编码转换为地理位置(纬度和经度)?

如何在信息窗口中显示我的地理编码地址?谷歌地图 API

如何从谷歌地图自动完成 api 获取邮政编码

对地址进行地理编码并将其设置为谷歌地图的初始中心

谷歌地图本地化