PIE-SDK For C++打开Micaps数据
1、功能简介
Micaps数据是气象信息处理和天气预报制作中的一种气象数据格式。其包含多种气象信息产品(地面常规气象观测数据产品、高空常规气象观测数据产品等),目前Micaps数据被Micaps软件很好的支持,其他软件对Micaps数据的支持也都参考该软件。
PIE支持Micaps 1、2、3、4、7类数据的加载和显示控制。
2、功能实现说明
2.1 Micaps数据介绍
Micaps采用文本文件的方式存储数据,包含多种类型的气象特征的数据,每种数据的存储结构不同,可参考相关的说明。因为Micaps数据是特定的气象数据,所以每一种气象元素都有自己独特的显示方式和符号,PIE中对Micaps中部分数据进行了高度化的支持,用户直接加载数据就能按照标准的方式显示数据。
下面以Micaps的1类数据为例,来演示Micaps数据的加载显示。
2.2 实现思路及原理说明
第一步 |
通过文件路径打开矢量数据集 |
第二步 |
通过矢量数据集创建矢量图层 |
2.3 核心接口与方法
接口/类 |
方法 |
说明 |
SysDataSource::DatasetFactory |
OpenFeatureDataset |
打开矢量数据集 |
SysCarto::LayerFactory |
CreateDefaultFeatureLayer |
创建矢量图层 |
2.4 示例代码
项目路径 |
百度云盘地址下/PIE示例程序/03.数据加载/07.打开Micaps数据 |
数据路径 |
百度云盘地址下/PIE示例数据/矢量数据/Micaps/ |
视频路径 |
百度云盘地址下/PIE视频教程/03.数据加载/07.打开Micaps.avi |
示例代码 |
|
示例代码在AddDataCommand下 方法(一) //直接创建图层,打开Micaps数据 QString filter = "Micaps数据 (*.000)"; QString filePath = QFileDialog::getOpenFileName(nullptr, "添加数据", "", filter); if (filePath.isEmpty()) return;
SysCarto::LayerPtr layerPtr = SysCarto::LayerFactory::CreateDefaultLayer(filePath); m_ptrHookHelper->GetFocusMap()->AddLayer(layerPtr); m_ptrHookHelper->GetActiveView()->Refresh();
方法(二) //通过FeatureDataset创建Layer,打开Micaps数据 QString filter = "Micaps数据 (*.000)"; QString filePath = QFileDialog::getOpenFileName(nullptr, "添加数据", "", filter); if (filePath.isEmpty()) return;
SysDataSource::FeatureDatasetPtr micapsDataSetPtr = SysDataSource::DatasetFactory::Instance()->OpenFeatureDataset(filePath); if (micapsDataSetPtr == nullptr) return; SysCarto::LayerPtr micapsLayer = SysCarto::LayerFactory::Instance()->CreateDefaultFeatureLayer(micapsDataSetPtr); if (micapsLayer!=nullptr) return;
m_ptrHookHelper->GetFocusMap()->AddLayer(micapsLayer); m_ptrHookHelper->GetActiveView()->Refresh(); |