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

投影前:

投影后

原文地址:https://www.cnblogs.com/PIESat/p/12372983.html