2012-05-20 18 views
7

ho dato le coordinate di latitudine e longitudine, e voglio fare un oggetto posizione con those.There non è un costruttore che prende a doppie per fare una posizione, così ho provato in questo modo:il recupero della posizione da coordinate

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

ma si blocca. Qualche idea diversa?

+2

l è nullo. Come mai stai chiamando i metodi ?? –

+0

Perché non c'era un costruttore che prendesse due doppi come argomenti, e più tardi ho imparato che si può fare assegnando qualsiasi stringa come provider. – NiVeR

risposta

14

basta creare una nuova posizione con una nuova sede ("reverseGeocoded"); simili

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 proverò ora, grazie. – NiVeR

+0

Brillante! Grazie –

4

Arresta in modo anomalo perché non è possibile chiamare metodi su un oggetto inesistente.

Suppongo che tu stia parlando di android.location.Location?

Questo è di solito restituito dai vari servizi di posizionamento di Android. Cosa vuoi fare con questo?

Vuoi invertire geocodifica? Come trovare un indirizzo per quella coordinata geografica?

Oppure si desidera utilizzarlo come una posizione "falsa" e alimentarlo ad altre applicazioni?

Esistono due costruttori BTW. Uno prende il nome di un servizio di posizionamento e l'altro è un costruttore di copia e accetta una posizione esistente.

Così si potrebbe creare una posizione come questa:

Location l = new Location("network"); 

Ma io non credo che questo si tradurrà in qualcosa che si desidera avere.

Questo è il link alla documentazione:

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

+0

No. Quello che sto facendo è, per una determinata località, utilizzare l'API di Google Places per ricevere luoghi nelle vicinanze e ho bisogno di calcolare la distanza tra i luoghi e la posizione corrente. Ho visto il metodo distanceto() ma accetta l'oggetto Location. Quindi ho bisogno di creare Location da lon e lat restituiti nell'oggetto JSON da google. – NiVeR

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

Prova questo:

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();  
} 
Problemi correlati