#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);

    UGLayer* appendDatasetToMap(UGDatasetPtr pDataset,UGMap* m_pMap); //将dataset展示到地图中

    //添加航点标记
    void addNodeLabel(UGGeoLine* pGeoline,UGDynamicLayer* pLabelDyLayer,QString routeType,QString routeNum);

    //导入kml文件时临时显示航线
    void showKMLTemporary(QMapControl* qMapControl,UGRecordsetPtr kmlRes);

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