2012-06-12 76 views
0

看看這個:Android的 - 獲取座標出來的GeoPoint-對象的

MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this, mapView); 


    myLocationOverlay.enableMyLocation(); 
    myLocationOverlay.enableCompass(); 
    GeoPoint myGeoPoint = myLocationOverlay.getMyLocation(); 

這工作正常。但我需要將座標保存在一個變量中。所以我試過這個:

myLocationLon = (double) myGeoPoint.getLongitudeE6(); 

當我運行的應用程序,這最後一行使它崩潰。你能告訴我爲什麼這不起作用嗎?謝謝

回答

0

GeoPoint.getLongitudeE6()GeoPoint.getLatitudeE6()都返回微小角度(基本上度數* 1E6)。

所以你需要微度轉換爲度簡單地寫功能:

public double microDegreesToDegrees(int microDegrees) { 
    return microDegrees/1E6; 
} 

然後

myLocationLon = microDegreesToDegrees(myGeoPoint.getLongitudeE6()); 
+0

THX,但是這似乎並沒有工作。當我嘗試啓動應用程序時,最後一行會導致崩潰。 – user1451207

+0

發佈你的logcat,肯定會有助於解決問題。 –

+0

我認爲問題在於,當我調用函數時,經度的值還不存在。這裏有一個屏幕:http://www1.xup.in/exec/ximg.php?fid=35589012 – user1451207