我想了解this代码。
我的理解是代码尝试根据容差优化几何体。基本上它检查两点之间的距离是否小于公差,并相应地保留/删除点。
我有一个查询。点数为lat-long格式。代码只是计算欧几里德距离的平方(我们都知道的简单平方公式)。这是一种错误的方法,因为基于纬度的距离与欧氏距离不同?
第二,宽容的单位是多少?在此test中,使用公差值5。这个值如何适合这里?
答案 0 :(得分:1)
我的理解是代码尝试根据容差优化几何体。基本上它检查两点之间的距离是否小于公差,并且保留/删除点数。
是的,这是第一步,在第二步中它试图找到(基本上)在线的连续线并合并它们。
我有一个查询。点数为lat-long格式。代码只是计算欧几里德距离的平方(我们都知道的简单平方公式)。这是一种错误的方法,因为基于纬度的距离与欧氏距离不同?
(c) 2017, Vladimir Agafonkin
Simplify.js, a high-performance JS polyline simplification library
该代码并不适用于lat-lng坐标。虽然它们看起来像2d坐标,但它们代表3d空间中的点;我没有看到代码是为此制作的。
另一方面,将其重写为3d空间不应该太复杂。而你所要做的就是将你的lat-lng点转换为3d-coordiantes
第二,宽容的单位是多少?在测试中,使用公差值5。这个值如何适合这里?
像素,英里,并不重要。与您传递的点数相同的单位。