算法的基本思路是:
对每一条曲线的首末点虚连一条直线,求所有点与直线的距离,并找出最大距离值dmax ,用dmax与限差D相比:
若dmax <D,这条曲线上的中间点全部舍去;
若dmax ≥D,保留dmax 对应的坐标点,并以该点为界,把曲线分为两部分,对这两部分重复使用该方法。
算法缺陷
对于一般路径而言,Douglas-Peucker算法是有效的,但是不难想到,当出现折返路径时,往外突出的部分很容易被压缩掉,因为偏差是以垂直距离为准的。下面的图片展示了这种情况下的压缩效果。