我们使用谷歌地图api来查找两个邮政编码之间的距离。我们可以通过使用谷歌地图 api 工作地图 API 示例来获取任何两个邮政编码之间的距离。当邮政编码在没有任何空格的情况下发送时,此 api 的一些邮政编码会返回 NotFound 错误,但对于相同的邮政编码,如果我们在 3 个字母后给出空间,它运行良好并正确返回距离。
接口网址
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:
url: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
尽管对于大多数邮政编码,它都可以使用或不使用空格,但对于少数邮政编码,它不会返回没有空格的值。可能是什么原因?
我建议检查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
希望这有帮助!