2012-05-20 15 views
7

Ich habe Koordinaten für den Längen- und Breitengrad angegeben, und ich möchte mit diesen ein Positionsobjekt erstellen. Es gibt keinen Konstruktor, der einen Standort verdoppelt, also habe ich Folgendes versucht:Ermitteln der Position von Koordinaten

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

aber es stürzt ab. Irgendeine andere Idee?

+2

l null. Wie kommt es, dass Sie die Methoden aufrufen? –

+0

Da gab es keinen Konstruktor, der zwei Doppelgänger als Argumente nimmt, und später erfuhr ich, dass das getan werden kann, indem man irgendeine Zeichenkette als Versorger gibt. – NiVeR

Antwort

14

Erstellen Sie einfach einen neuen Standort mit neuem Ort ("reverseGeocoded"); wie diese

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

Ich werde es jetzt versuchen, danke. – NiVeR

+0

Brilliant! Vielen Dank –

4

Dies stürzt ab, weil Sie Methoden für ein nicht vorhandenes Objekt nicht aufrufen können.

Ich nehme an, Sie sprechen über android.location.Location?

Dies wird normalerweise von den verschiedenen Positionierungsdiensten von Android zurückgegeben. Was willst du damit machen?

Möchten Sie den Geocode umkehren? Wie finde ich eine Adresse für diese Geo-Koordinate?

Oder möchten Sie es als "falsche" Position verwenden und es anderen Anwendungen zuführen?

Es gibt BTW zwei Konstruktoren. Einer nimmt den Namen eines Positionierungsdienstes an und der andere ist ein Kopierkonstruktor und nimmt einen vorhandenen Standort ein.

So könnte man einen Ort wie diesen erstellen:

Location l = new Location("network"); 

Aber ich glaube nicht, dass dies in etwas führen Sie haben wollen. Hier

ist ein Link zu der Dokumentation:

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

+0

Nein. Was ich mache, ist, dass ich für gegebene Orte das Google Places API verwende, um Orte in der Nähe zu erhalten und den Abstand zwischen den Orten und dem aktuellen Standort berechnen muss. Ich habe die distanceto() -Methode gesehen, akzeptiert aber das Location-Objekt. Also muss ich Location von lon und lat im JSON-Objekt von google zurückgeben. – NiVeR

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

Versuchen Sie folgendes:

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();  
} 
Verwandte Themen