我正在开发一个活动计划应用程序,需要验证用户输入的地址。
目前,我并不担心进入错误的门/单位号码或输入不存在的单位号码。
我只想处理用户输入诸如Boardroom/Meeting room/etc之类的通用单词作为位置的情况。
问题是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号也会产生意想不到的结果。
问题1)在这些情况下,是否有一个通用规则可遵循?比如何时提醒用户输入的位置无效?
Q2)有没有改进地理代码查询的方法?
来自谷歌文档:
地址您要对其进行地理编码的街道地址,格式为
由有关国家的国家邮政局使用。
其他地址元素,如业务名称和单位、套件或
应避免楼层编号。
他们说明了如何查询一个有效的地址,但没有提到准确性或地址验证。
我找不到其他方法来处理这种情况。