2012-06-12 22 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