首页 > 其他 > 详细

前台实现河流道路的动态切割,以ArcGIS Server为例

时间:2014-01-24 04:21:41      阅读:1183      评论:0      收藏:0      [点我收藏+]

bubuko.com,布布扣

上图是河流及其中心线,实现一定距离的河流截取。其本质是实现多边形的裁剪。

首先说明一下GIS中,地理多边形的构成:多边形是由一组闭合的曲线(正向或负向)组成。正向的曲线取其内部,负向的曲线取其外部,共同组成了多边形,如图:

bubuko.com,布布扣bubuko.com,布布扣

这里只处理简单多边形,不考虑环形以及飞地多边形。我们以河流中心线为基准,可以得到两条垂直于中心线的切割线。我们只需要将这两段线段之间的多边形节点分别提取,然后顺时针重构即可。但是提取这些点时,要分以下四种情况:

bubuko.com,布布扣  bubuko.com,布布扣 

 bubuko.com,布布扣  bubuko.com,布布扣

0<n1<p1<p2<n2:取节点n1—p1和p2—n2

0<p1<p2<n1<n2:取节点0—p1、p2—n1、n2—最后节点

0<n1<n2<p1<p2:取节点0—n1、n2—p1、p2—最后节点

p1<n1<n2<p2:取节点p1—n1和n2—p2

获取到新的节点组合后,即可形成切割后的多边形。

关于切割线或线段,我使用的是切割线,可能会与多边形相交得出2个以上的交点,但是我们只需要其中的两个,我是以距离来筛选出最近的这两个交点。最终效果如下:

bubuko.com,布布扣

前台实现河流道路的动态切割,以ArcGIS Server为例

原文:http://www.cnblogs.com/zhangyaoyunyu/p/3531472.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!