![]() |
SWMMVis
6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
|
A map layer that fetches and displays images from an OGC WMS service. More...
#include <wmslayer.h>
Signals | |
| void | capabilitiesFetched (const WMSServiceInfo &info) |
| Emitted when the GetCapabilities document has been parsed successfully. | |
| void | capabilitiesError (const QString &errorMessage) |
| Emitted when fetching capabilities fails. | |
| void | tileReady () |
| Emitted when a GetMap tile has been downloaded and is ready to paint. | |
| void | wmsVersionChanged (const QString &version) |
| void | activeLayerNameChanged (const QString &name) |
| void | activeStyleChanged (const QString &style) |
| void | imageFormatChanged (const QString &fmt) |
| void | transparentChanged (bool transparent) |
| void | basemapRenderParamsChanged () |
Signals inherited from OpenSWMMVisLayer | |
| void | nameChanged (const QString &newName) |
| void | layerTypeChanged (OpenSWMMVisLayerType newType) |
| void | visibilityChanged (bool visible) |
| void | opacityChanged (double opacity) |
| void | srsChanged (SpatialReferenceSystem *newSRS) |
| void | extentChanged (const MapExtent &newExtent) |
| void | childrenChanged () |
| void | repaintRequested () |
| void | temporalSpecChanged (const OpenSWMM::Render::TemporalSpec &spec) |
| void | maskSpecChanged (const OpenSWMM::Render::MaskSpec &spec) |
| void | auxStorageSpecChanged (const OpenSWMM::Render::AuxiliaryStorageSpec &spec) |
| void | joinsChanged (const QVector< OpenSWMM::Render::JoinSpec > &joins) |
| void | diagramSpecChanged (const OpenSWMM::Render::DiagramSpec &spec) |
| void | labelConfigChanged () |
Public Member Functions | |
| WMSLayer (const QUrl &serviceUrl, OpenSWMMVisWorkspace *parent=nullptr) | |
| Constructs a WMS layer with the given service endpoint URL. | |
| ~WMSLayer () override | |
| QUrl | serviceUrl () const |
| QString | wmsVersion () const |
| WMSServiceInfo | serviceInfo () const |
| bool | capabilitiesReady () const |
| QString | sourceDescription () const override |
| Human-readable source of this layer: a file path, a service URL, or a description for in-memory / derived layers. | |
| void | fetchCapabilities () |
| Asynchronously fetches the GetCapabilities document. | |
| void | setServiceInfo (const WMSServiceInfo &info) |
| Injects an already-fetched service info (e.g. from a connection dialog) so the layer can render immediately without a second GetCapabilities round-trip. | |
| QString | activeLayerName () const |
| void | setActiveLayerName (const QString &layerName) |
| QString | activeStyle () const |
| void | setActiveStyle (const QString &style) |
| QString | imageFormat () const |
| void | setImageFormat (const QString &fmt) |
| QString | crs () const |
| void | setCrs (const QString &crs) |
| int | dpiMode () const |
| void | setDpiMode (int mode) |
| QString | capabilitiesUrl () const |
| bool | isTransparent () const |
| void | setTransparent (bool transparent) |
| QMap< QString, QString > | extraParams () const |
| Returns optional extra key=value pairs appended to every GetMap URL. | |
| void | setExtraParams (const QMap< QString, QString > ¶ms) |
| bool | isRasterLayer () const override |
| Returns true for layers that render into a raster buffer (WMS, WMTS, GISRaster) rather than populating QGraphicsItems. | |
| 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 cache for the given view state. | |
| void | render (QPainter *painter, const MapExtent &extent, const QSize &imageSize, const SpatialReferenceSystem *srs) override |
Renders this layer's content directly into painter. | |
| void | populateScene (QGraphicsScene *scene, const MapExtent &canvasExtent, const SpatialReferenceSystem *canvasSRS) override |
| Creates / updates QGraphicsItems representing this layer in the scene. | |
| void | depopulateScene (QGraphicsScene *scene) override |
| Removes all QGraphicsItems belonging to this layer from the scene. | |
| void | refreshScene (QGraphicsScene *scene, const MapExtent &canvasExtent, const SpatialReferenceSystem *canvasSRS) override |
| Smart scene refresh — updates existing items instead of destroying and recreating. | |
| void | onCanvasCRSChanged (const SpatialReferenceSystem *newCanvasSRS) override |
| Called when the user changes the canvas CRS so layers can pre-compute any CRS-dependent transform caches. | |
| const OpenSWMM::Render::BasemapRenderParams & | basemapRenderParams () const |
| void | setBasemapRenderParams (const OpenSWMM::Render::BasemapRenderParams &p) |
Public Member Functions inherited from OpenSWMMVisLayer | |
| OpenSWMMVisLayer (OpenSWMMVisWorkspace *parent) | |
| OpenSWMMVisLayer (const QString &name="Unlabeled Layer", OpenSWMMVisWorkspace *parent=nullptr) | |
| virtual | ~OpenSWMMVisLayer () |
| QString | layerId () const |
| Returns the layer's immutable unique identifier (UUID). | |
| QString | name () const |
| Returns the user-visible name of this layer. | |
| void | setName (const QString &name) |
| Sets the user-visible name. | |
| OpenSWMMVisLayerType | layerType () const |
| Returns the layer type discriminator. | |
| bool | isVisible () const |
| Returns true when this layer should be drawn. | |
| void | setVisible (bool visible) |
| Shows or hides this layer. | |
| double | opacity () const |
| Returns the layer opacity in the range [0.0, 1.0]. 0.0 = fully transparent; 1.0 = fully opaque. | |
| void | setOpacity (double opacity) |
| Sets the layer opacity. Values are clamped to [0.0, 1.0]. | |
| SpatialReferenceSystem * | srs () const |
| Returns the spatial reference system for this layer, or nullptr if the layer has no known CRS. | |
| void | setSRS (SpatialReferenceSystem *srs, bool ownsSRS=false) |
| Sets (or replaces) the CRS for this layer. | |
| QString | crsDescription () const |
| Returns a human-readable summary of this layer's CRS for display in the Properties window. | |
| MapExtent | extent () const |
| Returns the layer extent in the layer's own CRS. | |
| void | setExtent (const MapExtent &extent) |
| Sets the layer spatial extent (in the layer's CRS). | |
| virtual QVector< QPair< QString, QString > > | extendedMetadata () const |
| Ordered key→value pairs of TYPE-SPECIFIC metadata, rendered by the Metadata tab below the common block the dialog builds itself. | |
| virtual bool | isBasemapLayer () const |
| Returns true for world-spanning basemap layers (XYZ tile providers, WMS/WMTS services covering the whole world) that should NOT be included when computing the data-driven full extent. | |
| void | setViewportSize (int w, int h) |
| Called by MapCanvas before refreshScene so layers can request the correct pixel dimensions for tile/image requests. | |
| int | viewportWidth () const |
| int | viewportHeight () const |
| QVector< OpenSWMMVisLayer * > | children () const |
| Returns the ordered list of child layers. | |
| double | layerZValue () const |
| Returns the z-value base assigned to this layer by the canvas. Items within the layer should use z-values relative to this. | |
| virtual std::vector< std::unique_ptr< openswmmvis::ui::ILayerStyleSubject > > | styleSubjects () |
| Slice U-2 — return the styleable subjects for the unified LayerStyleDialog. | |
| void | setLayerZValue (double z) |
| Called by the canvas to set this layer's z-value band. | |
| virtual OpenSWMM::Render::IFeatureRenderer * | renderer () const |
| virtual void | setRenderer (std::unique_ptr< OpenSWMM::Render::IFeatureRenderer >) |
| virtual OpenSWMM::Render::RuleList * | ruleList () |
| virtual const OpenSWMM::Render::RuleList * | ruleList () const |
| const OpenSWMM::Render::TemporalSpec & | temporalSpec () const |
| void | setTemporalSpec (const OpenSWMM::Render::TemporalSpec &spec) |
| const OpenSWMM::Render::LabelConfig & | labelConfig () const |
| virtual void | setLabelConfig (const OpenSWMM::Render::LabelConfig &cfg) |
| const OpenSWMM::Render::MaskSpec & | maskSpec () const |
| void | setMaskSpec (const OpenSWMM::Render::MaskSpec &spec) |
| const OpenSWMM::Render::AuxiliaryStorageSpec & | auxStorageSpec () const |
| void | setAuxStorageSpec (const OpenSWMM::Render::AuxiliaryStorageSpec &spec) |
| const QVector< OpenSWMM::Render::JoinSpec > & | joins () const |
| void | setJoins (const QVector< OpenSWMM::Render::JoinSpec > &joins) |
| const OpenSWMM::Render::DiagramSpec & | diagramSpec () const |
| void | setDiagramSpec (const OpenSWMM::Render::DiagramSpec &spec) |
| OpenSWMMVisWorkspace * | workspace () const |
| void | setBasicAuth (const QString &username, const QString &password) |
| Sets HTTP Basic authentication for all subsequent network requests. | |
| void | setHttpHeaders (const BasemapHttpHeaders &headers) |
| Sets arbitrary extra HTTP headers applied to every request. | |
| BasemapHttpHeaders | httpHeaders () const |
Properties | |
| QUrl | serviceUrl |
| QString | wmsVersion |
| QString | activeLayerName |
| QString | activeStyle |
| QString | imageFormat |
| bool | transparent |
Properties inherited from OpenSWMMVisLayer | |
| QString | Name |
| bool | Visible |
| double | Opacity |
| QString | LayerId |
| OpenSWMMVisLayerType | LayerType |
| QVector< OpenSWMMVisLayer * > | Children |
| QString | CRS |
Additional Inherited Members | |
Public Types inherited from OpenSWMMVisLayer | |
| enum | OpenSWMMVisLayerType { SWMMDefaultLayer = 0 , SWMMModelLayer = 1 , SWMMResultsLayer = 2 , SWMMGISLayer = 3 , SWMMVectorLayer = 4 , SWMMRasterLayer = 5 , SWMMImageryLayer = 6 , SWMMTabularDataLayer = 7 , SWMMTabularyTimeSeriesLayer = 8 , SWMMSubProjectLayer = 9 , SWMMWMSLayer = 10 , SWMMWMTSLayer = 11 , SWMM2DMeshLayer = 12 , SWMM2DResultsLayer = 13 , SWMMAnnotationLayer = 14 , SWMMFeatureLayer = 15 } |
| Discriminator for the concrete layer class. More... | |
Protected Member Functions inherited from OpenSWMMVisLayer | |
| bool | addChild (OpenSWMMVisLayer *child) |
| bool | removeChild (OpenSWMMVisLayer *child) |
| void | setLayerType (OpenSWMMVisLayerType type) |
Protected Attributes inherited from OpenSWMMVisLayer | |
| QByteArray | m_authHeader |
| "Basic <base64>" or empty | |
| BasemapHttpHeaders | m_httpHeaders |
| arbitrary headers (incl. "referer") | |
A map layer that fetches and displays images from an OGC WMS service.
Implements the OGC Web Map Service protocol (versions 1.1.1 and 1.3.0) using Qt's QNetworkAccessManager. No QGIS dependency is required.
On each render pass the layer issues a GetMap request matching the current canvas extent, CRS, and pixel dimensions. The response image is cached and painted until a new extent is set.
Before adding a WMSLayer to a canvas, call fetchCapabilities() and wait for capabilitiesFetched() to retrieve the list of available layers.
|
explicit |
Constructs a WMS layer with the given service endpoint URL.
| serviceUrl | Base URL of the WMS service, e.g. "https://example.org/wms?SERVICE=WMS". |
| parent | Qt parent object. |
|
override |
| QString WMSLayer::activeLayerName | ( | ) | const |
|
signal |
| QString WMSLayer::activeStyle | ( | ) | const |
|
signal |
|
inline |
Slice X.22 — shared basemap render adjustments.
|
signal |
Slice X.22 — basemap render adjustments updated.
|
signal |
Emitted when fetching capabilities fails.
|
signal |
Emitted when the GetCapabilities document has been parsed successfully.
| bool WMSLayer::capabilitiesReady | ( | ) | const |
|
inline |
| QString WMSLayer::crs | ( | ) | const |
|
overridevirtual |
Removes all QGraphicsItems belonging to this layer from the scene.
Reimplemented from OpenSWMMVisLayer.
| int WMSLayer::dpiMode | ( | ) | const |
| QMap< QString, QString > WMSLayer::extraParams | ( | ) | const |
Returns optional extra key=value pairs appended to every GetMap URL.
|
overridevirtual |
Triggers any asynchronous (or synchronous) tile/data fetch needed to populate this layer's internal cache for the given view state.
Called by MapCanvas::refreshLayerItems() for every visible raster layer BEFORE the MapRenderJob is started. This decouples tile-requesting (potentially async HTTP) from tile-drawing (synchronous, in the background render thread).
The default implementation is a no-op.
| extent | Visible geographic extent in canvas-CRS coordinates. |
| viewportSize | Pixel dimensions of the viewport. |
| srs | Canvas CRS. |
Reimplemented from OpenSWMMVisLayer.
| void WMSLayer::fetchCapabilities | ( | ) |
Asynchronously fetches the GetCapabilities document.
Emits capabilitiesFetched() on success or capabilitiesError() on failure.
| QString WMSLayer::imageFormat | ( | ) | const |
|
signal |
|
inlineoverridevirtual |
Returns true for layers that render into a raster buffer (WMS, WMTS, GISRaster) rather than populating QGraphicsItems.
The MapCanvas uses this to decide whether a layer participates in the background render job or in the QGraphicsScene overlay.
Reimplemented from OpenSWMMVisLayer.
| bool WMSLayer::isTransparent | ( | ) | const |
|
overridevirtual |
Called when the user changes the canvas CRS so layers can pre-compute any CRS-dependent transform caches.
| newCanvasSRS | The new canvas CRS. |
Reimplemented from OpenSWMMVisLayer.
|
overridevirtual |
Creates / updates QGraphicsItems representing this layer in the scene.
Derived classes override this to add their items to the scene. Items should be created in scene coordinates (= map CRS coordinates) after reprojecting from the layer's native CRS.
Called by the MapCanvas when:
| scene | The shared OpenSWMMVisScene to add items to. |
| canvasExtent | Visible extent in canvas-CRS coordinates. |
| canvasSRS | The CRS currently used by the MapCanvas. |
Implements OpenSWMMVisLayer.
|
overridevirtual |
Smart scene refresh — updates existing items instead of destroying and recreating.
Override in subclasses to provide efficient incremental updates. The default implementation calls depopulateScene() then populateScene(), which is backward-compatible but causes flicker for raster/tile layers.
Raster/WMS layers should override to keep persistent scene items and update them in-place. Vector layers should override to skip rebuilding when only the view extent has changed (items are already in scene coords).
Reimplemented from OpenSWMMVisLayer.
|
overridevirtual |
Renders this layer's content directly into painter.
Called by the background MapRenderJob for raster layers. The painter is backed by a QImage of imageSize pixels spanning the geographic area described by extent in CRS srs. Pixel (0,0) maps to (extent.xMin, extent.yMax).
The default implementation is a no-op. Raster layer subclasses (WMS, WMTS, GISRaster) override this to paint their cached tile/image data without touching QGraphicsScene.
| painter | Target painter (backed by viewport-sized QImage). |
| extent | Visible geographic extent in canvas-CRS coordinates. |
| imageSize | Pixel dimensions of the target image. |
| srs | Canvas CRS. |
Reimplemented from OpenSWMMVisLayer.
| WMSServiceInfo WMSLayer::serviceInfo | ( | ) | const |
| QUrl WMSLayer::serviceUrl | ( | ) | const |
| void WMSLayer::setActiveLayerName | ( | const QString & | layerName | ) |
| void WMSLayer::setActiveStyle | ( | const QString & | style | ) |
| void WMSLayer::setBasemapRenderParams | ( | const OpenSWMM::Render::BasemapRenderParams & | p | ) |
| void WMSLayer::setCrs | ( | const QString & | crs | ) |
e.g. "EPSG:3857".
| void WMSLayer::setDpiMode | ( | int | mode | ) |
DPI mode bitmask (0-7).
| void WMSLayer::setExtraParams | ( | const QMap< QString, QString > & | params | ) |
| void WMSLayer::setImageFormat | ( | const QString & | fmt | ) |
e.g. "image/png".
| void WMSLayer::setServiceInfo | ( | const WMSServiceInfo & | info | ) |
Injects an already-fetched service info (e.g. from a connection dialog) so the layer can render immediately without a second GetCapabilities round-trip.
Also sets m_wmsVersion from info.version when non-empty.
| void WMSLayer::setTransparent | ( | bool | transparent | ) |
|
inlineoverridevirtual |
Human-readable source of this layer: a file path, a service URL, or a description for in-memory / derived layers.
Default empty — the dialog shows "(none)". Concrete layers override to return their real origin (e.g. modelFilePath(), resultsFilePath(), serviceUrl(), or "(generated mesh)").
Reimplemented from OpenSWMMVisLayer.
|
signal |
Emitted when a GetMap tile has been downloaded and is ready to paint.
|
signal |
| QString WMSLayer::wmsVersion | ( | ) | const |
|
signal |
|
readwrite |
|
readwrite |
|
readwrite |
|
read |
|
readwrite |
|
read |