zoukankan      html  css  js  c++  java
  • 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 示例截图

  • 相关阅读:
    程序员面试金典--最大和子矩阵
    hihocoder-[Offer收割]编程练习赛25
    牛客网--今日头条2017后端工程师实习生笔试题
    牛客网-网易2017内推笔试编程题合集(二)
    hihocoder-1565-大富翁
    引用传递和值传递
    SSH详解
    Oracle中的游标
    Oracle触发器-变异表触发器不能访问本表
    Oracle中 in、exists、not in,not exists的比较
  • 原文地址:https://www.cnblogs.com/PIESat/p/12367747.html
Copyright © 2011-2022 走看看