【问题标题】:Douglas-Peucker-Algorithm道格拉斯-普克算法
【发布时间】:2014-01-28 16:29:07
【问题描述】:

我的数据库中有一组 GPS 位置。 因为我想在地图上绘制它们,所以我偶然发现了“Douglas-Peucker-Algorithm”,它会删除一条线上非“必要”的点......

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

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

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

【问题讨论】:

  • 您找到解决方案了吗?

标签: gps


【解决方案1】:

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

然而,从经度/纬度计算 3D 位置并不难:请参阅球坐标上的 this wikipedia article 如何执行此操作。方位角/仰角是经度/纬度。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-12-31
          • 1970-01-01
          • 1970-01-01
          • 2019-05-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多