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. 《高性能 Go 代码工坊》中译

    深入研究 Go 应用性能提升的英语系列文章,这里是中译 https://www.yuque.com/ksco/uiondt

  2. tornado中的options常用姿势

    tornado是facebook开源的非阻塞web容器,类似java的netty,tornado.options是负责解析tornado容器的全局参数的,同时也能够解析命令行传递的参数和从配置文件中解 ...

  3. Python从零开始——循环语句

    一:Python循环语句知识概览 二:while循环 三:for遍历 四:循环控制

  4. ppm

    PPM图像格式是由Jef Poskanzer 在1991年所创造的. PPM(Portable Pixmap Format)还有两位兄长,大哥名叫「PBM」,二哥人称「PGM」,他们三兄弟各有所长,下 ...

  5. html5 localStorage讲解

    早期的web中使用cookies在客户端保存诸如用户名等简单的信息,但是,在使用cookies存储永久数据存在以下问题. 1.cookies的大小限制在4kB,不适合大量的数据存储. 2.浏览器还限制 ...

  6. E04 【买衣服】Do you have this T-shirt in red?

    核心句型 Do you have this T-shirt in red? 这样的T恤衫,你们有红色的吗? 场景对话: A:Excuse me,do you have this T-shirt in ...

  7. DNS解析过程--笔试答题版

    在运维笔试的时候,回答DNS解析的过程,不能写一大堆,一是不美观,二是浪费时间,应该怎么写呢?我觉得这样写比较好. 1.客户端:chche----hosts 2.DNS服务器:cache---递归-- ...

  8. 201871010101-陈来弟《面向对象程序设计(Java)》第十二周学习总结

    201871010101-陈来弟<面向对象程序设计(Java)>第十二周学习总结 实验十   集合与GUI初步 实验时间 2019-11-14 第一部分   理论部分 1.(1) 用户界面 ...

  9. SQL-on-Hadoop 技术

    SQL-on-Hadoop 技术 备注 Apache Hive Cloudera Impala Facebook Presto Apache Drill Spark SQL Apache Phoeni ...

  10. 实验1 C语言开发环境和数据类型、运算符、表达式

    #include <stdio.h> int main () { int x; printf("输入一个整数:\n"); scanf("%d",&a ...