Comment obtenir Latitude Longitude de plus de 500 adresses?

J'ai plus de 700 adresses dans la base de données. Je veux les tracer en région. J'ai implémenté ce code:

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; } 

Mais le problème est quand j'appelle cette méthode en boucle comme ceci:

  • Est-ce que Android Studio possède une visionneuse hiérarchique?
  • Les BroadcastReceivers d'Android ont-ils commencé dans un nouveau fil?
  • Accès au fournisseur de contenu personnalisé à partir d'une application différente
  • L'actionbarsherlock est-elle nécessaire?
  • IllegalStateException: l'activité a été détruite - lorsque l'application essaie de montrer DialogFragment une fois de plus
  • Comment désactiver l'effondrement d'une ExpandableListView?
  •  Marker TP1 = googleMap.addMarker(new MarkerOptions().position(getSingleLocationFromAddress(fullAddress))); 

    Le coder.getFromLocationName(strAddresNew, 1); Renvoie null pour certaines adresses, par exemple si j'ai une ArrayList de 7 adresses puis je reçois seulement 4-5 valeurs LatLong.

    2 Solutions collect form web for “Comment obtenir Latitude Longitude de plus de 500 adresses?”

    Utilisez les lignes de code ci-dessous … Cela peut vous être utile

    Déclarez ces variables au dessus de vôtre Oncreate ou OncreatView

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

    Que dans le vôtre oncreate ou oncreateVIew utilise ces lignes de code

     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); } 

    Et fournir l'entrée dans le fichier manifeste

     <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" /> 

    Bien que la base de données google soit étendue, il est possible que certaines des adresses que vous avez fournies ne puissent pas être géocodées. Par conséquent, vous ne recevrez pas de lat / lon pour ces adresses. Vous pourriez probablement vérifier l'état de la réponse.

    Comme mentionné dans le lien ci-dessous

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

    Le champ "statut" dans l'objet de réponse Géocodage contient l'état de la demande et peut contenir des informations de débogage pour vous aider à repérer pourquoi le géocodage ne fonctionne pas. Le champ "statut" peut contenir les valeurs suivantes:

    1. "OK" indique qu'aucune erreur n'est survenue; L'adresse a été analysée avec succès et au moins un géocode a été renvoyé.

    2. "ZERO_RESULTS" indique que le géocode a réussi mais n'a renvoyé aucun résultat. Cela peut se produire si le géocodeur a dépassé une adresse inexistante.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.