RasterProcessTool/RasterMainWidgetGUI/RasterMainWidget/maplayer.h

150 lines
3.2 KiB
C
Raw Permalink Normal View History

2025-02-07 09:16:22 +00:00
#pragma once
#include <QtCore/QString>
#include <QtCore/QDebug>
#include <QtCore/QRectF>
#include <crs.h>
#include <layerprovider.h>
#include <mapcanvasmap.h>
2025-02-07 09:16:22 +00:00
namespace LAMPMainWidget {
2025-04-01 10:23:24 +00:00
class MapCanvas;
/*
*
*/
class MapLayer {
public:
MapLayer(const QString& id, CRS* crs, MapCanvas* mapCanvas);
MapLayer(const MapLayer& other);
MapLayer(MapLayer&& other) noexcept;
virtual ~MapLayer();
MapLayer& operator=(const MapLayer& other);
MapLayer& operator=(MapLayer&& other) noexcept;
public:
/*
* id
* @return id
*/
const QString& id() const { return mId; }
/*
* z
* @return z
*/
const int zValue() const { return mZValue; }
/*
*
* @return
*/
const CRS& crs() const { return *mCrs; }
/*
* map
* @return map
*/
const MapCanvas& mapCanvas() const { return *mMapCanvas; }
/*
*
* @return
*/
const LayerProvider& provider() const { return *mProvider; }
/*
* id
* @param id id
*/
void setId(const QString& id) { mId = id; }
/*
* z
* @param zValue z
*/
void setZValue(const int zValue) { mZValue = zValue; }
/*
*
* @param crs
*/
void setCrs(CRS* const crs) { mCrs = crs; }
/*
*
* @param provider
*/
void setProvider(LayerProvider* const provider) { mProvider = provider; }
/*
* pixel:m
* @return
*/
virtual double resolution() const = 0;
/*
*
* @return
*/
virtual QRectF extent() const = 0;
/*
* zoom
* @return zoom
*/
int zoomValue() const { return mZoomValue; }
/*
* zoom
* @param zoom zoom
*/
virtual void setZoomValue(int zoom) { mZoomValue = zoom; }
/*
*
* @param map
*/
void setMap(MapCanvasMap* map) { mMapCanvasMap = map; }
/*
*
* @return
*/
MapCanvasMap* map() const { return mMapCanvasMap; }
/*
*
* @return truefalse
*/
bool isVisible() const { return mIsVisible; }
/*
*
* @param visible truefalse
*/
void setVisiblity(bool visible) { mIsVisible = visible; }
/*
*
* @return true
*/
virtual void update();
protected:
QString mId;
CRS* mCrs;
int mZValue;
int mZoomValue;
LayerProvider* mProvider;
MapCanvasMap* mMapCanvasMap;
const MapCanvas* mMapCanvas;
bool mIsVisible{ false };
private:
const static int kDefaultZoomValue{ 10 };
};
2025-02-07 09:16:22 +00:00
}