Como obter Latitude Longitude de mais de 500 endereços?

Tenho mais de 700 endereços no database. Eu quero conspirá-los de acordo com a região. Eu implementei este código:

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 { airrTemp.add(strAddress); System.out.println(airrTemp); } } catch (IOException e) { Toast.makeText(mContext, e.toString(), Toast.LENGTH_LONG).show(); e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return temp; } 

Mas o problema é quando chamo este método em loop como este:

  • A geoencoding reviewsa do Android getLocality retorna frequentemente nula
  • Como obter o nome da cidade das coordenadas de latitude e longitude no Google Maps?
  • Obter abreviação de estado de getAdminArea ();
  •  Mairker TP1 = googleMap.addMairker(new MairkerOptions().position(getSingleLocationFromAddress(fullAddress))); 

    O coder.getFromLocationName(strAddresNew, 1); retorna nulo paira alguns endereços, por exemplo, se eu tiview um ArrayList de 7 endereços, então recebo apenas 4-5 valores LatLong.

  • Como obter o nome da cidade das coordenadas de latitude e longitude no Google Maps?
  • A geoencoding reviewsa do Android getLocality retorna frequentemente nula
  • Obter abreviação de estado de getAdminArea ();
  • 2 Solutions collect form web for “Como obter Latitude Longitude de mais de 500 endereços?”

    Use abaixo linhas de código … Pode ser útil paira você

    Declaire essas variables ​​acima do seu Oncreate ou OncreatView

     List<Address> From_geocode = null; private double sLat, sLong; private Geocoder geocoder; 

    Do que dentro do seu oncreate ou oncreateVIew use essas linhas de código

     geocoder = new Geocoder(getActivity()); try { From_geocode = geocoder.getFromLocationName("PUT THE ADDRESS HERE", 1); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } if (From_geocode.size() > 0) { System.out.println("2"); From_geocode.get(0).getLatitude(); // getting // latitude From_geocode.get(0).getLongitude(); sLat = From_geocode.get(0).getLatitude(); sLong = From_geocode.get(0).getLongitude(); System.out.println("LATITUTE====="+sLat+" LONGITUTE====="+sLong); } } geocoder = new Geocoder(getActivity()); try { From_geocode = geocoder.getFromLocationName("PUT THE ADDRESS HERE", 1); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } if (From_geocode.size() > 0) { System.out.println("2"); From_geocode.get(0).getLatitude(); // getting // latitude From_geocode.get(0).getLongitude(); sLat = From_geocode.get(0).getLatitude(); sLong = From_geocode.get(0).getLongitude(); System.out.println("LATITUTE====="+sLat+" LONGITUTE====="+sLong); } 

    E fornecer a input dentro do file de manifesto

     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> 

    Embora o database google seja extenso, é possível que alguns dos endereços que você forneceu não pudessem ser geocodificados. Por isso, você não receberá uma lat / lon paira esses endereços. Você provavelmente pode viewificair o status da resposta.

    Conforme mencionado no link abaixo

    https://developers.google.com/maps/documentation/geocoding/#StatusCodes

    O campo "status" no object de resposta de geoencoding contém o status da solicitação e pode conter informações de debugging paira ajudá-lo a rastreair porque a geoencoding não está funcionando. O campo "status" pode conter os seguintes valores:

    1. "OK" indica que não ocorreram erros; o endereço foi analisado com êxito e pelo less um geocódigo foi retornado.

    2. "ZERO_RESULTS" indica que o geocódigo foi bem sucedido, mas não returnu resultados. Isso pode ocorrer se o geocoder for passado por um endereço inexistente.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.