2025-02-07 09:16:22 +00:00
|
|
|
|
#include <QtCore/QDebug>
|
|
|
|
|
#include <QtGui/QPainter>
|
|
|
|
|
#include <QtWidgets/QGraphicsSceneMouseEvent>
|
|
|
|
|
|
2025-02-09 18:16:07 +00:00
|
|
|
|
#include <mapcanvasmap.h>
|
|
|
|
|
#include <mapcanvas.h>
|
|
|
|
|
#include <maplayer.h>
|
2025-02-07 09:16:22 +00:00
|
|
|
|
#include <QDateTime>
|
|
|
|
|
#pragma execution_character_set("utf-8")
|
|
|
|
|
|
|
|
|
|
namespace LAMPMainWidget {
|
|
|
|
|
|
2025-05-02 05:19:00 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 重写paint函数,绘制图层的内容
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="painter"></param>
|
|
|
|
|
/// <param name="option"></param>
|
|
|
|
|
/// <param name="widget"></param>
|
|
|
|
|
void MapCanvasMap::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) {
|
2025-04-01 10:23:24 +00:00
|
|
|
|
if (!mLayer->provider().hasContent()) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
painter->drawImage(mViewExtent.topLeft(), mLayer->provider().preparedImage());
|
|
|
|
|
}
|
2025-02-07 09:16:22 +00:00
|
|
|
|
|
2025-05-02 05:19:00 +00:00
|
|
|
|
QRectF MapCanvasMap::boundingRect() const {
|
2025-04-01 10:23:24 +00:00
|
|
|
|
auto width = mViewExtent.size().width();
|
|
|
|
|
auto height = mViewExtent.size().height();
|
|
|
|
|
return mViewExtent + QMarginsF(1024, 1024, 1024, 1024);
|
|
|
|
|
}
|
2025-02-07 09:16:22 +00:00
|
|
|
|
|
2025-04-01 10:23:24 +00:00
|
|
|
|
void MapCanvasMap::setViewExtent(const QRectF& rect) {
|
|
|
|
|
//qDebug() << "更新图层显示对象边界=>" << rect;
|
|
|
|
|
if (rect != mViewExtent) {
|
|
|
|
|
prepareGeometryChange();
|
|
|
|
|
mViewExtent = rect;
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-02-07 09:16:22 +00:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|