Ver Mensaje Individual
  #5  
Viejo 25/04/13, 13:28:50
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
EDITO: Perdón, acabo de volver a releer tu pregunta y esta función hace justo lo contrario. Ahora después te pongo un código que hace justo lo que quieres, que también lo tengo hecho en mi App.

Código:
	        Geocoder geocoder = new Geocoder(mContext);
	        double latitude = latlng.latitude;
	        double longitude = latlng.longitude;
	        List<Address> addresses = null;
	        String addressText="";
	        try {
	            addresses = geocoder.getFromLocation(latitude, longitude,1);

	        if(addresses != null && addresses.size() > 0 ){
	            Address address = addresses.get(0);
	            addressText = String.format("%s, %s, %s",
	                    address.getMaxAddressLineIndex() > 0 ? address.getAddressLine(0) : "",
	                            address.getLocality(),
	                            address.getCountryName());
	            }
	        }
	        catch (IOException e) {
	            e.printStackTrace();
	        }
	        return addressText;
Como estás usando API V2 el punto que va a hacer el GeoCoding es un punto LatLng, te viene al pelo. Recuerda usar la función fuera del UI Thread o no te funcionará en Android 4.0+

EDITO 2: Este si es el código que hace lo que quieres

Código:
            Geocoder geocoder = new Geocoder(mContext);
            List<Address> addresses = null;
 
            try {
                addresses = geocoder.getFromLocationName(locationName[0], 3);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return addresses;
Al igual que el anterior necesitas que se ejecute fuera del UI Thread, te devolverá un Array de como máximo 3 direcciones aproximadas (lo puedes aumentar o disminuir). Para convertir cada una de las direcciones en un punto LatLng se hace así:

Código:
            for(int i=0;i<addresses.size();i++){
 
                Address address = (Address) addresses.get(i);
 
                LatLng latLng = new LatLng(address.getLatitude(), address.getLongitude());
            }

Última edición por kriogeN Día 25/04/13 a las 13:35:21.
Responder Con Cita