2011-11-26 51 views
0

这导致包含street_number JSON字符串 - http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false谷歌地图地理编码 - 没有街道号码?

"long_name" : "1600", 
"short_name" : "1600", 
"types" : [ "street_number" ] 

然而,这不会导致包含street_number一个JSON字符串 - http://maps.googleapis.com/maps/api/geocode/json?address=26th+St+2nd+Ave+New+York,+NY+10019&sensor=false26th St部分似乎消失了。任何想法为什么?

回答

0

显然是因为26th St部分不是street_number。 26th St2nd Ave都是街道名称,所以它只是丢弃26th St部分查询。而在第一个查询1600真的是一个街道号码。

1

地理编码通常是非确定性的。尽管不常见,但根据地理编码过程内部实现的变化,同一查询可能会返回不同的精度结果。

另一个问题是某个地方可能没有街道地址,或者该算法无法近似于一个地址。

您应该了解这些因素并处理所有这些不同情况。我想你没有任何事可以从你身边做,以确保来自谷歌服务器的一致回复。

+0

我不是要求Google近似街道地址。我已经提供。 – StackOverflowNewbie

+0

对不起,我刚刚注意到...但同样的想法适用。不幸的是,你无能为力,只能处理不一致的问题。您可以查找street_address或路由组件,如果两者都未找到,则假定您未找到街道号码。 – Omtara

0

有时会丢弃街道号码的另一种情况是,它具有定向前缀,如315 West 44th Street。在这种情况下,如果前缀被缩写,结果可能更准确,如315 W 44th Street。虽然我没有看到这个记录,但我看过的每个谷歌地图都以这种方式缩写方向,所以也许地址以内部方式存储,并且在地理编码之前通过缩写提高了获得好结果的可能性。