首页 > 其他分享 >ArcEngine操作Z值和M值

ArcEngine操作Z值和M值

时间:2023-01-02 09:57:34浏览次数:35  
标签:GeometryDef geometryDefEdit geometry geometryDef featureClass 操作 true ArcEngine

坐标信息中除了X,Y,ESRI还定义了Z值和M值。Z值是用来存储高程属性信息的,M值是用来存储其他属性信息的,如温度、浓度等。通常二维的矢量数据是不包含Z值,使用时应该格外注意,否则容易引起异常。

软件操作

新建要素类时,可选择是否包含Z值和M值。

如果数据已经包含Z值,想要去除,可以在环境设置中调整参数。

代码操作

对Z值的常见的代码操作:

(1)创建带Z值和图层:

IGeometryDef geometryDef = new GeometryDef(); 
IGeometryDefEdit geometryDefEdit = geometryDef as IGeometryDefEdit;
geometryDefEdit.GeometryType_2 = geometryType;
geometryDefEdit.HasZ_2 = true; //允许有Z值
geometryDefEdit.SpatialReference_2 = spatialReference;
fieldEdit.GeometryDef_2 = geometryDef;

(2)判断是否含Z值

IFeatureClass featureClass = this.pLayer.FeatureClass;
string shapeFieldName = featureClass.ShapeFieldName;
if (featureClass.Fields.get_Field(featureClass.FindField(shapeFieldName)).GeometryDef.HasZ)
{
    this.hasZ = true;
}

(3)开启或禁用Z值

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

(4)设置Z值

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

在处理数据时,需注意Z值是否存在,否则容易引起The Geometry has no z-value或The Geometry has null z-value等异常。

标签:GeometryDef,geometryDefEdit,geometry,geometryDef,featureClass,操作,true,ArcEngine
From: https://www.cnblogs.com/liweis/p/17019426.html

相关文章

  • Stata:变量名称 及相关操作
    变量名称基本规则:由英文字母、数字或者_组成;需以英文字母或者_作为开头,区分大小写。举例合理名称:a1,a_1,_a1注意事项:“_”一般不作为首字母(因许多内部变量由“_”加字......
  • Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
    1.MemcachedMemcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、......
  • Docker操作逻辑及搭建web
    Docker操作逻辑当我们使用pull从docker仓库中将镜像下载到本地,也就是可以通过dockerimages查看到pull到的镜像,下载后,可以通过dockerrun将镜像启动运行在容器(Contaier)中......
  • 操作系统OS笔记目录(清华大学)
    简介不得不说想自学学操作系统,清华大学慕课是个不错的选择,但难度比较大,特别是想把慕课的实验部分内容也完成的话。不过如果能把它的实验部分也完成的话,相信你会对操作系统......
  • Python之路【第八篇】:堡垒机实例以及数据库操作
    1.堡垒机前戏开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 1.1SSHClient用于连接远程服务器并执行基本命令......
  • Java 操作 JSON 数据(6)--JSON-Java 操作 JSON 数据
    JSON-Java包是一个将Java对象和JSON文件相互转换的参考实现,演示了如何将JSON文档解析为Java对象,以及如何从Java对象生成JSON文档。本文介绍下 JSON-Java的基......
  • mongodb的aggregate聚合操作详解
    ################################### 在工作中会经常遇到一些mongodb的聚合操作,特此总结下。mongo存储的可以是复杂类型,比如数组、对象等mysql不善于处理的文档型结构,并且......
  • DDL的数据库操作和表操作
    SQL分类分类全称说明DDLdatadefinitionlanguage数据定义语言,用来定义数据库对象(数据库,表,字段)DMLdatamanipulationlanguage数据操作语言,用来对数据库的数......
  • 使用python操作数据库
    实例1、创建SQLite数据库文件importsqlite3conn=sqlite3.connect('mrsoft.db')cursor=conn.cursor()cursor.execute('createtableuser(idint(10)primarykey,nameva......
  • 目录与文件操作
    目录有关目录介绍当前目录pwd或.上一级目录..绝对路径/家目录~上一次目录-相对路径操作cdpwdmkdir**rmdir或者rm-rfdir(-r是递归的意思,-f是强制性......