Ответ 1
API-интерфейс Geocoder, представленный в Android Framework
Я ранее работал с Geocoding API, который существует в API Android, но он не работает на всех устройствах. Фактически, согласно моему опыту и другим опытам, многие устройства возвращают значение null при использовании API геокодирования.
По этой причине я решил использовать Reverse Geocoder, который отлично работает на всех устройствах, но требует дополнительных накладных расходов из-за HTTP-запроса.
Извлечение долготы и широты из адреса с использованием API обратного геокодирования
Чтобы избежать этой проблемы, просто использовать Reverse Geocoding API, который возвращает объект JSON.
Вы можете использовать API для поиска адреса по широте и долготе или найти широту и долготу по адресу:
Возврат:
{
"results" : [
{
"address_components" : [
{
"long_name" : "1600",
"short_name" : "1600",
"types" : [ "street_number" ]
},
{
"long_name" : "Amphitheatre Pkwy",
"short_name" : "Amphitheatre Pkwy",
"types" : [ "route" ]
},
{
"long_name" : "Mountain View",
"short_name" : "Mountain View",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Santa Clara",
"short_name" : "Santa Clara",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "California",
"short_name" : "CA",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "94043",
"short_name" : "94043",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
"geometry" : {
"location" : {
"lat" : 37.42291810,
"lng" : -122.08542120
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 37.42426708029149,
"lng" : -122.0840722197085
},
"southwest" : {
"lat" : 37.42156911970850,
"lng" : -122.0867701802915
}
}
},
"types" : [ "street_address" ]
}
],
"status" : "OK"
}
Таким образом, простой запрос на отправку HTTP-запроса в API обратного геокодирования с адресом, введенным пользователем, и последующим анализом объекта JSON для поиска необходимых данных.
В предыдущей публикации описывается, как объект JSON может быть проанализирован из URL.
Надеюсь, что это поможет.