• 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 示例截图

    投影前:

    投影后

  • 相关阅读:
    多线程调用本质
    音频编码解码器库 libZPlay
    C#多线程代码调试技巧
    SharpMap实践代码
    Work Queue based multithreading
    (转)C#写的NoSQL开源系统(系列)
    A .NET State Machine Toolkit Part I
    在线开发环境地址
    数字音乐商KKBOX三季度将进军日本市场
    苹果官方购置iPad用户将获1100元退款
  • 原文地址:https://www.cnblogs.com/PIESat/p/12372983.html
Copyright © 2020-2023  润新知