PIE SDK打开自定义矢量数据

1. 数据介绍

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

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

2. 实现思路及原理说明


第一步


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


第二步


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


第三步


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


第四步


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


第五步


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

3. 核心接口与方法


接口/类


方法


说明


IField


构造函数


构造字段


IFields


AddField ()


添加字段


DatasetFactory


CreateFeatureDataset


创建数据集


IFeatureDataset


CreateNewFeature()


创建要素


AddFeature()


添加要素


IFeature


SetValue()


属性赋值

4. 示例代码


项目名称


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


项目位置


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


代码位置


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


示例代码


 1 方法(一)打开自定义矢量数据
 2 //以解析Micaps1数据为例
 3     OpenFileDialog openFileDialog = new OpenFileDialog();
 4     openFileDialog.Filter = "Micaps文件(*.000)|*.000";
 5     if (openFileDialog.ShowDialog() == DialogResult.OK)
 6     {
 7         IFeatureLayer defineLayer = OpenDefineShp(openFileDialog.FileName);
 8         if (defineLayer != null)
 9         {
10 (defineLayer as ILayer).Name = "自定义矢量图层";
11             mapControlMain.FocusMap.AddLayer(defineLayer as ILayer);
12             mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
13         }
14 }
15 /// <summary>
16 /// 解析自定义数据,生成矢量
17 /// 以解析Micaps1数据为例,字段只添加站号、经度、纬度、海拔高度
18 /// </summary>
19 /// <param name="filePath">输出SHP文件路径</param>
20 /// <returns></returns>
21   private IFeatureLayer OpenDefineShp(string filePath)
22 {
23     IFeatureLayer featureLayer = null;
24     int count = 0;//记录读取数据的行数
25 string[] lineValues = null;//每一行的数据值
26     //字段声明
27         IField field_id = new Field("PointID", FieldType.OFTInteger, 20, 4);
28         field_id.AliasName = "站号";
29
30         IField field_x = new Field("lon", FieldType.OFTInteger, 20, 4);
31         field_x.AliasName = "经度";
32
33         IField field_y = new Field("lat", FieldType.OFTInteger, 20, 4);
34         field_y.AliasName = "纬度";
35
36         IField field_h = new Field("height", FieldType.OFTInteger, 20, 4);
37         field_h.AliasName = "海拔高度";
38
39         IFields fields = new Fields();
40         fields.AddField(field_id);
41         fields.AddField(field_x);
42         fields.AddField(field_y);
43         fields.AddField(field_h);
44         //建立内存数据集
45         IFeatureDataset pDataset = PIE.DataSource.DatasetFactory.CreateFeatureDataset("", fields, GeometryType.GeometryPoint, null, "MEM");
46         //解析数据文件,写入数据集中
47         string[] valueLines = System.IO.File.ReadAllLines(filePath);
48         char[] charSeperate = { ‘ ‘ };
49         for (int j = 0; j < valueLines.Length; j++)
50         {
51             string str = valueLines[j];
52             if (count == 0 || count == 1)
53             {
54                 count = count + 1;
55                 continue;
56             }
57             //解析字符串,生成Feature
58             IFeature newFeature = pDataset.CreateNewFeature();
59             lineValues = str.Split(charSeperate, StringSplitOptions.RemoveEmptyEntries);
60             //字段赋值
61             newFeature.SetValue(0, Convert.ToInt32(lineValues[0]));
62             newFeature.SetValue(1, Convert.ToDouble(lineValues[1]));
63             newFeature.SetValue(2, Convert.ToDouble(lineValues[2]));
64             newFeature.SetValue(3, Convert.ToDouble(lineValues[3]));
65
66             //生成Geometry
67             IPoint point = new PIE.Geometry.Point();
68             point.PutCoords(Convert.ToDouble(lineValues[1]), Convert.ToDouble(lineValues[2]));
69             newFeature.Geometry = point as IGeometry;
70             pDataset.AddFeature(newFeature);
71             count = count + 1;
72       (newFeature as IDisposable).Dispose();
73         }
74         featureLayer = PIE.Carto.LayerFactory.CreateDefaultFeatureLayer(pDataset);
75     return featureLayer;
76 }

5. 示例截图

原文地址:https://www.cnblogs.com/PIESat/p/10145048.html

时间: 2024-08-27 21:36:04

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

PIE SDK打开GDB、Dwg数据

