这会产生一个包含street_number
- 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
- http://maps.googleapis.com/maps/api/geocode/json?address=26th+St+2nd+Ave+New+York,+NY+10019&sensor=false的JSON字符串。 26th St
部分似乎消失了。知道为什么吗?
答案 0 :(得分:1)
地理编码通常是非确定性的。虽然不常见,但同一查询可能会返回不同精度的结果,具体取决于地理编码过程内部实施的变化。
另一个问题是某些地方可能没有街道地址,或者算法无法接近一个地址。
您应该了解这些因素并处理所有这些不同的情况。我想您无法从您这边做任何事情来确保谷歌服务器的一致回复。
答案 1 :(得分:0)
显然因为26th St
部分不是street_number。 26th St
和2nd Ave
都是街道名称,因此它只会丢弃26th St
部分查询。虽然在第一个查询中1600
实际上是一个street_number。
答案 2 :(得分:0)
街道号有时被丢弃的另一种情况是它有一个方向性前缀,如315 West 44th Street
。在这种情况下,如果前缀缩写,结果可以更准确,如315 W 44th Street
。虽然我没有看到这个记录,但我看到的每个谷歌地图都以这种方式缩写了方向,所以也许地址以内部方式存储,并且通过在地理编码之前缩写来提高结果的可能性。