【问题标题】:Polyline simplification折线简化
【发布时间】:2018-09-17 20:40:24
【问题描述】:

我正在尝试理解this 代码。

我的理解是,代码会尝试根据公差来优化几何。基本上它检查两点之间的距离是否小于公差,并相应地保留/删除这些点。

不过我有一个问题。点是经纬度格式。该代码只是计算欧几里得距离的平方(我们都知道的简单平方公式)。这不是一种错误的方法,因为基于纬度的距离与欧几里得距离不同吗?

第二,公差的单位是什么?在这个test 中,使用了公差值 5。这个值如何适应这里?

【问题讨论】:

    标签: javascript gis polyline


    【解决方案1】:

    我的理解是,代码会尝试根据公差来优化几何。基本上它检查两点之间的距离是否小于公差,并根据需要保留/删除点。

    是的,这是第一步,在第二步中,它会尝试找到(基本上)对齐的连续行并将它们合并。

    不过我有一个问题。点采用经纬度格式。代码只是计算欧几里得距离的平方(我们都知道的简单平方公式)。这不是一种错误的方法,因为基于经纬度的距离与欧几里得距离不同吗?

    (c) 2017, Vladimir Agafonkin
    Simplify.js, a high-performance JS polyline simplification library
    

    该代码并不声称适用于 lat-lng 坐标。虽然它们看起来像 2d 坐标,但它们代表 3d 空间中的点;我没有看到代码是为此而编写的。

    另一方面,将其重写为 3d 空间应该不会太复杂。然后您所要做的就是将您的 lat-lng 点转换为 3d-coordiantes

    第二,公差的单位是什么?在测试中,使用公差值 5。这个值如何适应这里?

    像素,英里,没关系。与您通过的点相同的单位。

    【讨论】:

      猜你喜欢
      • 2020-08-17
      • 1970-01-01
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 2019-01-19
      • 1970-01-01
      相关资源
      最近更新 更多