Arcengine 开发,FeatureClass新增feature时“The Geometry has no z-value”或"The Geometry has null z-value"的解决方案

Arcengine 开发,当图层含有Z值时,新增的feature没有Z值就会 出现“The Geometry has no z-value”的错误。意思很明显,新增的geometry没有Z值。

此时按照常规想法,取出geometry的每个点,分别设置Z=0,理论可行,但实际调试过程中依然报“The Geometry has no z-value”。

可用解决方案如下:

IGeometry geometry = feature.ShapeCopy;
IZAware zAware = (IZAware)geometry;
zAware.ZAware = true;

这样转换一下,geometry就有Z属性了。zAware.ZAware是控制geometry是否有Z值的,当然也可以使用IZAware除去geometry的Z值。

故事到这里应该就结束了,可是调试时候又报错了,这时的错误是“The Geometry has null z-value”,意思也很明显,z为空,不通过....

这时再使用常规方案,取出geometry的每个点,分别设置Z=0...结果还是一样的报错。

解决方案如下:

IZ iz = (IZ)geometry;
iz.SetConstantZ(0);

运行,通过....

AE提供了很多转换接口,比我们自己写要简单和有效的很多...当然也是因为AE中有很多结构没有公开,我们的一些常规解决方案有时候不是那么有用。希望能帮到有这么方面困扰的AE coder!

时间: 2024-10-06 22:29:07

Arcengine 开发,FeatureClass新增feature时“The Geometry has no z-value”或"The Geometry has null z-value"的解决方案的相关文章

ArcEngine开发中“错误类型"****"未定义构造函数”

from:http://blog.csdn.net/mengdong_zy/article/details/8990593 问题 在ArcEngine开发的时候,在编译时,发现出现这样的错误,出错的地方在实例化一个对象的时候. 比如: ISpatialReference a = new UnknownCoordinateSystemClass(); _hookHelper = new HookHelperClass(); 等等. 解决办法 选中实例化的类所在的程序集,如UnknownCoordi

arcengine 开发经典帖 【强烈推荐仔细研读】

转自原文 arcengine 开发经典帖 使用ArcGIS Engine 开发自定义GIS应用: 第一部分:使用ArcGIS Engine 发布自定义GIS应用软件-全面了解ArcGIS Engine的产品. 第二部分:ArcEngine9.2的新特性及变化.(续)--类对比及变化.(续)--(代码转换插件).(续)--ArcEngine新命令,工具.菜单和面板 第三部分:使用 ArcGIS Engine开发应用程序(自定义或嵌入) 第四部分:开发Engine 应用程序的基本原理.(续).(续)

vs2008下如何部署arcengine开发的程序

说实话本想搞WPF+ArcEngine开发的,环境都搭建好了,突然发现貌似有很多授权的问题,唯恐部署软件后不能在其它客户端上使用,而且是项目开发,于是决定先暂时放下这个想法,待联系做研究性系统时再予以开发使用.好了,接下来我将以图解形式详细说明一下如何部署一个arcgis二次开发程序. 所需文件 首先,我先将我们所用到的文件及搭建环境要求列一下. 客户端系统环境:win xp.win7.win8 客户端系统需要安装:dotNetFx35.WindowsInstaller3.1.ArcEngine

在#AOS开发平台# 新增了【首选项】功能模块

在#AOS开发平台# 新增了[首选项]功能模块.缺省包含:我的个人资料维护.我的偏好设置.系统安全选项.自定义菜单.我的操作日志等功能,并提供了扩展点.在二次开发时候可以通过新增设置项按钮增加业务系统所需的和当前登录操作员有关的新开发的设置页面.

ArcEngine判断要素(feature)是否为multipart feature及分解(炸开)代码

转自原文 ArcEngine判断要素(feature)是否为multipart feature及分解(炸开)代码 #region 校验合法性 ArrayList pFeatureArray = null; pFeatureArray = Application.Editor.FeatureSelection(); int count=pFeatureArray.Count; if (count<1) { MessageBox.Show("最少必须选择1个要素才能进行要素分解!",

新增资产时YTD折旧与累计折旧录入错误如何处理

如新增资产时YTD折旧与累计折旧录入错误,但资产已入账处理,如何处理: 1.需要先报废资产: 2.需要在总账手工帐冲销未冲抵凭证: 3.重新增加资产,录入资产时YTD折旧及累计折旧金额应为0.

iOS开发UITableViewCell的选中时的颜色设置

1.系统默认的颜色设置 //无色 cell.selectionStyle = UITableViewCellSelectionStyleNone; //蓝色 cell.selectionStyle = UITableViewCellSelectionStyleBlue; //灰色 cell.selectionStyle = UITableViewCellSelectionStyleGray; 2.自定义颜色和背景设置 改变UITableViewCell选中时背景色: UIColor *color

FeatureLayer,FeatureDataset,FeatureClass,Feature的概念

刚学AE,其中很多概念都模糊不清.经过一段时间的摸索总结,对FeatureLayer,FeatureDataset,FeatureClass,Feature几个概念有了一点认识.拿出来分享一下,有错误的请多多指教,共同进步. FeatureLayer: 要素图层,承载要素数据.几个重要的接口如下:IFeatureLayer接口,用于管理要素图层的数据源,即要素类(FeatureClass).具体察看IFeatureLayer.DataSourceType条目.                  

让你提前认识软件开发(41):编程时首先达到正确性,其次考虑效率

第3部分 软件研发工作总结 编程时首先达到正确性,其次考虑效率 在实际的软件开发项目中,经常会遇到产品开发周期很短的问题.也就是说,开发人员需要在"质量"和"速度"之间做出权衡.具体到程序代码,就存在到底是先考虑实现功能(即保证程序的正确性),还是要一步到位把事情做好(即保证程序的正确性的同时,兼顾其效率)? 在网上,有关这方面的讨论也非常的多.微软亚洲研究院研究员刘未鹏老师写过一篇文章<编程的首要原则>(http://mindhacks.cn/2009