You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
1.9 KiB
C++

#ifndef DISPLAYROUTEDIALOG_H
#define DISPLAYROUTEDIALOG_H
#include <QDialog>
#include <QMap>
#include "Engine/UGDatasetVector.h"
#include "MapEditor/UGMapEditorWnd.h"
#include "Map/UGMap.h"
#include "routeglobalvariant.h"
#include "scenecontrol.h"
#include "Stream/ugdefs.h"
//MSVC编译器界面显示乱码问题
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
namespace Ui {
class DisplayRouteDialog;
}
using namespace UGC;
class DisplayRouteDialog : public QDialog
{
Q_OBJECT
public:
explicit DisplayRouteDialog(QWidget *parent = nullptr);
~DisplayRouteDialog();
void setDataset(UGDatasetPtr ds);
void setMapEditorWnd(UGMapEditorWnd* pMapEditorWnd);
void setSceneControl(SceneControl* pSceneControl);
void addRouteTypeItem(); // 添加航线类型
private slots:
void on_RouteTypeCbbox_currentIndexChanged(int index);
void on_displayBtn_clicked();
void on_cancelBtn_clicked();
private:
void addRouteNumberItem(UGRecordsetPtr res); //添加航线编号
void showRoute(); //显示二维航线
void showRoute3D(); //显示三维航线
void getDyLayer(UGMap* pMap,UGDynamicLayer* &pDyLayer,UGString dyLayerName);
void createDisplayLayer(UGMap* pMap,UGDatasetPtr dt,QString routeType);
UGString addGeometry3DToDisplayDataset(UGRecordsetPtr sourceRes,int routeType); //添加三维对象到显示数据集
void addGeometryToTrackingLayer3D(UGRecordsetPtr res,UGTrackingLayer3D* pTrackingLayer3D);
void removeGeometry(int type,UGTrackingLayer3D *pTrackingLayer3D);
private:
Ui::DisplayRouteDialog *ui;
RouteGlobalVariant routeGVar;
UGDatasetPtr dt;
UGDatasetVector* dtv;
UGMapEditorWnd* pMapEditorWnd;
SceneControl* pSceneControl;
QMap<int,QString> RouteType;
QString routeType;
QString routeNumber;
QMap<int,QList<QString>> routeTags;
bool is3DMap; //二三维标识
};
#endif // DISPLAYROUTEDIALOG_H