1、为图层添加渲染器和读取器,分离图层基础信息、渲染和读写;

2、LayerTreeLayerNode持有MapLayer图层引用,为右键菜单做准备;
3、改名:imageviewer → mapcavas,mapcavas持有MapLayer图层引用,为刷新图像做准备;
This commit is contained in:
tangchao0503
2026-02-25 15:08:06 +08:00
parent e3b2d136d3
commit bdf956ed99
13 changed files with 659 additions and 286 deletions

View File

@ -1,6 +1,11 @@
#pragma once
#include "MapLayer.h"
#include <memory>
#include <QImage>
class RasterDataProvider;
class RasterRenderer;
class RasterLayer : public MapLayer
{
@ -10,5 +15,25 @@ public:
LayerType layerType() const override;
// future: renderer, data provider, etc.
// Access provider/renderer
RasterDataProvider* dataProvider() const;
RasterRenderer* renderer() const;
// Create or open provider based on this layer's uri
bool openDataProvider();
struct RenderParams {
double rWave = 665.0; // default wavelengths (nm)
double gWave = 560.0;
double bWave = 490.0;
double minValue = 0.0; // optional stretch
double maxValue = 255.0;
};
// Render the raster using current provider and renderer. Returns an empty QImage on failure.
QImage render(const RenderParams& params);
private:
std::unique_ptr<RasterDataProvider> m_provider;
std::unique_ptr<RasterRenderer> m_renderer;
};