寻求解决谷歌地图地理编码查询连字符地址

时间:2013-08-06 20:39:21

标签: google-geocoding-api

我正在寻找一种适用于后端服务器的解决方案,而不是来自客户端的解决方案;正如第一个答案指出的那样,有一种很好的方法可以做到这一点,我已经知道了。

谷歌地图API有一个已知的(虽然已经关闭但尚未重新确认)的错误,它处理包含连字符的地址。

https://code.google.com/p/gmaps-api-issues/issues/detail?id=481

我的示例地址是:45-56 42nd Street,Queens,NY,11104

我不知道这个bug的具体细节,但基本结果是'45 -56'不被视为“street_number”,并且在Queens中查询完全有效的地址会产生许多不正确的结果;最重要的是,没有一个正确的结果。

curl 'http://maps.googleapis.com/maps/api/geocode/json?sensor=false&components=country%3AUS&address=45-56+42nd+Street,+Queens,+NY,+11104' | grep formatted
         "formatted_address" : "56 East 42nd Street, New York, NY 10017, USA",
         "formatted_address" : "95-56 42nd Avenue, Queens, NY 11368, USA",
         "formatted_address" : "94-56 42nd Avenue, Queens, NY 11373, USA",
         "formatted_address" : "45 West 42nd Street, New York, NY 10036, USA",
         "formatted_address" : "242-56 42nd Avenue, Queens, NY 11363, USA",
         "formatted_address" : "196-56 42nd Road, Queens, NY 11358, USA",
         "formatted_address" : "28-56 42nd Road, Queens, NY 11101, USA",

我正在寻找一种解决方法,因为我不想等待这个问题被确认/修复。

我还没有得到任何工作,我希望其他人遇到这个问题;也许找到了一种可行的替代格式,可以产生正确的地址/地理编码查找。

1 个答案:

答案 0 :(得分:0)

看起来Google Maps Javascript API v3 Geocoder有效:

(虽然因为我不知道该区域,但它可能是错误的,但它确实返回了一个带有“location_type”的结果:“RANGE_INTERPOLATED”):

http://www.geocodezip.com/v3_example_geo2.asp?addr1=45-56%2042nd%20Street,%20Queens,%20NY,%2011104&geocode=1