谷歌地理编码API返回不确定结果

问题描述:

对于我尝试进行地理编码的某些地址,Google会返回不正确的结果。谷歌地理编码API返回不确定结果

以下是一个例子,但它不是一个孤立的事件。第一个返回的结果是精确匹配,但是谷歌的标志它作为“partial_match”:

 
Street address: 16160 Frederick Rd 
City:   Gaithersburg 
State:   MD 
Zip code:  20877 

链接:http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=16160%20Frederick%20Rd,+Gaithersburg,+MD,+20877

我在这里的问题是确定哪些是正确的匹配。在这种情况下,“部分匹配”标志没有用,因为它在所有匹配结果上都设置为“true”。在这种情况下,我可以在街道地址,城市,州和/或邮编上测试平等,但是,如果在我发送的谷歌和我作为响应之间的拼写有所不同,不工作。 (例如:“Road”与“Rd”)。

我在这里做错了什么?有没有一种确定的方式来区分我不熟悉的完全匹配?

谢谢!

Google在地址近似方面做得非常出色。你正在寻找的是地址验证。 SmartyStreets提供了一个地址验证API,它的结果是确凿的。下面是该地址的SmartyStreets API返回:

输入:

https://api.qualifiedaddress.com/street-address/?street=16160%20Frederick%20Rd&street2=&city=gaithersburg&state=md&zipcode=20877&candidates=10&auth-token=YOUR_AUTHENTICATION_TOKEN_HERE

输出:

[ 
    { 
     "input_index": 0, 
     "candidate_index": 0, 
     "delivery_line_1": "16160 Frederick Rd", 
     "last_line": "Gaithersburg MD 20877-4011", 
     "delivery_point_barcode": "208774011604", 
     "components": { 
      "primary_number": "16160", 
      "street_name": "Frederick", 
      "street_suffix": "Rd", 
      "city_name": "Gaithersburg", 
      "state_abbreviation": "MD", 
      "zipcode": "20877", 
      "plus4_code": "4011", 
      "delivery_point": "60", 
      "delivery_point_check_digit": "4" 
     }, 
     "metadata": { 
      "record_type": "S", 
      "county_fips": "24031", 
      "county_name": "Montgomery", 
      "carrier_route": "C004", 
      "congressional_district": "08", 
      "latitude": 39.12162, 
      "longitude": -77.17619, 
      "precision": "Zip9" 
     }, 
     "analysis": { 
      "dpv_match_code": "Y", 
      "dpv_footnotes": "AABB", 
      "dpv_cmra": "N", 
      "dpv_vacant": "N", 
      "ews_match": false 
     } 
    } 
] 

注意, “dpv_match_code” 是 “Y”。这就是美国邮政发言人所说的验证交货点 - 你知道这是一个真正的地址。 SmartyStreets使用官方当前的USPS数据,并且是CASS认证的软件提供商。

该API对非营利,教育机构和低使用率用户免费。一旦您收到SmartyStreets的结果,您就可以使用Google进行地理编码。充分披露:我是SmartyStreets的开发人员。

编辑:添加纬度/经度字段(新发布)

+1

心中已经已经集成Smarty的,街道变成了我的地址验证算法。我甚至可以在电话中与你谈论这种可能性 - 非常棒的电话支持!我测试了一些其他的服务,你的解析器是我遇到的最好的。我与Smarty-Streets有关的问题是它不能返回经度和纬度,所以如果我从smarty-streets中得到某些东西,我必须回去尝试从其他地方获取经度和纬度。 – 2012-02-22 16:54:05

+0

了解。对不起,我不认识你! :)在某个时刻,敬请关注经纬度是希望不会太遥远的未来。 – mdwhatcott 2012-02-22 18:09:53

+1

更新!稍微延迟一下,但正如你所看到的:SmartyStreets现在执行地理编码(并且有一段时间)。 – Matt 2012-10-01 03:57:36