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



我正在使用事件计划者应用程序,我需要在其中验证用户输入的地址。

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

我只想处理用户输入常规单词(例如董事会/会议室/等)的情况。

问题是Geocode API无法提供提高准确性的任何东西。

以下API:

将地址键入为"无位置"

但是此查询给出结果

{
"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)设置一种格式,地址字段应至少具有单位号和街道号。因此,如果地址上没有数字,则它不是有效的位置。即使在这种情况下,WOW街1212号也可能给出意外的结果。

Q1)在这些情况下是否有一般规则可以遵循?就像什么时候警告用户有关他输入的无效位置?

Q2)有没有办法改进地理位置查询?

来自Google文档:

地址 - 您要Geocode的街道地址,格式 由有关国家的国家邮政局使用。 其他地址元素,例如企业名称和单位,套件或 应避免地板号。

他们说明了如何查询有效地址,但没有提及准确性或地址验证的任何内容。

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

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

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

如果您对验证地址格式验证感兴趣,则应研究其他选项。例如。诸如Smartystreets API之类的东西。

我希望这会有所帮助!