/ / Le géocodage ralentit-il tout? - Android, google-maps, géocodage

Le géocodage ralentit-il tout? - android, google-maps, géocodage

J'ai le problème suivant: J'ai écrit une fonction pour déterminer l'emplacement exact d'une rue transmise en tant que paramètre de chaîne:

private GeoPoint LocationToGeoPointParser(String address) throws IOException
{
Geocoder geoCoder = new Geocoder(this.context,Locale.ENGLISH);
List<Address> addr = null;
addr =  geoCoder.getFromLocationName(address, 1);
double la = addr.get(0).getLatitude();
double lo = addr.get(0).getLongitude();

Double longitude = addr.get(0).getLongitude()*1E6;
Double latitude = addr.get(0).getLatitude()*1E6;
return new GeoPoint(latitude.intValue(),longitude.intValue());
//return new GeoPoint(73,32);
}

Si j'utilise la fonction de cette façon, lorsque la carte estchargé tout fonctionne extrêmement lent. Si je commente le code de géocodage et que j'utilise return new GeoPoint (73,32), cela fonctionne normalement. Quelqu'un peut-il m'expliquer pourquoi le géocodage ralentit mon application? Merci! :)

Réponses:

2 pour la réponse № 1

La classe Geocoder nécessite un service d’arrière-plan qui n’est pas inclus dans le cadre android principal. Les méthodes de requête Geocoder renverront une liste vide s'il n'y a pas de service backend sur la plateforme.

Utilisez le fil comme Handler ou AsyncTask etc pour appeler en arrière-plan puis changer l'interface utilisateur


0 pour la réponse № 2

Je n'ai pas utilisé les API Android, mais j'imaginece géocodage appelle un service Web Google qui effectue le géocodage et renvoie le résultat. Étant donné que cela implique des communications réseau et que la méthode getFromLocationName () semble bloquer, il n’est pas déraisonnable de subir des retards, peut-être même plus avec une connexion Internet mobile. Si vous appelez rapidement votre méthode, il y aura encore plus de temps pour le retard.

Bien sûr, cela suppose que j’ai raison et que le géocodage soit effectué sur un serveur quelque part.