3

对于我尝试进行地理编码的某些地址,谷歌返回了不恰当的不确定结果。

以下是一个例子,但它不是一个孤立的事件。第一个返回的结果是完全匹配的,但是 google 将其标记为“partial_match”:

街道地址:16160 Frederick Rd
城市:盖瑟斯堡
状态:医学博士
邮编:20877

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

我的问题是确定哪个是正确的匹配。在这种情况下,“部分匹配”标志没有用,因为它在所有匹配结果上都设置为“真”。在这种情况下,我可以测试街道地址、城市、州和/或邮政编码是否相等,但是,如果我发送给谷歌的内容和我得到的回复之间的拼写有细微差别,那将也不行。(例如:“路”与“路”)。

我在这里做错了吗?有没有确定的方法来区分我不熟悉的完全匹配?

谢谢!

4

1 回答 1

3

谷歌在地址近似方面做得很好。您正在寻找的是地址验证。 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”。这是 USPS 所说的经过验证的交付点——你知道那是一个真实的地址。SmartyStreets 使用官方的、最新的 USPS 数据,并且是经过 CASS 认证的软件提供商。

API 对非营利组织、教育机构和低使用率用户免费。从 SmartyStreets 收到结果后,您可以使用 Google 对其进行地理编码。全面披露:我是 SmartyStreets 的开发人员。

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

于 2012-02-22T15:32:33.597 回答