谷歌地图 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 结果以进行距离计算的主要内容,如果未能解决你的问题,请参考以下文章