|
|
#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:"<<pDataSource->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:"<<pDataSource->GetDatasetCount();
|
|
|
return issucceed;
|
|
|
*/
|
|
|
}
|