zoukankan
html css js c++ java
如何调用ITopologicalOperator.Union方法成功地merge polygon
为什么题目要加个“成功地”,因为
ITopologicalOperator
的方法是bug非常多的,在90%的情况下能够按照你预想的工作,但是在10%的情况下,既不报错也不工作。这个merge的操作,成功地折磨了我两天。终于找到了解决的方法。
ICursor pCursor;
featureSelect.SelectionSet.Search(
null
,
false
,
out
pCursor);
IFeatureCursor pFeatureCursor
=
pCursor
as
IFeatureCursor;
IFeature pFeatureFirst
=
pFeatureCursor.NextFeature();
//
开始一个编辑操作,以能够撤销
m_EditWorkspace.StartEditOperation();
IGeometry pGeometryFirst
=
pFeatureFirst.Shape;
ITopologicalOperator2 topo_oper
=
(ITopologicalOperator2)pGeometryFirst;
//
ITopologicalOperator的操作是bug很多的,先强制的检查下面三个步骤,再进行操作
//
成功的可能性大一些
topo_oper.IsKnownSimple_2
=
false
;
topo_oper.Simplify();
pGeometryFirst.SnapToSpatialReference();
//
这是准备合并的图斑使用的
ITopologicalOperator2 topo_oper2;
IGeometry pGeometryNext;
IFeature pFeatureNext
=
pFeatureCursor.NextFeature();
while
(pFeatureNext
!=
null
)
{
pGeometryNext
=
pFeatureNext.ShapeCopy;
//
与上面的同理
topo_oper2
=
pGeometryNext
as
ITopologicalOperator2;
topo_oper2.IsKnownSimple_2
=
false
;
topo_oper2.Simplify();
pGeometryNext.SnapToSpatialReference();
//
这才是合并图斑的关键
pGeometryFirst
=
topo_oper.Union(pGeometryNext);
pFeatureNext.Delete();
pFeatureNext
=
pFeatureCursor.NextFeature();
}
topo_oper.IsKnownSimple_2
=
false
;
topo_oper.Simplify();
pFeatureFirst.Shape
=
pGeometryFirst;
pFeatureFirst.Store();
m_EditWorkspace.StopEditOperation();
查看全文
相关阅读:
Lucene.Net
关于数据库优化问题总结
网页幻灯片效果
ASP.NET邮件发送
【收藏】悟透JavaScript(李战)
JS之显示、隐藏控件方法
初学自定义验证码
js之判断浏览器类型及版本号
js清空上传控件的值
vs2008学习之路
原文地址:https://www.cnblogs.com/renji/p/978029.html
最新文章
开启关闭Citrix磁盘映射的UNC路径方式
Citrix的ICA Client的其它安装方式
如何使用域组策略(AD GPO)分发软件安装以及卸载[1.31.2013更新]
npm ERR! 报错enoent Error while executing: npm ERR! enoent undefined lsremote h t ssh://git@github.com/soheelee7/Squire.git npm ERR! enoent
Docker安装和常用配置【Linux】
git常用操作
Git报错解决:OpenSSL SSL_read: Connection was reset, errno 10054 错误解决
MySQL5.7 配置
SpringBoot集成Swagger3.0使用
SpringBoot集成Swagger2.x版本
热门文章
PostgreSQL学习手册(函数和操作符<一>)
PostgreSQL学习手册(常用数据类型)
PostgreSQL学习手册(索引)
PostgreSQL学习手册(函数和操作符<二>)
PostgreSQL学习手册(函数和操作符<三>)
PostgreSQL学习手册(模式Schema)
PostgreSQL学习手册(数据表)
PostgreSQL学习手册(事物隔离)
PostgreSQL学习手册(表的继承和分区)
PostgreSQL学习手册(性能提升技巧)
Copyright © 2011-2022 走看看