我正在使用活动计划程序应用程序,需要验证用户输入的地址。
目前,我不担心输入错误的门号/单元号或输入不存在的单元号。
我只想处理用户输入诸如会议室/会议室/等通用词作为位置的情况。
问题是地址解析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-您要地理编码的街道地址,格式为 由有关国家的国家邮政局使用。 其他地址元素,例如公司名称和单位,套房或 楼层号应避免。
他们提到了如何查询有效地址,但没有提及准确性或地址验证。
我找不到其他方法来处理这种情况。
答案 0 :(得分:1)
Google地理编码服务明确不是地址验证服务。地理编码是将地址转换为地理坐标的过程,可用于放置标记或定位地图。
如果您对验证地址格式感兴趣,则应考虑使用其他选项。例如。类似于SmartyStreets API。
我希望这会有所帮助!