1. 数据介绍

信息提取和解译的过程中,经常会生成一部分中间临时矢量数据,这些数据在执行完对应操作后就失去了存在的价值,针对这种情况,PIE增加了内存矢量数据集,来协助用户完成对自定义矢量数据的读取和显示。

下面以Micaps1类数据为例介绍自定义矢量数据的构建和显示。

2. 实现思路及原理说明

第一步

构建数据的字段、空间参考等信息;

第二步

根据字段和空间参考信息创建内存矢量数据集;

第三步

在内存矢量数据集中逐条添加数据记录(包括几何图形和属性);

第四步

通过内存数据集创建矢量图层;

第五步

添加第四步中的图层到地图,并刷新;

3. 核心接口与方法

接口/类

方法

说明

IField

构造函数

构造字段

IFields

AddField ()

添加字段

DatasetFactory

CreateFeatureDataset

创建数据集

IFeatureDataset

CreateNewFeature()

创建要素

AddFeature()

添加要素

IFeature

SetValue()

属性赋值

4. 示例代码

项目名称

百度云盘地址下/PIE示例程序/03.数据加载/10.打开自定义矢量数据

数据位置

百度云盘地址下/PIE示例数据/矢量数据/Micaps/micaps1下数据

视频位置

百度云盘地址下/PIE视频教程/03.数据加载/10.打开自定义矢量数据.avi

示例代码

 方法(一)打开自定义矢量数据
//以解析Micaps1数据为例
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Micaps文件(*.000)|*.000";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
IFeatureLayer defineLayer = OpenDefineShp(openFileDialog.FileName);
if (defineLayer != null)
{
(defineLayer as ILayer).Name = "自定义矢量图层";
mapControlMain.FocusMap.AddLayer(defineLayer as ILayer);
mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
}
/// <summary>
/// 解析自定义数据,生成矢量
/// 以解析Micaps1数据为例,字段只添加站号、经度、纬度、海拔高度
/// </summary>
/// <param name="filePath">输出SHP文件路径</param>
/// <returns></returns>
private IFeatureLayer OpenDefineShp(string filePath)
{
IFeatureLayer featureLayer = null;
int count = ;//记录读取数据的行数
string[] lineValues = null;//每一行的数据值
//字段声明
IField field_id = new Field("PointID", FieldType.OFTInteger, , );
field_id.AliasName = "站号"; IField field_x = new Field("lon", FieldType.OFTInteger, , );
field_x.AliasName = "经度"; IField field_y = new Field("lat", FieldType.OFTInteger, , );
field_y.AliasName = "纬度"; IField field_h = new Field("height", FieldType.OFTInteger, , );
field_h.AliasName = "海拔高度"; IFields fields = new Fields();
fields.AddField(field_id);
fields.AddField(field_x);
fields.AddField(field_y);
fields.AddField(field_h);
//建立内存数据集
IFeatureDataset pDataset = PIE.DataSource.DatasetFactory.CreateFeatureDataset("", fields, GeometryType.GeometryPoint, null, "MEM");
//解析数据文件,写入数据集中
string[] valueLines = System.IO.File.ReadAllLines(filePath);
char[] charSeperate = { ' ' };
for (int j = ; j < valueLines.Length; j++)
{
string str = valueLines[j];
if (count == || count == )
{
count = count + ;
continue;
}
//解析字符串,生成Feature
IFeature newFeature = pDataset.CreateNewFeature();
lineValues = str.Split(charSeperate, StringSplitOptions.RemoveEmptyEntries);
//字段赋值
newFeature.SetValue(, Convert.ToInt32(lineValues[]));
newFeature.SetValue(, Convert.ToDouble(lineValues[]));
newFeature.SetValue(, Convert.ToDouble(lineValues[]));
newFeature.SetValue(, Convert.ToDouble(lineValues[])); //生成Geometry
IPoint point = new PIE.Geometry.Point();
point.PutCoords(Convert.ToDouble(lineValues[]), Convert.ToDouble(lineValues[]));
newFeature.Geometry = point as IGeometry;
pDataset.AddFeature(newFeature);
count = count + ;
(newFeature as IDisposable).Dispose();
}
featureLayer = PIE.Carto.LayerFactory.CreateDefaultFeatureLayer(pDataset);
return featureLayer;
}

5. 示例截图

