2016-11-10 217 views
0

我正在使用OSMdroid編程導航應用程序。從GpsMyLocationProvider獲取經度和緯度(OSMdroid)

如何從GpsMyLocationProvider中提取經度和緯度到地理座標中,以便我可以將地圖居中?

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

我試過了。但它只是使應用程序崩潰,我只要一按按鈕的這種方法: mapController.setCenter((IGeoPoint) this.mLocationOverlay);

+0

當應用程序崩潰時,你得到的錯誤是什麼? mapController爲空嗎? –

+0

@jimmycarr當我調試時,在最後一行地圖控制器是「MapController @ 4177」 – Glave

+0

您是否在控制檯中看到錯誤?你得到什麼類型的例外? –

回答

0

看起來你是鑄造MyLocationNewOverlayIGeoPoint,但它不實現接口IGeoPoint,所以你會得到一個ClassCastException。確保你通過了有效的IGeoPointsetCenter()

+0

好的,所以首先我需要用'GeoPoint myLocation = new創建一個合適的Geopoint GeoPoint(經度,緯度)'?問題是,我不知道如何從GpsMyLocationProvider獲取經度和緯度。 – Glave

+0

您可以在位置提供程序上調用'.getLastKnownLocation()。getLatitude()' –

+0

Android Studio告訴我:非靜態方法「getLastKnowLocation()」不能從靜態上下文中引用。對不起,我是Java的新手。 – Glave