Я пытаюсь реализовать геокодер в классе следующим образом:
Geocoder geocoder = new Geocoder(context, Locale.ENGLISH);
List<Address> list = geocoder.getFromLocation(
(double)(coord.getLat()), (double)(coord.getLon()), 1);
if (list != null && list.size()>0 ) {
Address address=list.get(0);
String result = address.getAddressLine(0) + ", " + address.getLocality();
}
Широта и долгота, которые я передаю getLocationFrom (), являются целыми числами в этой форме:
2365818 48930308 в getFromLocation () Я приведу его к удвоению.
В любом случае мое приложение блокирует эту строку:
List<Address> list = geocoder.getFromLocation(
(double)(coord.getLat()), (double)(coord.getLon()), 1);
, выбрасывая следующее:
java.lang.IllegalArgumentException: latitude == 2365818.0
at android.location.Geocoder.getFromLocation(Geocoder.java:114)
at android.location.Geocoder.getFromLocation(Geocoder.java:124)
вcom.Server_1.ClientThread_special.run (ClientThread_special.java:70) в java.lang.Thread.run (Thread.java:1096)
Строка 70 в ClientThread_special означает эту строку:
List<Address> list = geocoder.getFromLocation(lat, lon,1);