#ifndef DISPLAYROUTEDIALOG_H #define DISPLAYROUTEDIALOG_H #include #include #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(); // 添加航线类型 void setMapType(bool isMap3D = false); //设置是否三维地图类型 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 RouteType; QString routeType; QString routeNumber; QMap> routeTags; int mapType; }; #endif // DISPLAYROUTEDIALOG_H