#include "geofileparser.h" #include "qdebug.h" #include "translator.h" #include "DataExchange/UGDataExchange.h" #include "DataExchange/UGExchangeModel.h" #include "FileParser/UGKMLConfigParams.h" #include "FileParser/UGKMZConfigParams.h" #include "FileParser/UGGTiffConfigParams.h" #include "FileParser/UGExchangeParamsManager.h" #include "FileParser/UGModelConfigParams.h" #include "FileParser/UG3dsConfigParams.h" //void UGSTDCALL ImportFunc(void *pData, const std::vector< void * > &vecParam) //{ // qDebug()<<"*********************ImportFunc:"; // qDebug()<<"*********************ImportFunc:"; // qDebug()<<"*********************ImportFunc:"; //} GeoFileParser::GeoFileParser() { } //导入Tiff文件 bool GeoFileParser::importTiffData(UGDataSource *pDataSource, UGString datasetName, QString importPath, bool ifBuildPyramid,UGint importModel,UGDataCodec::CodecType encType) { UGDataExchange exchange = UGDataExchange(); int issu = exchange.AttachDataSource(pDataSource); //导入参数设置 UGGTiffImportParams tiffImportParams; tiffImportParams.SetDestDTName(datasetName); //设置目标数据集名称 tiffImportParams.SetFilePathName(Translator::QStr2UGStr(importPath)); tiffImportParams.SetDestCoordSys(UGPrjCoordSys (4326)); //设置坐标系 tiffImportParams.SetBuildPyramid(ifBuildPyramid); //开启影像金字塔 if(!(importModel == UGImportParams::ModeIMG)) //默认类型不设置导入类型,以加快导入速度 tiffImportParams.SetImportMode(importModel);//设置导入数据类型 if(!(encType == UGDataCodec::encPNG)) tiffImportParams.SetDatasetEncType(encType);//UGDataCodec::CodecType encType tiffImportParams.SetOverWrite(true); //设置强制覆盖 tiffImportParams.SetEnableMultiThread(true); //开启多线程 // tiffImportParams.SetShowProgress(true); // tiffImportParams.SetCallbackFunc(ImportFunc); //开始导入 UGint ii = tiffImportParams.GetFileType(); int ss = UGExchangeParamsManager::IsValidImportParams(ii, tiffImportParams); UGint issucceed = exchange.Import(tiffImportParams); return issucceed; } //导入KML文件 bool GeoFileParser::importKMLData(UGDataSource *pDataSource, UGString datasetName,QString importPath) { UGDataExchange exchange = UGDataExchange(); int issu = exchange.AttachDataSource(pDataSource); UGKMLImportParams kmlParams = UGKMLImportParams(); // UGKMZImportParams kmlParams = UGKMZImportParams(); kmlParams.SetDestDTName(datasetName); //设置目标数据集名称 kmlParams.SetFilePathName(Translator::QStr2UGStr(importPath)); kmlParams.SetDestCoordSys(UGPrjCoordSys (4326)); //设置坐标系:WGS-84 UGint ii = kmlParams.GetFileType(); int ss = UGExchangeParamsManager::IsValidImportParams(ii, kmlParams); UGint issucceed = exchange.Import(kmlParams); return issucceed; } // 导出KML文件 bool GeoFileParser::exportKMLData(UGC::UGDataSource *pDataSource, QString datasetName, QString savePath, QString strRecordFilter) { UGDataExchange exchange = UGC::UGDataExchange(); int issu = exchange.AttachDataSource(pDataSource); //导出参数设置 UGKMLExportParams exportKMLParams = UGKMLExportParams(); exportKMLParams.SetFilePathName(Translator::QStr2UGStr(savePath)); //导出文件全路径 exportKMLParams.SetDtNameToBeExported(Translator::QStr2UGStr(datasetName)); //要导出的数据集名称,数据集坐标系必须为WGS-84 exportKMLParams.SetRecordFilter(Translator::QStr2UGStr(strRecordFilter)); //过滤条件 return exchange.Export(exportKMLParams); } //导入模型数据(可以加载.3ds) bool GeoFileParser::importModelData(UGDataSource *pDataSource, UGString datasetName, QString importPath) { UGDataExchange exchange = UGDataExchange(); exchange.AttachDataSource(pDataSource); //导入参数设置 UGModelImportParams modelImportParams = UGModelImportParams(); // UG3dsImportParams modelImportParams = UG3dsImportParams(); modelImportParams.SetDestDTName(datasetName); //设置数据集名 modelImportParams.SetFilePathName(Translator::QStr2UGStr(importPath)); //文件路径 modelImportParams.SetDestCoordSys(UGPrjCoordSys (4326)); //设置坐标系为WGS-84 // modelImportParams.SetPosition(UGPoint3D(119.718414,32.234539,20)); //设置模型放置点 //开始导入 UGint ii = modelImportParams.GetFileType(); int ss = UGExchangeParamsManager::IsValidImportParams(ii, modelImportParams); UGint issucceed = exchange.Import(modelImportParams); return issucceed; /* qDebug()<<"************0:"<GetDatasetCount(); UGExchangeModel modelEM = UGExchangeModel(); // UG3dsImportParams model3dsImportParams = UG3dsImportParams(); UGModelImportParams model3dsImportParams = UGModelImportParams(); model3dsImportParams.SetDestDTName(datasetName); //设置数据集名 model3dsImportParams.SetFilePathName(Translator::QStr2UGStr(importPath)); //文件路径 model3dsImportParams.SetDestCoordSys(UGPrjCoordSys (4326)); //设置坐标系为WGS-84 model3dsImportParams.SetPosition(UGPoint3D(119.718414,32.234539,20)); //设置模型放置点 //开始导入 UGint ii = model3dsImportParams.GetFileType(); int ss = UGExchangeParamsManager::IsValidImportParams(ii, model3dsImportParams); UGint issucceed = modelEM.Import(pDataSource,model3dsImportParams); qDebug()<<"************0:"<GetDatasetCount(); return issucceed; */ }