博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PIE SDK打开矢量数据
阅读量:5883 次
发布时间:2019-06-19

本文共 2169 字,大约阅读时间需要 7 分钟。

 

1. 功能简介

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

       

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

    PIE支持多种矢量数据的打开,下面我们就介绍如何在PIE中打开Shape类型的矢量数据。

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

OpenFeatureDataset

打开矢量数据集

Carto.LayerFactory

CreateDefaultFeatureLayer

创建矢量图层

2.4 示例代码

项目路径

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

数据路径

百度云盘地址下/PIE示例数据/矢量数据/Shape/省级行政区.shp

视频路径

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

示例代码

1 方法(一) 2   // 获得要打开Shape数据的路径 3   OpenFileDialog openFileDialog = new OpenFileDialog(); 4   openFileDialog.Filter = "矢量数据(*.shp)|*.shp"; 5   if (openFileDialog.ShowDialog() != DialogResult.OK) return; 6   // 打开图层 7   string filePath = openFileDialog.FileName; 8   ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(filePath); 9   if (layer == null) return;10   // 添加图层到地图并刷新11   mapControMain.FocusMap.AddLayer(layer);12  mapControMain.ActiveView.PartialRefresh(PIE.Carto.ViewDrawPhaseType.ViewAll);13 14 方法(二)15    // 获得要打开Shape数据的路径16    OpenFileDialog openFileDialog = new OpenFileDialog();17    openFileDialog.Filter = "矢量数据(*.shp)|*.shp";18    if (openFileDialog.ShowDialog() != DialogResult.OK) return;19    // 打开矢量数据集20    string filePath= openFileDialog.FileName;21    IFeatureDataset fDataset = PIE.DataSource.DatasetFactory.OpenFeatureDataset(filePath);22    if (fDataset == null) return;23    // 创建矢量图层24    IFeatureLayer fLayer = PIE.Carto.LayerFactory.CreateDefaultFeatureLayer(fDataset);25    if (fLayer == null) return;26    // 添加图层到地图并刷新27    mapControlMain.FocusMap.AddLayer(fLayer as ILayer);   mapControlMain.ActiveView.PartialRefresh(PIE.Carto.ViewDrawPhaseType.ViewAll);
View Code

2.5 示例截图

 

 

转载于:https://www.cnblogs.com/PIESat/p/10142687.html

你可能感兴趣的文章
回顾Swift 3,展望Swift 4
查看>>
Bowery为什么从Node.js转向 Go
查看>>
深入浅出Tensorflow(五):循环神经网络简介
查看>>
新CIO:Mark Schwartz认为的领先IT
查看>>
微软一顿操作猛如虎,PowerShell排名直线上升
查看>>
如何对DevOps数据库进行源代码控制
查看>>
cent OS 7.2配置java服务器环境
查看>>
说说跨域那些事儿
查看>>
亚马逊一口气发布了9款机器学习产品
查看>>
全面异步化:淘宝反应式架构升级探索
查看>>
与Brian Goetz聊Java的数据类
查看>>
远程桌面网关Apache Guacamole 发布1.0.0版本\n
查看>>
前百度资深科学家技术分享:大规模机器学习与AutoML
查看>>
GraphQL到底怎么用?看看这个例子就知道了
查看>>
ASP.NET Core 3.0项目开始“瘦身”
查看>>
Windows Server已可安装Docker,Azure开始支持Mesosphere
查看>>
敏捷现状10周年调查
查看>>
GitLab揭示DevOps价值和挑战的新调查研究
查看>>
Netflix:当你按下“播放”的时候发生了什么?
查看>>
他们10+年的管理经验或许正是你突破瓶颈的关键
查看>>