Я использую google geocoder service на Android, чтобы получить описание для моего местоположения, если предоставлена широта и долгота. до сих пор мне удалось получить lat & long-itude моего текущего места, но, похоже, проблемы с использованием геокодирования для получения имени местоположения или zipcode и т.д. ниже мой фрагмент кода:
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
try {
Geocoder myLocation = new Geocoder(this, Locale.getDefault());
List<Address> myList = myLocation.getFromLocation(lat,lng, 1);
Log.v("IGA",""+myList.size());
Address address = (Address) myList.get(0);
if (myList != null && myList.size() > 0) {
Toast.makeText(this, "country: " + myList.get(0).getCountryName(), Toast.LENGTH_LONG).show();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
myList.size() всегда возвращает 0. Я не знаю, что-то не так с моим кодом или чем-то еще.
с google, я получаю некоторые подсказки, и это то, что онлайн-документ Android говорит:
Для класса Geocoder требуется бэкэнд-сервис, который не входит в основную инфраструктуру Android. Методы запросов Geocoder возвратят пустой список, если на платформе нет бэкэнд-сервиса. Используйте метод isPresent(), чтобы определить, существует ли реализация Geocoder.
Я не знаю, что это за бэкэнд-сервис, и будучи измотанным, des wonder, чтобы задаться вопросом, будет ли какой-либо сторонний веб-сервис делать тот же трюк. Спасибо заранее!
GeoCoder работает только на устройствах, но если вы не уверены в доступности GeoCoder api, используйте google rest api как альтернативу GeoCoder Api, см. Следующую ссылку:
http://maps.google.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true
чтобы получить адрес, указав широту и долготу, он возвращает результаты в строке json, если вы хотите получить результаты в xml вместо json, используйте xml вместо json в url.