|
|
|
@ -13,7 +13,7 @@
|
|
|
|
|
#include "layeroperator.h"
|
|
|
|
|
#include "Scene/UGLayer3D.h"
|
|
|
|
|
#include "Scene/UGTrackingLayer3D.h"
|
|
|
|
|
|
|
|
|
|
#include "Layer3DDataset/UGLayer3DDatasetVector.h"
|
|
|
|
|
|
|
|
|
|
DisplayRouteDialog::DisplayRouteDialog(QWidget *parent) :
|
|
|
|
|
QDialog(parent),
|
|
|
|
@ -214,7 +214,7 @@ void DisplayRouteDialog::showRoute3D()
|
|
|
|
|
|
|
|
|
|
QStringList routeNumberList = ui->RouteNumberCbbox->currentText().replaceInStrings(";",",");
|
|
|
|
|
QString numFilter = "RouteNumber in (" + routeNumberList.join("\\,") + ")";
|
|
|
|
|
// qDebug()<<"******************************:"<<numFilter;
|
|
|
|
|
qDebug()<<"******************************:"<<numFilter;
|
|
|
|
|
//图层几何对象过滤语句
|
|
|
|
|
UGString layerFilter = Translator::QStr2UGStr(numFilter + " and " + typeFilter);
|
|
|
|
|
|
|
|
|
@ -222,6 +222,36 @@ void DisplayRouteDialog::showRoute3D()
|
|
|
|
|
UGRecordsetPtr res = gftOpt.queryFeature(dtv,layerFilter);
|
|
|
|
|
res->MoveFirst();
|
|
|
|
|
|
|
|
|
|
UGQueryDef queryDef;
|
|
|
|
|
res->GetQueryDef(queryDef);
|
|
|
|
|
qDebug()<<"******************************RecordCount0:"<<res->GetRecordCount();
|
|
|
|
|
|
|
|
|
|
const UGString strDataName = routeGVar.workspaceDataName.Line3DDatasetName + _U("@") + routeGVar.workspaceDataName.DatasourceName;
|
|
|
|
|
const UGString layer3DName = _U("RouteLayer3D") + Translator::QStr2UGStr(routeType);
|
|
|
|
|
UGLayer3Ds* layer3Ds = pSceneControl->GetUGLayer3Ds();
|
|
|
|
|
UGLayer3DDatasetVector* layer3DDv = NULL;
|
|
|
|
|
if(layer3Ds->FindNameInner(layer3DName)>=0)
|
|
|
|
|
{//图层已存在,则重新设置Filter
|
|
|
|
|
layer3DDv = (UGLayer3DDatasetVector*)layer3Ds->GetLayerInner(layer3DName);
|
|
|
|
|
layer3DDv->SetDisplayFilter(queryDef);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
layer3DDv = (UGLayer3DDatasetVector*)layer3Ds->AddLayer(strDataName,layer3DName,_U(""));
|
|
|
|
|
layer3DDv->SetDisplayFilter(queryDef);
|
|
|
|
|
};
|
|
|
|
|
UGStyle3D style3D = routeGVar.getRouteStyle3D(routeType.toInt());
|
|
|
|
|
layer3DDv->SetStyle3D(style3D);
|
|
|
|
|
|
|
|
|
|
UGTrackingLayer3D* trackingLayer3D = pSceneControl->GetTrackingLayer3D();
|
|
|
|
|
|
|
|
|
|
UGRecordsetPtr tempRes = gftOpt.queryFeature(dtv,Translator::QStr2UGStr(typeFilter));
|
|
|
|
|
gftOpt.removeNodeLabel3D(tempRes,trackingLayer3D); //移除该类型航线注记
|
|
|
|
|
|
|
|
|
|
gftOpt.addNodeLabel3D(res,trackingLayer3D);//添加航点注记
|
|
|
|
|
|
|
|
|
|
pSceneControl->Refresh(layer3DDv);
|
|
|
|
|
/*
|
|
|
|
|
UGLayer3Ds* layers = pSceneControl->GetUGLayer3Ds();
|
|
|
|
|
UGTrackingLayer3D* trackingLayer3D = pSceneControl->GetTrackingLayer3D();
|
|
|
|
|
//添加到显示数据集
|
|
|
|
@ -240,10 +270,12 @@ void DisplayRouteDialog::showRoute3D()
|
|
|
|
|
UGStyle3D style3D = routeGVar.getRouteStyle3D(routeType.toInt());
|
|
|
|
|
displayLayer->SetStyle3D(style3D);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pSceneControl->Refresh(displayLayer);
|
|
|
|
|
displayLayer = NULL;
|
|
|
|
|
layers = NULL;
|
|
|
|
|
trackingLayer3D = NULL;
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/* TrackingLayer3D显示方式
|
|
|
|
|
UGTrackingLayer3D* pTrackingLayer3D = pSceneControl->GetTrackingLayer3D();
|
|
|
|
@ -399,6 +431,9 @@ void DisplayRouteDialog::on_displayBtn_clicked()
|
|
|
|
|
mMessageTips->show();
|
|
|
|
|
// mMessageTips = NULL;
|
|
|
|
|
// this->reject();
|
|
|
|
|
// int type = RouteType.key(ui->RouteTypeCbbox->currentText());
|
|
|
|
|
// pSceneControl->removeLayer3D(Translator::QStr2UGStr("RouteLayer3D"+QString::number(type)));
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if(is3DMap)
|
|
|
|
|