道格拉斯 - 普克算法

时间:2011-07-06 19:27:05

标签: gps

我的数据库中有一组GPS位置。 因为我想在地图上绘制它,我偶然发现了“Douglas-Peucker-Algorithm”,这将删除一条不是“必需”的线上的点......

但是我找到的地方,我只发现像素X / Y的算法 - 坐标,而不是纬度和经度......

因此我想将Lat / Long转换为二维“X / Y”视图?这是可能的,还是我觉得“太复杂”了? :)

http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm

4 个答案:

答案 0 :(得分:2)

如果你能安全地假设GPS没有移动数千公里,并且你不是太靠近北极/南极,你可以通过将纬度和经度乘以一个常数来近似以公里为单位的X / Y坐标。纬度总是与每度数相同的公里数(大约10000公里是从赤道到其中一个极点的90度)。对于经度,乘以cos(latitude)的相同数量。

从经度/纬度计算3D位置并不困难:在球坐标上查看this wikipedia article如何做到这一点。方位角/仰角是经度/纬度。

这是一个近似值,因为你采取直线距离,而不是跟随地球的表面,但对于你的应用我无法想象这是一个问题。

哦,感谢Douglas Peucker算法的链接......我将在不同的问题领域尝试一下。

答案 1 :(得分:1)

这取决于你想要的“直线”。如果您想在地图上使用直线,则必须使用正确的投影转换纬度/经度坐标(可能是Mercator projection,但是有full list on Wikipedia)。但是,如果您正在寻找表面上最直线(即与great circle重合的那条线),则不必对lat / long值应用任何变换

答案 2 :(得分:0)

前段时间我问this question,我得到的答案让我在java中为this project编写了一个实现。它位于EarthGeometry.java

答案 3 :(得分:0)