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

3
有些地址我尝试进行地理编码,但谷歌返回的结果不太准确。以下是一个例子,但这并不是个案。第一个返回的结果是精确匹配,但谷歌将其标记为“partial_match”:
街道地址:16160 Frederick Rd 城市:Gaithersburg 州:MD 邮政编码:20877
链接:http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=16160%20Frederick%20Rd,+Gaithersburg,+MD,+20877 我的问题在于确定哪个是正确的匹配。在这种情况下,“partial match”标志并不有用,因为它在所有匹配结果上都设置为“true”。在这种情况下,我可以测试街道地址、城市、州和/或邮政编码的相等性,但是,如果我发送给谷歌的内容与响应的内容之间存在轻微的拼写差异,那么这也行不通。(例如:“Road”与“Rd”)。

我这里做错了什么吗?有没有一种确定性的方法可以区分我不熟悉的完全匹配?

谢谢!

1个回答

3

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 使用官方、最新的美国邮政部门数据,并且是 CASS 认证的软件供应商。
一旦您从 SmartyStreets 收到结果,您可以使用谷歌进行地理编码。完全透露:我是 SmartyStreets 的开发人员。
编辑:添加了纬度/经度字段(新发布)。

1
我已经将Smarty-Streets集成到我的地址验证算法中。可能我甚至曾经和你通过电话交流 - 顺便说一句,你们的电话支持非常好!我测试了几个其他服务,你们的解析器是我遇到过最好的。我对Smarty-Streets的问题在于它不返回经度和纬度,所以如果我从Smarty-Streets得到了某些信息,我必须回去尝试从其他地方获取经度和纬度。 - Chris Dutrow
明白了。抱歉我没有认出你! :) 请继续关注,经纬度将在不久的将来发布。 - Michael Whatcott
1
更新!有点晚了,但是你可以看到:SmartyStreets现在执行地理编码(已经有一段时间了)。 - Matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接