PIE-SDK For C++打开Micaps数据

1、功能简介

         Micaps数据是气象信息处理和天气预报制作中的一种气象数据格式。其包含多种气象信息产品(地面常规气象观测数据产品、高空常规气象观测数据产品等),目前Micaps数据被Micaps软件很好的支持,其他软件对Micaps数据的支持也都参考该软件。

         PIE支持Micaps 12347类数据的加载和显示控制。

2、功能实现说明

2.1 Micaps数据介绍

         Micaps采用文本文件的方式存储数据,包含多种类型的气象特征的数据,每种数据的存储结构不同,可参考相关的说明。因为Micaps数据是特定的气象数据,所以每一种气象元素都有自己独特的显示方式和符号,PIE中对Micaps中部分数据进行了高度化的支持,用户直接加载数据就能按照标准的方式显示数据。

下面以Micaps1类数据为例,来演示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();

2.5 示例截图

posted @ 2020-02-26 16:49  PIESAT  阅读(328)  评论(0编辑  收藏  举报