PIE SDK打开自定义矢量数据的更多相关文章

  1. PIE SDK打开自定义栅格数据

    1. 数据介绍 信息提取和解译的过程中,经常会生成一部分中间临时栅格数据,这些数据在执行完对应操作后就失去了存在的价值,针对这种情况,PIE增加了内存栅格数据集,来协助用户完成对自定义栅格数据的读取和 ...

  2. PIE SDK打开矢量数据

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

  3. PIE SDK打开网络地图数据

    1. 数据介绍 网络地图数据是在线地图服务发布出来的数据,其支持数据的网络查看和传输,极大的促进了GIS的发展. 目前PIE SDK支持百度地图.谷歌地图.高德地图.天地图.Bing地图.ArcGIS ...

  4. PIE SDK矢量自定义渲染

    1. 功能简介 PIE SDK中关于矢量渲染提供了多种方案,包括简单渲染.分级渲染.唯一值渲染,这几种渲染方式具有一定的通用性,可以满足用户绝大多数的需求. 当面对复杂的业务,当前渲染方案无法满足用户 ...

  5. PIE SDK打开栅格数据

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

  6. PIE SDK打开GDB、Dwg数据

    1. 功能简介 目前不同的GIS软件平台具有自己独特支持的数据格式,如ESRI的File GeoDataBase和Personal GeoDataBase.MapInfo的mif数据.AutoCAD的 ...

  7. PIE SDK打开Micaps数据

    1. 功能简介 Micaps数据是气象信息处理和天气预报制作中的一种气象数据格式.其包含多种气象信息产品(地面常规气象观测数据产品.高空常规气象观测数据产品等),目前Micaps数据被Micaps软件 ...

  8. PIE SDK打开HDF、NC数据

    1. 功能简介 HDF 是美国国家高级计算应用中心(National Center for Supercomputing Application)为了满足各种领域研究需求而研制的一种能高效存储和分发科 ...

  9. PIE SDK打开静止卫星数据

    1. 功能简介 静止卫星是位于地球赤道上空约3.58万km处,与地面始终保持相对静止的卫星,静止卫星的特点是覆盖区域广,具有很强的机动灵活性,能够对特定区域进行分钟级高重复观测,可快速监测灾害目标的动 ...

随机推荐

  1. Linux CentOS 防止SSH暴力破解

    一. 问题的发现 昨晚苦逼加班完后,今早上班继续干活时,SSH连接服务器发现异常的提示,仔细看了一下吓一小跳,昨晚9点钟到现在,一夜之间被人尝试连接200+,慌~~~ 1. 速度查一下log [roo ...

  2. 全球唯一标识符 System.Guid.NewGuid().ToString()

    System.Guid.NewGuid().ToString(); //ToString() 为 null 或空字符串 (""),则使用"D". 结果:8209 ...

  3. MacOS上传文件到windows ftp时链接文件不见了

    最近打包遇到了一个问题,打包完MAC的sdk包后,得到的是一个framework的文件夹,我们需要将这个framework传到ftp服务器上,另外,还要把这个文件夹下的Release文件夹里的文件替换 ...

  4. Python类的使用总结

    Python是一个面向对象的解释型语言,所以当然也有类的概念.在Python中,所有数据类型都可以视为对象,当然也可以自定义对象.自定义的对象数据类型就是面向对象中的类(Class)的概念.之前接触类 ...

  5. 201871010104-陈园园 《面向对象程序设计(java)》第十五周学习总结

    201871010104-陈园园 <面向对象程序设计(java)>第十五周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  6. Docker安装(二)

    一.前提条件 目前,CentOS 仅发行版本中的内核支持 Docker. Docker 运行在 CentOS 7 上,要求系统为64位.系统内核版本为 3.10 以上. Docker 运行在 Cent ...

  7. (day44)css样式、css布局

    目录 一.css样式 (一)文字样式 (1)文字字体font-family (2)字体大小font-size (3)字体粗细font-weight (4)字体颜色color (二)文本样式 (1)文字 ...

  8. docker--(MAC ubuntu centos)安装

    MacOS 安装 1.homebrew安装(需要mac密码) brew cask install docker 2.手动下载安装 如果需要手动下载,请点击以下链接下载 Stable 或 Edge 版本 ...

  9. cookie清除及其他操作

    JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 一:设置co ...

  10. [LeetCode] 145. Binary Tree Postorder Traversal 二叉树的后序遍历

    Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary ...