博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PIE SDK矢量数据的读取
阅读量:5907 次
发布时间:2019-06-19

本文共 2367 字,大约阅读时间需要 7 分钟。

 

1.功能简介

    GIS将地理空间数据表示为矢量数据和栅格数据。矢量数据模型使用点、线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点、河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联。栅格数据模型使用一个格网和格网元胞(像元)代表空间要素,元胞值表示该元胞位置的空间要素属性。栅格数据模型适用于表示连续的要素,如海拔和降水量。

    

   [矢量数据模型]                                                    [栅格数据模型]

    目前PIE SDK支持多种数据格式的数据读取,下面对矢量数据格式的数据读取功能进行介绍。

2.功能实现说明

2.1. 矢量数据的读取

2.2. 实现思路及原理说明

第一步

获取要读取数据的数据集

第二步

从数据集里面读取需要读取的信息

2.3. 核心接口与方法

接口/类

方法/属性

说明

IFeatureDataset

SpatialReference

空间参考

 

 

 

 

IFeatureClass

IFeature GetFeature (System.Int64 nFID)

获取要素类的一个要素

GetFeatureCount()

得到要素数量

GetFields()

获取所有字段

GetFeatureDataset ()

获取挂载的矢量数据集

GetName()

数据名称

IFields

GetFieldIndex()

得到字段的索引值

IFeatureCursor

NextFeature

获取下一个要素

 

 

2.4. 示例代码

项目路径

百度云盘地址下/PIE示例程序/04数据操作/03矢量数据集的读取

数据路径

              百度云盘地址下/PIE示例数据/矢量数据/Shape/省级行政区.shp

视频路径

    百度云盘地址下/PIE视频教程/04数据操作/03矢量数据集的读取.avi

示例代码

1          ///  2         /// 矢量数据的读取 3         ///  4         ///  5         ///  6         private void toolStripButton_ReadShpDataInfo_Click(object sender, EventArgs e) 7         { 8             //1.获取要读取的数据 9             ILayer layer = mapControlMain.FocusMap.GetLayer(0);10             IFeatureClass featureClass = (layer as IFeatureLayer).FeatureClass;11 12             //2.要素数据集信息的读取13             string fileName = featureClass.GetName();14             long featureCount = featureClass.GetFeatureCount();15             string spatialReference = featureClass.GetFeatureDataset().SpatialReference.Name;// featureClass.SpatialReference.ExportToWkt();16             string message = string.Format("数据名称:{0};\r\n要素的数量:{1};\r\n数据空间参考:{2}", fileName, featureCount, spatialReference);17             MessageBox.Show(message, string.Format("{0}数据的信息:", fileName));18 19             //要素的信息20             IFeature feature = featureClass.GetFeature(0);21             IFields fields = featureClass.GetFields();22             int fieldIndex = fields.GetFieldIndex("NAME");23             IField field = fields.GetField(fieldIndex);24             string fieldValue = field.Name;25             string fieldInfo = "";26             while (feature != null)27             {28                 fieldInfo += fieldValue + "字段值为:\r\n" + feature.GetValue(fieldValue) + "\r\n";29                 MessageBox.Show(fieldInfo, "要素的信息");30                 feature = null;//数据量太大,示例只读取一条要素的信息31                 //feature = featureClass.GetNextFeature();32             }     33         }
View Code 

2.5. 示例截图

     

转载于:https://www.cnblogs.com/PIESat/p/10168540.html

你可能感兴趣的文章
RHEL 6.5忘记root密码处理方法
查看>>
Tomcat
查看>>
web.xml/servlet过滤器之压缩GzipFilter
查看>>
MySQL服务器/tmp目录被占满
查看>>
用xtrabackup实现mysql的主从复制快速部署【主不锁表】
查看>>
清明情
查看>>
分享Hadoop大数据年薪23W就业分享
查看>>
如何使用live writer客户端来发布CSDN的博客文章
查看>>
linux 服务器定时重启reboot
查看>>
LinuxCast 邮件服务器 视频教程笔记
查看>>
linux系统优化
查看>>
巨石应用转微服务
查看>>
问答:归档产品如何保障数据安全(上)
查看>>
6.线程同步
查看>>
HTML5坦克大战
查看>>
20120122 linux 启动流程
查看>>
音视频同步原理解析
查看>>
mac下更新自带的PHP版本到5.6或7.0
查看>>
我的新博客开通了~
查看>>
lvs-heartbeat
查看>>