『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

ArcGIS二次开发-如何将Polygon/PolyCurve一般化(Generalize)

ArcGIS二次开发-如何将Polygon/PolyCurve一般化(Generalize)
本例要实现的功能是使用道格拉斯-普克(Douglas-Poiker)算法对Polyline或Polygon做抽稀运算。

       所谓道格拉斯-普克抽稀算法,是用来对大量冗余的图形数据点进行压缩以提取必要的数据点。该算法实现抽稀的过程是:先将一条曲线首尾点虚连一条直线,求其余各点到该直线的距离,取其最大者与规定的临界值相比较,若小于临界值,则将直线两端间各点全部舍去,否则将离该直线距离最大的点保留,并将原线条分成两部分,对每部分线条再实施该抽稀过程,直到结束。抽稀结果点数随选取限差临界值的增大而减少,应用时应根据精度来选取限差临界值,以获得最好的效果。下面是该抽稀算法的过程示意图。

 

      本例中使用接口 IPolycurve2 的方法 Generalize(maxAllowableOffset )来实现 Polygon 或 Polyline 的抽稀运算,其中的参数 maxAllowableOffset,就是拉斯-普克抽稀算法中的限差临界值。 

      京ICP备2025132830号-1 京公网安备 号