2016-07-15 226 views
0

我正在研究可跟踪移动的android应用程序。我的问题是我需要在飞机上将gps坐标转换为二维坐标。将WSG84 GPS坐标转换为x y平面上的笛卡尔坐标

我现在获得的坐标是WSG84格式。我需要这些坐标,因为我需要计算一个点和一条线之间的距离,以便了解我是否距离预定义的路径太远。我所在的领域在整个地球方面并不算大,所以我认为不关心z轴是可以的。

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

回答

0

此:

我需要计算才能点与线之间的距离,以了解如果我从一个预先定义的路径

似乎越来越太远你提出的关键问题。这就是我会回答的。

从严格意义上说,从球形坐标转换到欧氏坐标是不可能的,这就是为什么人们发明UTM系统的原因之一。为你的目的使用UTM的问题是给定的纬度/经度可能在不同的地区,所以(x,y)对不会有用地关联。

假设你有三个点A,B和P,其中A &乙定义线的起点和终点,P是你想知道,那么我的建议是最好的一点是:

  • 选自P计算大圆距离(d)到B
  • 从P计算轴承B(THETA)
  • 从A计算轴承B(阿尔法)

如果点实际上非常接近对方那么你的工作的空间是局部欧氏,所以从A到B线的距离为:

d sin(alpha - theta) 

上有计算大大量的在线引用用于WGS84的Java中的圆距和方位。例如。

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

...只是众多之一。

+0

感谢@RabidMutant,我认为这个解决方案可以工作,但它取决于你的意思是“非常接近彼此”。我工作的地区几乎是罗马的所有城市 – cec91

+0

罗马很好。罗马到巴黎,不太如此。 – RabidMutant

+0

还有很多工具可以计算距离方位。一旦你写了你的代码,我建议通过与在线工具进行比较来对其进行测试。 – RabidMutant