android - segundo - ubicacion en tiempo real
Obtener la dirección de ubicación actual para la aplicación de Android (3)
Como usted sabe, para obtener la dirección de ubicación puede utilizar Google GeoCoder
Además, para obtener direcciones de ubicación al proporcionar latitud y longitud, puede usar esta API. Es confiable y más rápido que Google Geocoder. Aquí adjunto el enlace y un pequeño ejemplo ...
API url -
puede concatenar valores de latitud y longitud junto al signo igual en la url.
ejemplo
lat = 6.123456
lng = 79.123456
Url cadena =
" https://maps.googleapis.com/maps/api/geocode/json?latlng=lat+ ", "+ lng";
esto devolverá un buen jsonObject y puede jugar con él, solo intente esto. Actualmente estoy usando esta API para mis servicios de ubicación y es más rápido que la API de geoCoder de google. .
No necesito mostrar un mapa. Sin embargo, necesito usar la red gps / 3g para ubicar mi posición actual DIRECCIÓN (no larga y larga), luego se agregará a una respuesta automática de sms para informar a una persona que actualmente no puedo responder. Mi ubicación actual. Tengo las cosas de sms funcionando, solo necesito descubrir un método para acceder a los gps y obtener una dirección. He visto código de ejemplo para lat / long. ¿Quizás necesito convertir lat / long en una dirección dentro de la API de Google Maps? No estoy seguro de cómo hacerlo. Cualquier consejo / fragmentos de código / tutoriales similares son bienvenidos! Gracias. :)
Hay dos pasos para esto:
Obtenga la ubicación actual: latitud y longitud, usando el GPS, la red, la última ubicación conocida, etc. La documentación de la ubicación de Android incluye un código de muestra.
Use la clase Geocoder de Android para solicitar una búsqueda para convertir el lat / long en una dirección (desde donde puede extraer fácilmente la ciudad, el país, la calle, etc.). Específicamente, necesitas usar el método getFromLocation ()
Nota:
- El método getFromLocation () devuelve un SET de coincidencias. En algunos casos, puede mostrarle al usuario un conjunto (por ejemplo, 5) y dejar que elija el mejor, o simplemente puede usar el primero, suponiendo que sea el mejor.
- Recuerda que ambas llamadas pueden llevar tiempo. El GPS / red puede tardar un tiempo en proporcionar una ubicación. Del mismo modo, la llamada a getFromLocation () puede llevar tiempo, ya que pasa por la red a la API de Google Maps. Por lo tanto, es fundamental que utilice un manejo extenso de errores para los diversos escenarios Y que ambas llamadas se muevan a un hilo separado para que no bloquee la interfaz de usuario de la aplicación (consulte AsyncTask)
- El backend de la clase Geocoder solo está presente en dispositivos aprobados por Google. Entonces, la búsqueda básicamente fallará en cualquier dispositivo que no tenga GMail / Market / Maps.
La respuesta está aquí: http://developer.android.com/reference/android/location/Geocoder.html
getFromLocation(double latitude, double longitude, int maxResults)
crear el objeto Geocoder y llamar a getFromLocation(double latitude, double longitude, int maxResults)
Geocoder gCoder = new Geocoder(myContext);
ArrayList<Address> addresses = gCoder.getFromLocation(123456789, 123456789, 1);
if (addresses != null && addresses.size() > 0) {
Toast.makeText(myContext, "country: " + addresses.get(0).getCountryName(), Toast.LENGTH_LONG).show();
}