zoukankan      html  css  js  c++  java
  • PIE-SDK For C++矢量数据的投影转换

    1.功能简介

       目前在地理信息领域中数据包括矢量和栅格两种数据组织形式,每一种数据都可以对投影进行转换,目前PIE SDK支持矢量和栅格数据的投影转换功能,下面对矢量数据的投影转换功能进行介绍。

    2.功能实现说明

    2.1 实现思路及原理说明

    第一步

    获取需要转换的矢量数据的路径和保存路径

    第二步

    获得转换的空间参考

    第三步

    利用transform()方法进行转换

    2.2 核心接口与方法

    接口/

    方法/属性

    说明

    SysDataSource::DatasetFactory

    OpenFeatureDataset (QString path)

    创建要素数据集

    SysDataSource::FeatureDatasetPt

    GetSpatialReference()

    获取空间参考

    SysDataSource::DataSourceUtil

    Transform (…)

    投影转换方法

    2.3 示例代码

    项目路径

    百度云盘地址下/PIE示例程序/04数据操作/08矢量投影转换

    数据路径

    百度云盘地址下/PIE示例数据/矢量数据/Shape/

    视频路径

    百度云盘地址下/PIE视频教程/04数据操作/08矢量投影转换.avi

    示例代码

    void PIEMainWindow::On_ActionTransformVector_Triggered(bool checked)

    {

        QString sourcePath = "D:\PIESDK\PIE示例数据\矢量数据\Shape\省级行政区.shp";

        QString prjPath = "D:\PIESDK\PIE示例数据\矢量数据\省级行政区reProj.shp";

        QString desPath = "E:/Data/temp/province.shp";

     

        //读取目标投影信息,可根据实际情况用其它方式实现

        SysDataSource::FeatureDatasetPtr dataSetPtr = SysDataSource::DatasetFactory::Instance()->OpenFeatureDataset(prjPath);

        SysGeometry::SpatialReferencePtr spatialReference = dataSetPtr->GetSpatialReference();

        bool flag = SysDataSource::DataSourceUtil::Transform(sourcePath, desPath, spatialReference);

        if (flag)

        {

            QMessageBox::information(this, "提示", "投影转换成功", QMessageBox::Ok);

        }

        else

        {

            QMessageBox::information(this, "提示", "投影转换失败", QMessageBox::Ok);

        }

    }

    2.4 示例截图

    投影前:

    投影后

  • 相关阅读:
    【转载】阿里云轻量应用型服务器和ECS服务器比较
    Android -- 启动模式
    Android -- Broadcast接收
    Qt正则表达式提取数据
    Android -- Intent
    Android -- 多线程下载
    Android -- ContentProvider与联系人
    Android -- 内容观察者
    Android -- ContentProvider
    Android -- ListView与ArrayAdapter、SimpleAdapter
  • 原文地址:https://www.cnblogs.com/PIESat/p/12372983.html
Copyright © 2011-2022 走看看