Я работаю над приложением планировщика событий, где мне нужно проверить адрес, введенный пользователем.
В настоящее время меня не волнует ввод неправильного номера двери / единицы или ввода номера единицы, которого не существует.
Я хочу иметь дело только со случаями, когда пользователь вводит общиетакие слова, как 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 вау-стрит могли дать неожиданные результаты.
Q1) Есть ли общее правило, которому нужно следовать в этих ситуациях?Например, когда предупредить пользователя о неверном местоположении, которое он ввел?
Q2) Есть ли способ улучшить запрос геокодирования?
Из документации Google:
address- Уличный адрес, который вы хотите геокодировать, в формате, используемом национальной почтовой службой соответствующей страны.Следует избегать дополнительных элементов адреса, таких как фирменные наименования и номера единиц, номеров или этажей.
Они указали, как запросить действительный адрес, но ничего не упомянули о точности или проверке адреса.
Я не мог найти другой способ справиться с такими ситуациями.