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. windows及linux环境下修改pip的默认镜像源的方法

    1. 在windows环境下 临时修改 使用清华大学的源安装numpy包. pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple ...

  2. linux下网卡捆绑

    七种bond模式说明:mod=0:(balance-rr) Round-robin policy(平衡抡循环策略)mod=1:(active-backup) Active-backup policy( ...

  3. Shel脚本-初步入门之《03》

    Shel脚本-初步入门-Shell 脚本在 Linux 运维工作中的地位 3.Shell 脚本在 Linux 运维工作中的地位 Shell 脚本语言很适合用于处理纯文本类型的数据,而 Linux 系统 ...

  4. 防止ARP欺骗

    前言: 曾经因为宿舍里面的同学经常熬夜打游戏,好言相劝不管用,无奈之下使用arp欺骗他们的主机,使之晚上11点之后游戏延迟,掉线,最后,一到11点同学们就都上床睡觉了. 防止arp欺骗的三种思路: 在 ...

  5. zz京东电商推荐系统实践

    挺实在 今天为大家分享下京东电商推荐系统实践方面的经验,主要包括: 简介 排序模块 实时更新 召回和首轮排序 实验平台 简介 说到推荐系统,最经典的就是协同过滤,上图是一个协同过滤的例子.协同过滤主要 ...

  6. NOIP 2004 合唱队形

    洛谷 P1091 合唱队形 https://www.luogu.org/problemnew/show/P1091 JDOJ 1271: [NOIP2004]合唱队形 T3 https://neooj ...

  7. 论文阅读笔记六十三:DeNet: Scalable Real-time Object Detection with Directed Sparse Sampling(CVPR2017)

    论文原址:https://arxiv.org/abs/1703.10295 github:https://github.com/lachlants/denet 摘要 本文重新定义了目标检测,将其定义为 ...

  8. hdu1495-非常可乐-(倒水问题bfs)

    http://acm.hdu.edu.cn/showproblem.php?pid=1495 题解: 1.最少次数?江湖套路,bfs.2.怎么倒?从一个杯子倒到另一个杯子.3.倒多少?因为没有刻度,所 ...

  9. 【redis】安装redis

    1.什么是redis? 非关系型数据库 2.为什么用redis? 非关系型数据库的一些优势,我这里用于缓存 3.怎么用redis? 安装,配置,用 4.怎么安装? 下载:http://download ...

  10. c++基础第一篇

    前言:我是从c和c++对比的角度来讲解c++的基础知识. (1)c++格式如下: #include <iostream> //标准输入输出头文件 using namespace std; ...