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();
查看全文
相关阅读:
MFC 参考资料(转)
.net core 下运行 supersocket
C# 发送 get 请求
aardio写的16进制解析库
Tomcat部署springboot项目
debian10 arm64架构下安装mysql或者mariadb
javascript进行hex、base64、bytes[]、string的互转
css蒙层
js识别手机型号做业务判断
transform方法适配页面大小
原文地址:https://www.cnblogs.com/renji/p/978029.html
最新文章
vue 路由分发式微前端项目部署
多行文本省略
vue 2.0 中使用 css 变量
拉取远程所有分支
mac 隐藏文件
Ubuntu 18.04 安装配置LAMP
ssh静态代理模式讲解与使用
shell脚本加密方式
shell脚本创建身份证号
60天shell脚本计划-12/12-渐入佳境
热门文章
60天shell脚本计划-11/12-渐入佳境
60天shell脚本计划-10/12-渐入佳境
linux下确认裸盘是否使用-渐入佳境
ansible复习笔记_playbook-从零到无
ansible复习笔记_role-从零到无
vscode 安装 golang插件,报错 permission denied
滴滴出行招聘SDL资深安全工程师
【PYQT5】键盘按键触发实例
hadoop入门介绍
华为交换基本配置命令详解(更新收集)
Copyright © 2011-2022 走看看