道克拉斯-普克轨迹抽稀算法
最近项目有这样的一个需求,国土局工作人员需要拿着我们开发地图应用app,围绕某个地块走一圈,然后将轨迹记录下来,形成一个面,填写相应的属性。我们知道在使用GPS定位的时候,获取定位点是密密麻麻的,现在我们需要将定位点数据抽稀。然后将点绘制在arcgis for android开发的地图应用上,于是网络上寻找了相关的资料,使用的是道克拉斯-普克抽稀算法,我们来看一下网络相关该算法的资料。
主要是依据了该博客
https://www.jianshu.com/p/4fd67921b743
算法的具体过程如下:
(1) 在曲线首尾两点间虚连一条直线,求出其余各点到该直线的距离,如图3(1)。
(2) 选其最大者与阈值相比較,若大于阈值,则离该直线距离最大的点保留,否则将直线两端点间各点所有舍去,如图3(2),第4点保留。
(3) 根据所保留的点,将已知曲线分成两部分处理,反复第1、2步操作,迭代操作,即仍选距离最大者与阈值比較,依次取舍,直到无点可舍去,最后得到满足给定精度限差的曲线点坐标,如图3(3)、(4)依次保留第6点、第7点,舍去其它点,即完成线的化简。
该应用中使用的是高德地图的接口,因此在计算两个点之间的距离应该是投影的距离,而我们这里使用的是直角坐标两点间的距离。我想由于轨迹两点之间的距离非常近,至于是否使用投影来计算应该对距离没有多大影响。其中实现代码基本上和该博主写的一致。细节做了修改。
转载自:https://blog.csdn.net/u010608964/article/details/84452852