首页 / 浏览问题 / 组件GIS / 问题详情
同一图层多边形裁剪
zjl
14EXP 2016年12月29日
我想实现在现有的某一面图层中增加一个面,然后将这个面与现有这一图层中原有的面进行裁剪,裁去重叠的部分,这应该怎么实现?用什么方法?

1个回答

先将图层中的面取出来,然后使用Geometrist.HasIntersection判断是否有重叠的区域,如果有则使用Geometrist.Erase擦除重复的部分,将得到的数据重新加入到原来的数据,删除原本的面。
1,742EXP 2016年12月29日

​我绘制了多边形,循环与图层中的多边形进行相交判断,与相交的多边形进行了一次erase操作之后,recordset.MoveNext(),获取到的id值为0,导致geometryTarget为空报错。

问题一:为什么erase之后recordset到下一条记录,获取到id会为0(LocalConstsFields.ID对应的就是SmID字段;

问题二:进行了Geometrist.Erase(geometrySearch,geometryTarget)操作,保存到记录集中,发现并没有进行erase,保存的多边形与原多边形一样;

请问我这两个问题出在哪?谢谢

1、报错是报参数为null,请检查两个对象的值,另外请查询看下数据集中是否包含这个ID

2、需要添加擦除后的对象,Erase方法会返回一个新对象,而不是添加原本的对象
...