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 示例截图
投影前:
投影后