Saltar al contenido

¿Cómo obtener el nombre de la ciudad a partir de las coordenadas de latitud y longitud en Google Maps?

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *