1.功能简介

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

  

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

PIE支持多种矢量数据的创建,下面对矢量数据格式的数据创建功能进行介绍。

2.功能实现说明

2.1 Shape数据介绍

Shapefile是由ESRI开发后被广泛应用的数据格式,它采用文件的方式分开存储数据的控件信息和属性信息,但其不能存储拓扑关系,具有简单、快速显示的优点。一个Shape数据的文件结构如下所示:

[Shape数据文件结构]

编号

后缀

文件说明

1

.shp

基本文件,存储地理要素的几何图形信息;

2

.dbf

基本文件,存储地理要素的属性信息;

3

.shx

基本文件,存储图形要素与属性信息的索引;

4

.prj

可选文件,存储数据的空间参考信息;

5

.sbn/.sbx

可选文件,存储数据的空间索引信息(ESRI创建的空间索引);

6

.qix

可选文件,存储数据的空间索引信息(PIE创建的空间索引);

[Shape数据文件结构说明]

2.2 实现思路及原理说明

第一步

创建字段信息并添加值,创建空间参考,保存等

第二步

创建矢量要素数据集

2.3 核心接口与方法

接口/类

方法/属性

说明

DataSource.DatasetFactory

CreateFeatureDataset(…)

创建要素数据集

Carto.LayerFactory

CreateDefaultFeatureLayer(…)

创建矢量图层

Geometry.SpatialReferenceFactory

CreateSpatialReference(string strWkt)

创建空间参考

IField

Name,AliasName,DefaultValue

字段属性

IFields

AddField(IField ptrField)

添加字段

IFeature

SetValue(int nIndex, object field)

设置字段值

IFeatureClass

AddFeature(IFeature ptrFeature)

添加要素

2.4示例代码

项目路径

百度云盘地址下/PIE示例程序/04数据操作/01.矢量数据的创建

视频路径

百度云盘地址下/PIE视频教程/04数据操作/01.矢量数据的创建.avi

示例代码

      //创建矢量要素数据集
//1创建路径
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Title = "待创建的矢量要素数据集";
saveFileDialog.Filter = "ShapeFile|*.shp";
if (saveFileDialog.ShowDialog() != DialogResult.OK) return; //2设置字段
IField field1 = new Field("Name", FieldType.OFTString, , );
field1.Name = "Name";
field1.AliasName = "名称"; IField field2 = new Field("Level", FieldType.OFTInteger, , );
field2.Name = "Level";
field2.AliasName = "级别"; //3添加字段
IFields fields = new Fields();
fields.AddField(field1);
fields.AddField(field2); string path = saveFileDialog.FileName;
//4创建空间参考信息
ISpatialReference spatialReference = SpatialReferenceFactory.CreateSpatialReference((int)PIE.Geometry.GeoCSType.GeoCSType_WGS1984);
//5创建矢量要素集
IFeatureDataset newFeatureDataset = DatasetFactory.CreateFeatureDataset(path, fields, GeometryType.GeometryPoint, spatialReference, "SHP"); #region 6添加point 信息
//A POINT
IFeature feature = newFeatureDataset.CreateNewFeature();
IPoint point = new PIE.Geometry.Point();
point.PutCoords(, );
feature.Geometry = point as IGeometry; feature.FID = ;
feature.SetValue(, "A");
feature.SetValue(, ); //B POINT
IFeature feature2 =newFeatureDataset.CreateNewFeature();
IPoint point2 = new PIE.Geometry.Point();
point2.PutCoords(, );
feature2.Geometry = point2 as IGeometry; feature2.FID = ;
feature2.SetValue(, "B");
feature2.SetValue(, );
#endregion
//将要素字段信息添加进矢量数据集里面
newFeatureDataset.AddFeature(feature);
newFeatureDataset.AddFeature(feature2);
//第一种方法:
IFeatureLayer featureLayer = new FeatureLayer();
IFeatureClass fClass = new FeatureClass(newFeatureDataset);
featureLayer.FeatureClass = fClass; //第二种方法:
// IFeatureLayer featureLayer = LayerFactory.CreateDefaultFeatureLayer(newFeatureDataset);
//创建空间索引,为要素数据集创建空间索引
newFeatureDataset.CreateSpatialIndex();
//(featureLayer.FeatureClass as IFeatureDataset).CreateSpatialIndex(2);
m_mapControl.FocusMap.AddLayer(featureLayer as ILayer); m_mapControl.PartialRefresh(ViewDrawPhaseType.ViewAll);

2.5示例截图

生成的shape文件,格式如下:

PIE SDK矢量数据的创建的更多相关文章

  1. PIE SDK矢量数据空间索引的创建

    1. 功能简介 空间索引的使用便于数据的查询:所以在创建矢量数据的时候创建空间索引,下面对矢量数据如何创建空间索引进行功能介绍. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 创建矢量要素 ...

  2. PIE SDK矢量数据的修改

    1.功能简介 目前PIE SDK支持矢量数据的修改或删除,下面对矢量数据的投影转换功能进行介绍. 2.功能实现说明 2.1. 矢量数据的修改 2.2. 实现思路及原理说明 第一步 获取需要修改的矢量数 ...

  3. PIE SDK矢量数据的投影转换

    1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式 ,每一种数据都可以对投影进行转换,目前PIE SDK支持矢量和栅格数据的投影转换功能,下面对矢量数据的投影转换功能进行介绍. 2 ...

  4. PIE SDK矢量数据简单渲染

    1. 功能简介 PIE SDK对数据的符号化分为矢量数据渲染和栅格数据渲染两大类. 目前PIE SDK中针对矢量数据渲染包括简单渲染.唯一值渲染.分级渲染.自定义渲染:针对栅格数据渲染包括拉伸渲染.R ...

  5. PIE SDK矢量数据的读取

    1.功能简介 GIS将地理空间数据表示为矢量数据和栅格数据.矢量数据模型使用点.线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点.河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联.栅 ...

  6. PIE SDK栅格数据的创建

    1. 功能简介 目前在地理信息领域中数据包括矢量和栅格两种数据组织形式.每一种数据有不同的数据格式,目前PIE SDK支持多种数据格式的数据创建,下面对栅格数据格式的数据创建功能进行介绍. 2. 功能 ...

  7. PIE SDK矢量数据的查询

    1.功能简介 矢量数据查询有属性查询和空间几何查询,下面对矢量数据的属性查询和空间查询做介绍 2.功能实现说明 2.1. 矢量数据的属性和空间查询 2.2. 实现思路及原理说明 第一步 得到要查询的图 ...

  8. PIE SDK内存矢量数据的创建

    1.功能简介 GIS将地理空间数据表示为矢量数据和栅格数据.矢量数据模型使用点.线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点.河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联.栅 ...

  9. PIE SDK创建掩膜

      1.算法功能简介 图像掩膜(Mask)用选定的图像.图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程.掩膜是一种图像滤镜的模板,实用掩膜经常处理的是遥感图像.当提取道 ...

随机推荐

  1. Git学习笔记4-分支

    参考链接廖雪峰git教程:https://www.liaoxuefeng.com/wiki/896043488029600/900388704535136 1.分支创建 创建本地分支: $ git b ...

  2. django-manage.py参数

    cleanup--从数据库中删除旧数据 compilemessages--将.po文件编译为.mo以与gettext一起使用 createcachetable--为SQL缓存后端创建表 create ...

  3. linux下各文件夹的结构说明及用途介绍:Linux目录结构介绍

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...

  4. centos 下 gradle 编译打包 apk

    由于Jenkins 装在centos环境下,想实现Android程序的编译,只能通过gradle 命令去打包版本apk,以下记录了如何在centos下使用gradle 打包apk 一.安装 gradl ...

  5. JDOJ 2254 Who am I?

    JDOJ 2254: Who am I? Description 输出程序自己本身的源代码. Input 无 Output 输出程序自己本身的源代码. 我真是搞不懂了出这道题还把它归到程序语法基础题里 ...

  6. Ultimate Chicken Horse GameProject需求规格报告书

    团队名称:超级鸡马 成员: 身份 姓名 分工 组长 邱志明  主程序设计 组员 吴钧诚  界面设计 组员 李承哲  陷阱设计 组员 冯英炽  客户,参与测试和需求分析工作 组员 林裕权  素材确定 修 ...

  7. SQL Server 迁移数据库 (二)分离和附加

    分离和附加其实比导入和导出,步骤要少一些,但是数据量大的话,跨服务器拷贝数据文件可能要慢一些 1. 分离数据库 这里最好选择断开链接,断开之前要确保你记得数据库的路径,一般默认都是C:\Program ...

  8. BERT、ERNIE以及XLNet学习记录

    主要是对 BERT: Pre-training of Deep Bidirectional Transformers for Language Understandingtichu提出的BERT 清华 ...

  9. java ssh免密登录

    package com.meituan.stabletest.sshtest; import java.io.InputStream; import com.jcraft.jsch.Channel; ...

  10. GNU Wget 1.14 用法

    GNU Wget 1.14,非交互式的网络文件下载工具.用法: wget [选项]... [URL]... 长选项所必须的参数在使用短选项时也是必须的. 启动:  -V,  --version     ...