Te recomendamos que pruebes esta solución en un ambiente controlado antes de enviarlo a producción, saludos.
Solución:
A partir de una Geocoder
objeto, puede llamar al getFromLocation(double, double, int)
método. Devolverá una lista de Address
objetos que tienen un método getLocality()
.
Geocoder gcd = new Geocoder(context, Locale.getDefault());
List addresses = gcd.getFromLocation(lat, lng, 1);
if (addresses.size() > 0)
System.out.println(addresses.get(0).getLocality());
else
// do your stuff
Estoy usando este código. También puede usar esto para obtener la ciudad y otros detalles sobre la latitud y la longitud:
public class getReverseGeoCoding
private String Address1 = "", Address2 = "", City = "", State = "", Country = "", County = "", PIN = "";
public void getAddress()
Address1 = "";
Address2 = "";
City = "";
State = "";
Country = "";
County = "";
PIN = "";
try
JSONObject jsonObj = parser_Json.getJSONfromURL("http://maps.googleapis.com/maps/api/geocode/json?latlng=" + Global.curLatitude + ","
+ Global.curLongitude + "&sensor=true&key=YOUR_API_KEY");
String Status = jsonObj.getString("status");
if (Status.equalsIgnoreCase("OK"))
JSONArray Results = jsonObj.getJSONArray("results");
JSONObject zero = Results.getJSONObject(0);
JSONArray address_components = zero.getJSONArray("address_components");
for (int i = 0; i < address_components.length(); i++) long_name.length() > 0
catch (Exception e)
e.printStackTrace();
public String getAddress1()
return Address1;
public String getAddress2()
return Address2;
public String getCity()
return City;
public String getState()
return State;
public String getCountry()
return Country;
public String getCounty()
return County;
public String getPIN()
return PIN;
Para obtener más detalles sobre cómo obtener Google Map Api key
CLASE DE ANÁLISIS JSON
public class parser_Json
public static JSONObject getJSONfromURL(String url)
// initialize
InputStream is = null;
String result = "";
JSONObject jObject = null;
// http post
try
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
catch (Exception e)
Log.e("log_tag", "Error in http connection " + e.toString());
// convert response to string
try
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
sb.append(line + "n");
is.close();
result = sb.toString();
catch (Exception e)
Log.e("log_tag", "Error converting result " + e.toString());
// try parse the string to a JSON object
try
jObject = new JSONObject(result);
catch (JSONException e)
Log.e("log_tag", "Error parsing data " + e.toString());
return jObject;
Puede obtener más información de esta pregunta: Obtenga la dirección particular usando latitud y longitud
Prueba esto
List list = geoCoder.getFromLocation(location
.getLatitude(), location.getLongitude(), 1);
if (list != null & list.size() > 0) {
Address address = list.get(0);
result = address.getLocality();
return result;
Si te gusta el proyecto, tienes la libertad de dejar una división acerca de qué le añadirías a esta noticia.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)