2016-11-10 2 views
0

Ich programmiere eine Navigations-App mit OSMdroid.Abrufen von Längen- und Breitengrad vom GpsMyLocationProvider (OSMdroid)

Wie extrahiere ich Längen- und Breitengrad vom GpsMyLocationProvider in einen Geopoint, damit ich die Karte darauf zentrieren kann?

this.mLocationOverlay = new MyLocationNewOverlay(new GpsMyLocationProvider(this),map); this.mLocationOverlay.enableMyLocation();

Ich versuchte dies. Aber es macht die App Absturz, sobald ich die Taste für diese Methode drücken: mapController.setCenter((IGeoPoint) this.mLocationOverlay);

+0

Was ist der Fehler, den Sie bekommen, wenn die App abstürzt? Ist mapController null? –

+0

@jimmycarr Wenn ich debugge, in der letzten Zeile ist der Map Controller "MapController @ 4177" – Glave

+0

Siehst du einen Fehler in der Konsole? Welche Art von Ausnahme erhalten Sie? –

Antwort

0

Es sieht aus wie Sie MyLocationNewOverlay auf eine IGeoPoint werfen aber nicht implementiert die Schnittstelle IGeoPoint, so dass Sie werden immer eine ClassCastException. Stellen Sie sicher, dass Sie eine gültige IGeoPoint an setCenter() übergeben.

+0

Okay, also zuerst muss ich einen richtigen Geopoint mit 'GeoPoint myLocation = new erstellen GeoPoint (Länge, Breite) '? Das Problem ist, dass ich keine Ahnung habe, wie man den Längen- und Breitengrad vom GpsMyLocationProvider bekommt. – Glave

+0

Sie können '.getLastKnownLocation(). GetLatitude()' auf dem Standortanbieter anrufen –

+0

Android Studio sagt mir: Nicht statische Methode "getLastKnowLocation()" kann nicht aus einem statischen Kontext verwiesen werden. Tut mir leid, ich bin neu in Java. – Glave

Verwandte Themen