2025-02-07 09:16:22 +00:00
|
|
|
|
#include <QObject>
|
|
|
|
|
|
2025-02-09 18:16:07 +00:00
|
|
|
|
#include <maplayer.h>
|
|
|
|
|
#include <mapcanvas.h>
|
2025-02-07 09:16:22 +00:00
|
|
|
|
#include <QDateTime>
|
|
|
|
|
#pragma execution_character_set("utf-8")
|
|
|
|
|
|
|
|
|
|
namespace LAMPMainWidget {
|
|
|
|
|
|
2025-04-01 10:23:24 +00:00
|
|
|
|
MapLayer::MapLayer(
|
|
|
|
|
const QString& id,
|
|
|
|
|
LAMPMainWidget::CRS* crs,
|
|
|
|
|
LAMPMainWidget::MapCanvas* mapCanvas)
|
|
|
|
|
: mId(id),
|
|
|
|
|
mCrs(crs),
|
|
|
|
|
mZValue(-1),
|
|
|
|
|
mZoomValue(kDefaultZoomValue),
|
|
|
|
|
mProvider(nullptr),
|
|
|
|
|
mMapCanvasMap(new MapCanvasMap(this)),
|
|
|
|
|
mMapCanvas(mapCanvas) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MapLayer::~MapLayer() {
|
|
|
|
|
delete mCrs;
|
|
|
|
|
delete mProvider;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MapLayer::MapLayer(const MapLayer& other) {
|
|
|
|
|
mId = other.mId;
|
|
|
|
|
mZValue = other.mZValue;
|
|
|
|
|
mCrs = other.mCrs;
|
|
|
|
|
mMapCanvas = other.mMapCanvas;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MapLayer::MapLayer(MapLayer&& other) noexcept {
|
|
|
|
|
mId = other.mId;
|
|
|
|
|
mZValue = other.mZValue;
|
|
|
|
|
mCrs = other.mCrs;
|
|
|
|
|
mMapCanvas = other.mMapCanvas;
|
|
|
|
|
|
|
|
|
|
other.mId = QString{};
|
|
|
|
|
other.mCrs = nullptr;
|
|
|
|
|
other.mZValue = 0;
|
|
|
|
|
other.mMapCanvas = nullptr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MapLayer&
|
|
|
|
|
MapLayer::operator=(const MapLayer& other) {
|
|
|
|
|
if (this != &other) {
|
|
|
|
|
mId = other.mId;
|
|
|
|
|
mZValue = other.mZValue;
|
|
|
|
|
mCrs = other.mCrs;
|
|
|
|
|
mMapCanvas = other.mMapCanvas;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return *this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MapLayer&
|
|
|
|
|
MapLayer::operator=(MapLayer&& other) noexcept {
|
|
|
|
|
if (this != &other) {
|
|
|
|
|
mId = other.mId;
|
|
|
|
|
mZValue = other.mZValue;
|
|
|
|
|
mCrs = other.mCrs;
|
|
|
|
|
mMapCanvas = other.mMapCanvas;
|
|
|
|
|
|
|
|
|
|
other.mId = QString{};
|
|
|
|
|
other.mCrs = nullptr;
|
|
|
|
|
other.mZValue = 0;
|
|
|
|
|
other.mMapCanvas = nullptr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return *this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
MapLayer::update() {
|
|
|
|
|
if (!isVisible()) {
|
|
|
|
|
qDebug() << id() << "=>图层不显示,跳过刷新操作";
|
|
|
|
|
mMapCanvasMap->hide();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//qDebug() << "刷新图层内容=>" << mMapCanvas->viewExtent()<<QDateTime::currentDateTime()<<"zoom"<<mZoomValue;
|
|
|
|
|
mProvider->createTask(mMapCanvas->viewExtent(), mZoomValue);
|
|
|
|
|
mMapCanvasMap->show();
|
|
|
|
|
}
|
2025-02-07 09:16:22 +00:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|