将WSG84 gps坐标转换为平面上的x y笛卡尔坐标

时间:2016-07-15 13:11:39

标签: android gps 2d coordinates

我正在研究可以跟踪动作的Android应用程序。我的问题是我需要将gps坐标转换为平面上的2-d坐标

我现在获得的坐标是WSG84格式。我需要那些坐标,因为我需要计算点和线之间的距离,以便了解我是否距离预定路径太远。我工作的地区相对于整个地球并不大,所以我认为不关心z轴是可以的。

我没有地图,所以我只需要在后台计算这些坐标。谢谢!

1 个答案:

答案 0 :(得分:0)

此:

  

我需要计算点和线之间的距离,以便了解我是否离预定路径太远

似乎是你提出的关键问题。这就是我要回答的问题。

严格来说,不可能从球形坐标转换为欧几里德坐标,这就是人们发明UTM系统的原因。使用UTM的问题在于给定的纬度/经度可能位于不同的区域,因此(x,y)对不会有用地相关。

假设您有三个点A,B和P,其中A& B定义你的行的开始和结束,P是你想知道的点,那么我最好的建议是:

  • 计算从P到B的大圆距离(d)
  • 计算从P到B(θ)的方位
  • 计算轴承从A到B(alpha)

如果这些点实际上彼此非常接近那么你正在使用的空间是本地欧几里德,所以从A到B的线的距离为:

d sin(alpha - theta)

有许多关于用WGS84计算大圆距离和轴承的在线参考文献。例如

http://openmap.bbn.com/svn/openmap/trunk/src/openmap/com/bbn/openmap/proj/GreatCircle.java

......只是其中之一。