1.      功能简介 目前不同的GIS软件平台具有自己独特支持的数据格式,如ESRI的File GeoDataBase和Personal GeoDataBase.MapInfo的mif数据.AutoCAD的DWG数据.Google的Kml和Kmz数据等,PIE对这些常用软件的数据格式都进行了支持,能够顺利的进行浏览查看. 2.      功能实现说明 2.1              数据格式介绍 File GeoDataBase和Personal GeoDataBase是ESRI的本地数据

PIE SDK打开HDF、NC数据

1.      功能简介 HDF 是美国国家高级计算应用中心(National Center for Supercomputing Application)为了满足各种领域研究需求而研制的一种能高效存储和分发科学数据的新型数据格式. NC是NetCDF的简称,其全称为Network Common Data Form(网络通用数据格式),其是针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据的描述和编码标准.利用NetCDF可以对网格数据进行高效地存储.管理.获取和分发等操作.目前,N

PIE SDK打开静止卫星数据

1. 功能简介 静止卫星是位于地球赤道上空约3.58万km处,与地面始终保持相对静止的卫星,静止卫星的特点是覆盖区域广,具有很强的机动灵活性,能够对特定区域进行分钟级高重复观测,可快速监测灾害目标的动态变化.目前风云2系列.风云4系列.葵花(Himawari)系列.高分4卫星均为静止卫星. [静止卫星位置示意图] [卫星运行轨迹图]          [FY2G数据成像图]                                               [GF4数据成像图] PIE支

PIE SDK专题制图打开模板说明文档

1.    功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用时只需要打开该模板,加载相应数据,就可以直接出图了,省去了重复制作图幅的麻烦,方便快捷. 每个地图模板都是一个地图文档(PmdContents),它被保存为*.pmd文件.         [模板文件]         [植被指数模板] 2. 功能实现说明 2.1打开模板 在PIE中,每个显示的地图都是一个地图文档(PmdContents),它可以保存为*.pmd文件.用IMa

PIE SDK Command&amp;&amp;Tool工具命令一览表

PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls.RasterCommand PIE.Controls.dll 2 加载矢量数据 PIE.Controls.VectorCommand 3 加载科学数据集数据 PIE.Controls.ScientificDatasetCommand 4 加载环境数据 PIE.Controls.LoadHJDataComma

PIE SDK组件式开发综合运用示例

1. 功能概述 关于PIE SDK的功能开发,在我们的博客上已经分门别类的进行了展示,点击PIESat博客就可以访问,为了初学者入门,本章节将对从PIE SDK组件式二次开发如何搭建界面.如何综合开发进行详细的讲解. 2. 功能实现 2.1.界面搭建 最终的界面如下图所示: 图1最终结果图 2.1.1 新建项目 选择“Window窗体应用程序”,设置程序的名称和保存路径即可.(新建完成后可以将程序的窗体名称右键重命名为“FormMain”,,将窗体界面的属性的Text设置名称为“PIE应用程序”

PIE SDK矢量数据项查看

1功能简介 矢量数据由大量要素信息构成,矢量数据项查看可以看到数据的属性表,下面就基于PIE SDK,介绍矢量数据项查看功能的实现. 2功能实现说明 2.1实现思路及原理说明 第一步 加载图层 第二步 将图层和对话框进行绑定 2.2 核心接口与方法 接口/类 方法/属性 说明 PIE.AxControls.FeatureLayerAttributeDialog Initial(IMap map, ILayer layer) 初始化 PIE.AxControls.PIETOCNodeTag Map

PIE SDK专题制图保存模板说明文档

1.    功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用模板时只需要打开该模板,加载相应数据,就可以直接出图,省去了重复制作图幅的麻烦,方便快捷. 每个地图模板都是一个地图文档(PmdContents),它被保存为*.pmd文件.      [模板文件]        [植被指数模板] 2. 功能实现说明 2.1保存模板 使用IMapDocument接口的Save()方法保存地图文档. 2.2 实现思路及原理说明 第一步 获取当前地

PIE SDK专题制图另存模板

1.功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用模板时只需要打开该模板,加载相应数据,就可以直接出图,省去了重复制作图幅的麻烦,方便快捷. 每个地图模板都是一个地图文档(PmdContents),它被保存为*.pmd文件.                                                                             [模板文件]              [植被指数模板] 2