Google map api返回Notfound结果,用于有效的邮政编码进行距离计算

时间:2017-06-21 12:57:12

标签: api google-maps google-api postal-code

我们正在使用Google map api查找两个邮政编码之间的距离。我们可以使用google map api Working Map API example获取任意两个邮政编码之间的距离。一些邮政编码这个api在没有任何空格的情况下发送邮政编码时返回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结果:NotFound

示例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

虽然它适用于大多数邮政编码有或没有空间,但对于少数邮政编码,它不返回没有空格的值。可能是什么原因?

1 个答案:

答案 0 :(得分:1)

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

例如,邮政编码H1A0C2似乎缺失

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

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

邮政编码H1C0A9地理编码器会返回完整的邮政编码:

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

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

您可以向Google报告丢失的邮政编码,如以下支持文档中所述:

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

希望这有帮助!