У меня более 700 адресов в базе данных. Я хочу запечатлеть их регион мудрым. У меня есть реализовать этот код:Как получить Широта долготы из более чем 500 адресов?
public LatLng getSingleLocationFromAddress(String strAddress)
{
Geocoder coder = new Geocoder(this, Locale.getDefault());
List<Address> address = null;
Address location = null;
GeoPoint p1 = null;
LatLng temp = null;//new LatLng(26.0000, 121.0000);
String strAddresNew = strAddress.replace(",", " ");
try
{
address = coder.getFromLocationName(strAddresNew, 1);
if (!address.isEmpty())
{
location = address.get(0);
location.getLatitude();
location.getLongitude();
temp = new LatLng(location.getLatitude(), location.getLongitude());
Log.d("Latlng : ", temp + "");
} else
{
arrTemp.add(strAddress);
System.out.println(arrTemp);
}
} catch (IOException e)
{
Toast.makeText(mContext, e.toString(), Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (Exception e)
{
e.printStackTrace();
}
return temp;
}
Но проблема в том, когда я называю этот метод в цикле, как это:
Marker TP1 = googleMap.addMarker(new MarkerOptions().position(getSingleLocationFromAddress(fullAddress)));
Линия coder.getFromLocationName(strAddresNew, 1);
возвращает нуль для некоторых адресов, например, если у меня есть ArrayList
из 7 адресов, тогда я получаю только 4-5 значений LatLong.
... Пожалуйста, проверьте мое решение ниже –
Хм, я вижу этот вопрос вы столкнулись в настоящее время. Вы не можете получить lat/lon, если вы не можете получить местоположение с адреса. –
Он не вернет адрес, который LatLng предоставит вам. У каждого LatLng нет имени местоположения. –