/ / ¿Geocodificación ralentizando todo? - Android, google-maps, geocodificación

Geocodificación ralentizando todo? - Android, google-maps, geocodificación

Tengo el siguiente problema: Escribí una función para determinar la ubicación exacta de una calle pasada como un parámetro de cadena:

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 uso la función de esta manera, cuando el mapa estáCargado todo funciona extremadamente lento. Si comento el código de geocodificación y uso el nuevo GeoPoint (73,32), está funcionando normalmente. ¿Alguien me puede explicar por qué la geocodificación ralentiza mi aplicación? ¡Gracias! :)

Respuestas

2 para la respuesta № 1

La clase Geocoder requiere un servicio de back-end que no está incluido en el marco de Android principal. Los métodos de consulta de Geocoder devolverán una lista vacía si no hay servicio de back-end en la plataforma.

Usa el hilo como Handler o AsyncTask etc a llamará fondo luego cambiará la interfaz de usuario


0 para la respuesta № 2

No he usado las API de Android pero imaginoesa geocodificación llamará a un servicio web de Google de algún tipo que haga la geocodificación y devuelva el resultado. Dado que eso implica comunicaciones de red, y el método getFromLocationName () parece estar bloqueando, no es irrazonable experimentar retrasos, tal vez incluso más debido a una conexión de Internet móvil. Si llama a su método en una sucesión rápida, habría aún más espacio para el retraso.

Por supuesto, esto suponiendo que estoy en lo correcto y que la geocodificación se realiza en un servidor en algún lugar ...