1

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

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

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

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

我不知道该错误的确切细节,但基本结果是“45-56”不被视为“street_number”,并且查询皇后区完全有效的地址会产生许多不正确的结果;最重要的是,没有一个正确的结果。

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",

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

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

4

1 回答 1

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

于 2013-08-06T20:52:31.537 回答