2012-05-20 13 views
7

que he dado las coordenadas de latitud y longitud, y quiero hacer un objeto ubicación con those.There no es un constructor que toma a los dobles para hacer un lugar, así que traté de esta manera:al obtener la ubicación de coordenadas

Location l = null; 
l.setLatitude(lat); 
l.setLongitude(lon); 

pero se cuelga. Alguna idea diferente?

+2

l es nulo. ¿Cómo es que estás llamando a los métodos? –

+0

Porque no había un constructor que tomara dos dobles como argumentos, y luego aprendí que se puede hacer dando cualquier cadena como proveedor. – NiVeR

Respuesta

14

Basta con crear una nueva ubicación con la nueva ubicación ("reverseGeocoded"); como esto

GeoPoint newCurrent = new GeoPoint(59529200, 18071400); 
     Location current = new Location("reverseGeocoded"); 
     current.setLatitude(newCurrent.getLatitudeE6()/1e6); 
     current.setLongitude(newCurrent.getLongitudeE6()/1e6); 
     current.setAccuracy(3333); 
     current.setBearing(333); 
+0

Lo intentaré ahora, gracias. – NiVeR

+0

¡Brillante! Gracias –

4

Esto se bloquea porque no puede llamar a métodos en un objeto no existente.

Supongo que está hablando de android.location.Location?

Esto generalmente es devuelto por los diversos servicios de posicionamiento de Android. ¿Qué quieres hacer con eso?

¿Quieres invertir la geocodificación? Como en encontrar una dirección para esa coordenada geo?

¿O desea utilizarlo como una posición "falsa" y alimentarlo a otras aplicaciones?

Existen por cierto dos constructores. Uno toma el nombre de un servicio de posicionamiento y el otro es un constructor de copia y toma una ubicación existente.

Por lo que podría crear una situación como ésta:

Location l = new Location("network"); 

Pero no creo que esto se traducirá en algo que desea tener.

Aquí hay un enlace a la documentación:

https://developer.android.com/reference/android/location/Location.html#Location%28java.lang.String%29

+0

No.Lo que estoy haciendo es, para una ubicación determinada, utilizar la API de Google Places para recibir lugares cercanos y necesito calcular la distancia entre los lugares y la ubicación actual. Vi el método distanceto() pero acepta el objeto Location. Entonces necesito crear la ubicación desde lon y lat devuelta en el objeto JSON desde google. – NiVeR

1
Location l = new Location("any string"); 
l.setLatitude(lat); 
l.setLongitude(lon); 
0

Prueba esto:

public double lat; 
public double lon; 

public void onLocationChanged(Location loc) 
{ 
lat=loc.getLatitude(); 
lon=loc.getLongitude(); 
Toast.makeText(getBaseContext(),"Latitude:" + lat +Longitude"+lon,Toast.LENGTH_LONG).show();  
} 
Cuestiones relacionadas