PIE-SDK For C++地图显示范围截图
1. 功能介绍
地图显示范围截图是将当前地图显示的范围进行输出。输出的格式是png、bmp,主要思路就是通过IActiveView接口下的Output()方法进行输出。
2. 功能实现说明
2.1. 实现思路及原理说明
第一步 |
设置图片导出路径 |
第二步 |
设置输出的属性ExportPNG(宽度、高度、导出路径等) |
第三步 |
地图调用OutPut()方法进行输出 |
2.2. 核心接口与方法
接口/类 |
方法/属性 |
说明 |
SysDisplay::DisplayTransformationPtr |
GetDeviceFrame |
获取设备框架 |
SysCarto::ExporterPNGPtr |
SetWidth |
获取导出的宽度 |
SetHeight |
获取导出的高度 |
|
SetExportFileName |
设置或获取导出路径 |
|
StartExporting |
开始导出 |
|
FinishExporting |
结束导出 |
2.3. 示例代码
项目路径 |
百度云盘地址下/PIE示例程序/02.地图操作/04.地显示范围截图 |
数据路径 |
百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tif |
视频路径 |
百度云盘地址下/PIE视频教程/02.地图操作/04.地图显示范围截图.avi |
示例代码 |
|
void PIEMainWindow::On_ActionOutPutImg_Triggered(bool checked) { QString filter = "Raster Files (*.png)"; QString lstFile = QFileDialog::getSaveFileName(nullptr, "保存数据", "", filter); if (lstFile.isEmpty()) return; SysDisplay::DisplayTransformationPtr displaytransformation = m_pCurrentControl->GetActiveView()->GetDisplayTransformation();
SysCarto::ExporterPNGPtr expPng = new SysCarto::ExporterPNG(); expPng->SetDpi(96); double width = displaytransformation->GetDeviceFrame().width(); expPng->SetWidth((int)width); double height= displaytransformation->GetDeviceFrame().height(); expPng->SetHeight((int)height); expPng->SetExportFileName(lstFile);
SysCarto::ActiveViewPtr activView = m_pCurrentControl->GetActiveView(); expPng->StartExporting(); activView->Output(expPng, activView->GetExtent(), nullptr); expPng->FinishExporting(); } |