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.

50 lines
1.5 KiB
C++

#ifndef GEOFEATUREOPERATOR_H
#define GEOFEATUREOPERATOR_H
#include <QStringList>
#include <QVector>
#include <QMap>
#include "Engine/UGDatasetVector.h"
#include "Geometry/UGGeometry.h"
#include "qmapcontrol.h"
#include "scenecontrol.h"
#include "sceneview.h"
using namespace UGC;
class GeoFeatureOperator
{
public:
GeoFeatureOperator();
// 查询地理要素
UGRecordsetPtr queryFeature(UGDatasetVector *dv, UGString filter=_U(""));
UGRecordsetPtr queryFeature(UGDatasetVector *dv, UGRect2D bounds);
//高亮几何对象
void highLightGeometry(UGGeometry* pGeometry);
//导入航线属性信息
int importFeatureAttribute(UGDatasetVector *dv, UGGeometry* pGeometry, QMap<QString,QString> fieldsValue,bool isAddGeometry = true);
//获取几何对象所有节点坐标
void getNodePoints(UGRecordsetPtr res,UGint geometryType,QVector<QPointF>&points);
//线要素绘制
void drawLine(QMapControl* qMapControl,UGDataSource* pDataSource,UGString datasetName);
//3D线要素绘制
void drawLine3D(SceneView* pSceneView,UGString datasourceName, UGString datasetName);
void drawLine3D(SceneView* pSceneView,UGString dataName);
//添加三维几何对象到记录集
void addGeometry3DToDataset(UGDatasetVector* dv,UGGeometry* pGeometry);
//添加三维几何对象
int importGeometry3DAttribute(UGDatasetVector *dv, UGGeometry* pGeometry, QMap<QString,QString> fieldsValue);
};
#endif // GEOFEATUREOPERATOR_H