16#include <ogr_spatialref.h>
22#include <QNetworkAccessManager>
23#include <QNetworkReply>
177 const QSize &viewportSize,
180 void render(QPainter *painter,
182 const QSize &imageSize,
213 void onCapabilitiesReply(QNetworkReply *reply);
214 void onTileReply(QNetworkReply *reply,
const QString &cacheKey,
227 const QString &style,
228 const QString &tileMatrixSet,
230 int col,
int row)
const;
234 int pixelWidth)
const;
241 void parseCapabilities(
const QByteArray &xml);
242 void applyCRSFromTileMatrixSet(
const QString &tmsId);
247 int pixelWidth)
const;
249 [[nodiscard]] QUrl buildTileUrl(
const QString &
layerId,
250 const QString &style,
251 const QString &tileMatrixSet,
253 int col,
int row)
const;
255 void fetchTile(
const QString &cacheKey,
const QUrl &tileUrl,
259 QString m_activeLayerId;
260 QString m_activeTileMatrixSet;
261 QString m_activeStyle;
262 QString m_imageFormat =
"image/png";
264 bool m_capsReady =
false;
267 QNetworkAccessManager *m_nam =
nullptr;
268 QSet<QString> m_inFlightKeys;
269 int m_pendingTiles = 0;
270 QHash<QString, RasterTileItem *> m_activeSceneItems;
275 OGRCoordinateTransformation *m_canvasToTile =
nullptr;
276 OGRCoordinateTransformation *m_tileToCanvas =
nullptr;
Shared visual-adjustment parameters for raster basemaps.
An axis-aligned bounding box in the coordinate space of a given CRS.
Definition mapextent.h:26
QString layerId() const
Returns the layer's immutable unique identifier (UUID).
Definition openswmmvislayer.cpp:60
SpatialReferenceSystem * srs() const
Returns the spatial reference system for this layer, or nullptr if the layer has no known CRS.
Definition openswmmvislayer.cpp:201
MapExtent extent() const
Returns the layer extent in the layer's own CRS.
Definition openswmmvislayer.cpp:252
Top-level project container managing sessions, the SWMM model layer, and persistence paths for one SW...
Definition openswmmvisworkspace.h:42
Definition graphicsitems.h:300
Represents a coordinate reference system backed by a GDAL OGRSpatialReference.
Definition spatialreferencesystem.h:28
Base class owning the tile cache + parent-fallback compositor shared by tile-pyramid layers.
Definition tilepyramidlayer.h:47
A map layer that fetches tiled imagery from an OGC WMTS service.
Definition wmtslayer.h:101
void fetchCapabilities()
Asynchronously fetches and parses the GetCapabilities document.
Definition wmtslayer.cpp:93
bool isBasemapLayer() const override
Returns true for world-spanning basemap layers (XYZ tile providers, WMS/WMTS services covering the wh...
Definition wmtslayer.h:174
void basemapRenderParamsChanged()
void fetchCache(const MapExtent &extent, const QSize &viewportSize, const SpatialReferenceSystem *srs) override
Triggers any asynchronous (or synchronous) tile/data fetch needed to populate this layer's internal c...
Definition wmtslayer.cpp:199
QString activeTileMatrixSet
Definition wmtslayer.h:108
int tileSize() const
Definition wmtslayer.h:162
void depopulateScene(QGraphicsScene *scene) override
Removes all QGraphicsItems belonging to this layer from the scene.
Definition wmtslayer.cpp:634
bool isRasterLayer() const override
Returns true for layers that render into a raster buffer (WMS, WMTS, GISRaster) rather than populatin...
Definition wmtslayer.h:173
void activeStyleChanged(const QString &style)
int tileSize
Definition wmtslayer.h:113
void render(QPainter *painter, const MapExtent &extent, const QSize &imageSize, const SpatialReferenceSystem *srs) override
Renders this layer's content directly into painter.
Definition wmtslayer.cpp:309
int tileCacheMaxSize
Definition wmtslayer.h:115
WMTSServiceInfo serviceInfo() const
Definition wmtslayer.cpp:83
QString imageFormat
Definition wmtslayer.h:112
const OpenSWMM::Render::BasemapRenderParams & basemapRenderParams() const
Definition wmtslayer.h:237
QUrl buildTileUrlPublic(const QString &layerId, const QString &style, const QString &tileMatrixSet, const WMTSTileMatrix &matrix, int col, int row) const
Definition wmtslayer.cpp:1158
void setImageFormat(const QString &fmt)
Definition wmtslayer.cpp:173
void refreshScene(QGraphicsScene *scene, const MapExtent &canvasExtent, const SpatialReferenceSystem *canvasSRS) override
Smart scene refresh — updates existing items instead of destroying and recreating.
Definition wmtslayer.cpp:490
void activeTileMatrixSetChanged(const QString &id)
void capabilitiesError(const QString &errorMessage)
QString activeStyle
Definition wmtslayer.h:110
bool capabilitiesReady() const
Definition wmtslayer.cpp:84
void onCanvasCRSChanged(const SpatialReferenceSystem *newCanvasSRS) override
Called when the user changes the canvas CRS so layers can pre-compute any CRS-dependent transform cac...
Definition wmtslayer.cpp:648
void populateScene(QGraphicsScene *scene, const MapExtent &canvasExtent, const SpatialReferenceSystem *canvasSRS) override
Creates / updates QGraphicsItems representing this layer in the scene.
Definition wmtslayer.cpp:297
void setBasemapRenderParams(const OpenSWMM::Render::BasemapRenderParams &p)
Definition wmtslayer.cpp:1174
void tileCacheMaxSizeChanged(int maxTiles)
QUrl serviceUrl
Definition wmtslayer.h:104
void activeLayerIdChanged(const QString &id)
void setTileCacheMaxSize(int maxTiles)
Sets the maximum number of tiles held in the in-memory cache.
Definition wmtslayer.cpp:189
QString sourceDescription() const override
Human-readable source of this layer: a file path, a service URL, or a description for in-memory / der...
Definition wmtslayer.h:130
void fetchTileIfNeeded(const QString &cacheKey, const QUrl &tileUrl, const MapExtent &tileExtent, int level)
Definition wmtslayer.cpp:1152
const WMTSTileMatrix * selectTileMatrixPublic(const WMTSTileMatrixSet &tms, const MapExtent &canvasExtent, int pixelWidth) const
Definition wmtslayer.cpp:1167
void setActiveTileMatrixSet(const QString &id)
Definition wmtslayer.cpp:146
void setActiveStyle(const QString &style)
Definition wmtslayer.cpp:160
QString activeLayerId
Definition wmtslayer.h:106
void setActiveLayerId(const QString &id)
Definition wmtslayer.cpp:124
void capabilitiesFetched(const WMTSServiceInfo &info)
void imageFormatChanged(const QString &fmt)
void setServiceInfo(const WMTSServiceInfo &info)
Injects an already-fetched service info (e.g. from a connection dialog) so the layer can render immed...
Definition wmtslayer.cpp:86
QGraphicsScene * scene
Definition inletdrawingview.cpp:78
ArrowPlacement p
Definition linesymbollayer.cpp:27
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
Brightness / contrast / saturation / resampling for a basemap.
Definition basemaprenderparams.h:32
Describes one layer from a WMTS GetCapabilities response.
Definition wmtslayer.h:63
QString abstractText
Definition wmtslayer.h:66
MapExtent wgs84BoundingBox
Definition wmtslayer.h:70
QStringList tileMatrixSetIds
Definition wmtslayer.h:68
QStringList styles
Definition wmtslayer.h:69
QString identifier
Definition wmtslayer.h:64
QString title
Definition wmtslayer.h:65
QStringList formats
Definition wmtslayer.h:67
Metadata returned by a WMTS GetCapabilities request.
Definition wmtslayer.h:78
QList< WMTSTileMatrixSet > tileMatrixSets
Definition wmtslayer.h:82
QString title
Definition wmtslayer.h:79
QList< WMTSLayerInfo > layers
Definition wmtslayer.h:81
QString abstractText
Definition wmtslayer.h:80
Describes one zoom level within an OGC WMTS TileMatrixSet.
Definition wmtslayer.h:36
QString identifier
Definition wmtslayer.h:37
double scaleDenominator
Definition wmtslayer.h:38
double topLeftY
Definition wmtslayer.h:40
int tileWidth
Definition wmtslayer.h:41
int matrixHeight
Definition wmtslayer.h:44
int tileHeight
Definition wmtslayer.h:42
double topLeftX
Definition wmtslayer.h:39
int matrixWidth
Definition wmtslayer.h:43
A complete tile matrix set (one CRS + ordered zoom levels).
Definition wmtslayer.h:52
QList< WMTSTileMatrix > matrices
Definition wmtslayer.h:55
QString crsIdentifier
Definition wmtslayer.h:54
QString identifier
Definition wmtslayer.h:53
Shared tile-pyramid machinery for tiled raster layers (GISRasterLayer, WMTSLayer): a thread-safe tile...