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.

60 lines
1.9 KiB
C++

#ifndef LAYEROPERATOR_H
#define LAYEROPERATOR_H
#include "Map/UGMap.h"
#include "Scene/UGLayer3D.h"
#include <QStringList>
#include "routeglobalvariant.h"
#include "qmapcontrol.h"
#include "scenecontrol.h"
using namespace UGC;
class LayerOperator
{
public:
LayerOperator();
// 获取Layer中选中几何对象标记信息
QMap<int,QStringList> getSelectedFeature(UGMap* pMap);
//设置图层风格
void setVectorLayerStyle(UGLayer* layer,UGDataset::DatasetType m_nType);
//显示几何对象
void addGeometryInTrackingLayer(UGTrackingLayer* pTrackingLayer,UGRecordsetPtr res,UGStyle &sty);
void addGeometryInDynamicLayer(UGDynamicLayer* pDyLayer,UGRecordsetPtr res,UGStyle &sty);
//获取动态图层
void getDynamicLayer(UGMap* pMap,UGDynamicLayer* &pDyLayer,UGString dyLayerName);
void getQDynamicLayer(QMapControl* pMapControl,QDynamicLayer* &pDyLayer,QString dyLayerName);
UGLayer* appendDatasetToMap(UGDatasetPtr pDataset,UGMap* m_pMap); //将dataset展示到地图中
//添加航点标记
void addNodeLabel(UGGeoLine* pGeoline,UGDynamicLayer* pLabelDyLayer,QString routeType,QString routeNum);
void addNodeLabel(QMapControl* qMapControl,UGRecordsetPtr selectionRes);
//导入kml文件时临时显示航线
void showKMLTemporary(QMapControl* qMapControl,UGRecordsetPtr kmlRes);
//显示三维航线注记
void showNodeLabel3D(SceneControl* pSceneControl);
public: //用于三维场景的函数
//导入kml3D文件时临时显示航线
void showKML3DTemporary(SceneControl* pSceneControl,UGRecordsetPtr kml3DRes);
//添加几何对象到三维追踪层
void addGeometryToTrackingLayer3D(SceneControl* pSceneControl,UGRecordsetPtr kml3DRes);
// 获取Layer3D中选中几何对象标记信息
QMap<int,QStringList> getSelectedFeature3D(SceneControl* pSceneControl);
private:
RouteGlobalVariant routeGVar;
};
#endif // LAYEROPERATOR_H