Obtener país de coordenadas?
¿Cómo obtener el nombre del país en Android, si se conocen coordenadas geográficas? ¿Cómo hacerlo de la manera más sencilla?
- Asistencia de inyección de datos en GPS
- Cómo obtener la ubicación GPS de Android
- Android mejor manera de obtener la ubicación repetidamente en el fondo considerando la batería así
- Android: Obtener una posición GPS rápidamente
- Diferencia entre AsyncTask y Thread / Runnable
- Cómo quitar un LocationListener de LocationManager que se agrega dos veces en android?
- Android: el mejor método para calcular la distancia entre dos ubicaciones
- Android LocationManager.getLastKnownLocation () devuelve null
- Cómo superar la adquisición de señales GPS
- ¿Cómo registrar Geofence después de reiniciar el dispositivo?
- Obtener la ubicación actual rápida y una vez en android
- Algoritmo de trilateración multipunto en Java
- Android: detecta que el usuario abre la barra de estado
Use debajo de la función para eso.
public void getAddress(double lat, double lng) { Geocoder geocoder = new Geocoder(HomeActivity.mContext, Locale.getDefault()); try { List<Address> addresses = geocoder.getFromLocation(lat, lng, 1); Address obj = addresses.get(0); String add = obj.getAddressLine(0); GUIStatics.currentAddress = obj.getSubAdminArea() + "," + obj.getAdminArea(); GUIStatics.latitude = obj.getLatitude(); GUIStatics.longitude = obj.getLongitude(); GUIStatics.currentCity= obj.getSubAdminArea(); GUIStatics.currentState= obj.getAdminArea(); add = add + "\n" + obj.getCountryName(); add = add + "\n" + obj.getCountryCode(); add = add + "\n" + obj.getAdminArea(); add = add + "\n" + obj.getPostalCode(); add = add + "\n" + obj.getSubAdminArea(); add = add + "\n" + obj.getLocality(); add = add + "\n" + obj.getSubThoroughfare(); Log.v("IGA", "Address" + add); // Toast.makeText(this, "Address=>" + add, // Toast.LENGTH_SHORT).show(); // TennisAppActivity.showDialog(add); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show(); } }
Añadir debajo de permiso a su manifiesto
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Aqui tienes
Geocoder gcd = new Geocoder(context, Locale.getDefault()); List<Address> addresses = gcd.getFromLocation(lat, lng, 1); if (addresses.size() > 0) { String countryName=addresses.get(0).getCountryName(); }
utilizar esta
try { Geocoder geo = new Geocoder(this.getApplicationContext(), Locale.getDefault()); List<Address> addresses = geo.getFromLocation(location.getLatitude(), location.getLongitude(), 1); if (addresses.isEmpty()) { placeName.setText("Waiting for Location"); } else { if (addresses.size() > 0) { placeName.setText(addresses.get(0).getFeatureName() + ", " + addresses.get(0).getLocality() +", " + addresses.get(0).getAdminArea() + ", " + addresses.get(0).getCountryName()); } } } catch(Exception e){ Toast.makeText(this, "No Location Name Found", 600).show(); }
Utilizar esto en el archivo de manifiesto
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Cómo lo hice recientemente fue leer los datos de la URL de la API Web y analizar el JSON.
Un ejemplo de URL para el punto (40.714224, -73.961452) es:
http://maps.google.com/maps/geo?q=40.714224,-73.961452&output=json&oe=utf8&sensor=true_or_false&key=your_api_key
Que produce la siguiente salida:
{ "name": "40.714224,-73.961452", "Status": { "code": 200, "request": "geocode" }, "Placemark": [ { "id": "p1", "address": "285 Bedford Ave, Brooklyn, NY 11211, USA", "AddressDetails": { "Accuracy" : 8, "Country" : { "AdministrativeArea" : { "AdministrativeAreaName" : "NY", "SubAdministrativeArea" : { "Locality" : { "DependentLocality" : { "DependentLocalityName" : "Williamsburg", "PostalCode" : { "PostalCodeNumber" : "11211" }, "Thoroughfare" : { "ThoroughfareName" : "285 Bedford Ave" } }, "LocalityName" : "Brooklyn" }, "SubAdministrativeAreaName" : "Kings" } }, "CountryName" : "USA", "CountryNameCode" : "US" } }, "ExtendedData": { "LatLonBox": { "north": 40.7154779, "south": 40.7127799, "east": -73.9600584, "west": -73.9627564 } }, "Point": { "coordinates": [ -73.9614074, 40.7141289, 0 ] } } ] }
Considero que GSON es bastante bueno para analizar JSON en Android.
Echa un vistazo al enlace
Creo que te ayudará.
Gracias.