将GeoPoint转换为位置

22

我知道这是一个非常初级的问题——但在Android平台上将GeoPoint转换为Location,最好的方法是什么。

1个回答

55
double latitude = geoPoint.getLatitudeE6() / 1E6;
double longitude = geoPoint.getLongitudeE6() / 1E6;

location.setLatitude(latitude);
location.setLongitude(longitude);

5
太糟糕了,居然没有更简单的方法来完成它。 - hwrdprkns
11
我真希望那是讽刺的话。 - stealthcopter
2
这真的正确吗?因为它不会设置高度? — @hwrdprkns:除以1E6将为您节省更多字符。 — @stealthcopter:不是这样的。 Location 明显缺少两个浮点数的构造函数(Location 甚至没有默认构造函数 - 您需要填写一个无用的提供程序)。 实际上,我会像 DateString 一样使 Location 成为不可变的。 - Martin
+1 这节省了我一些时间来计算坐标。谢谢! - pkk
18
小心,代码中有一个讨厌的错误。至少我是这么认为的,如果我错了请纠正我。必须使用float latitude = geoPoint.getLatitudeE6()/1000000F(F非常重要,否则由于除以INT而导致值被舍去,与原始点相差甚远)。 - Christian Ruppert
+1 @Christian,我刚刚看到纬度是51.2,觉得不对。 - scottyab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接