我正在使用事件计划者应用程序,我需要在其中验证用户输入的地址。
目前我不担心输入错误的门/单位号或输入不存在的单位号。
我只想处理用户输入常规单词(例如董事会/会议室/等)的情况。
问题是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之类的东西。
我希望这会有所帮助!