#pragma once #include namespace LAMPMainWidget { class MapLayer; /** * 地图容器中的地图 */ class MapCanvasMap : public QGraphicsItem { public: explicit MapCanvasMap(MapLayer *layer, QGraphicsItem *parent = nullptr) : mLayer(layer), QGraphicsItem(parent) {} ~MapCanvasMap() override = default; public: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; //图层绘制函数 QRectF boundingRect() const override; /** * 设置图层显示区域 * @param rect */ void setViewExtent(const QRectF &rect); protected: /** * 所属图层 */ const MapLayer *mLayer; /** * 图层的显示区域 */ QRectF mViewExtent; }; }