查询Google Geocode API时如何提高准确性?

时间:2018-12-18 16:37:12

标签: ios google-maps geocode

我正在使用活动计划程序应用程序,需要验证用户输入的地址。

目前,我不担心输入错误的门号/单元号或输入不存在的单元号。

我只想处理用户输入诸如会议室/会议室/等通用词作为位置的情况。

问题是地址解析api无法提供任何提高准确性的功能。

以下api:

https://maps.googleapis.com/maps/api/geocode/json?address=no+location&key=AIz ***** bxyiI

将地址输入为“无位置”

但是此查询给出结果

{
"results": [
    {
        "address_components": [
            {
                "long_name": "2120",
                "short_name": "2120",
                "types": [
                    "street_number"
                ]
            },
            {
                "long_name": "Main Street",
                "short_name": "Main St",
                "types": [
                    "route"
                ]
            },
            {
                "long_name": "Parsons",
                "short_name": "Parsons",
                "types": [
                    "locality",
                    "political"
                ]
            },
            {
                "long_name": "Labette County",
                "short_name": "Labette County",
                "types": [
                    "administrative_area_level_2",
                    "political"
                ]
            },
            {
                "long_name": "Kansas",
                "short_name": "KS",
                "types": [
                    "administrative_area_level_1",
                    "political"
                ]
            },
            {
                "long_name": "United States",
                "short_name": "US",
                "types": [
                    "country",
                    "political"
                ]
            },
            {
                "long_name": "67357",
                "short_name": "67357",
                "types": [
                    "postal_code"
                ]
            }
        ],
        "formatted_address": "2120 Main St, Parsons, KS 67357, USA",
        "geometry": {
            "location": {
                "lat": 37.340256,
                "lng": -95.268513
            },
            "location_type": "ROOFTOP",
            "viewport": {
                "northeast": {
                    "lat": 37.3416049802915,
                    "lng": -95.26716401970849
                },
                "southwest": {
                    "lat": 37.3389070197085,
                    "lng": -95.26986198029151
                }
            }
        },
        "place_id": "ChIJXQvh_YcauIcRg5p7FuD3Luc",
        "plus_code": {
            "compound_code": "8PRJ+4H Parsons, Kansas, United States",
            "global_code": "86968PRJ+4H"
        },
        "types": [
            "establishment",
            "point_of_interest",
            "store"
        ]
    }
],
"status": "OK"

}

我尝试了以下方法:

1)在这些情况下取决于用户输入。如果输入的地址不是有效地址,则用户可以将事件标记为常规事件,而无需将该事件映射到地图视图上。

2)设置一种格式,使地址字段至少应具有单位编号和街道编号。因此,如果地址上没有数字,则该地址无效。即使在这种情况下,哇街1212也会给出意想不到的结果。

Q1)在这些情况下是否要遵循一般规则?就像何时警告用户输入的无效位置?

Q2)有没有一种方法可以改善地理编码查询?

来自Google文档:

  

address-您要地理编码的街道地址,格式为   由有关国家的国家邮政局使用。   其他地址元素,例如公司名称和单位,套房或   楼层号应避免。

他们提到了如何查询有效地址,但没有提及准确性或地址验证。

我找不到其他方法来处理这种情况。

1 个答案:

答案 0 :(得分:1)

Google地理编码服务明确不是地址验证服务。地理编码是将地址转换为地理坐标的过程,可用于放置标记或定位地图。

  • 不能保证有效的邮政地址会产生任何结果。
  • 不能保证将纠正无效的邮政地址。
  • 不能保证不存在的邮寄地址将返回的结果恰好为零。

如果您对验证地址格式感兴趣,则应考虑使用其他选项。例如。类似于SmartyStreets API

我希望这会有所帮助!