24class QNetworkAccessManager;
26class OGRSpatialReference;
27class OGRCoordinateTransformation;
58 QObject *
parent =
nullptr);
71 const QSize &viewportSize,
74 void render(QPainter *painter,
76 const QSize &imageSize,
93 [[nodiscard]] QString
urlTemplate()
const {
return m_urlTemplate; }
109 void onTileReply(QNetworkReply *reply,
const QString &
key);
113 int bestZoom(
const QRectF &wgs84Extent,
int vpWidth)
const;
114 QRectF tileBoundsWGS84(
int z,
int x,
int y)
const;
115 void latLonToTileXY(
double lat,
double lon,
int z,
int &tx,
int &ty)
const;
118 QRectF tileCanvasBounds(
const QRectF &wgs84Bounds,
122 void fetchTile(
int z,
int x,
int y);
123 QString buildUrl(
int z,
int x,
int y)
const;
127 QString m_urlTemplate;
128 QNetworkAccessManager *m_nam =
nullptr;
129 QCache<QString, QImage> m_tileCache;
130 QSet<QString> m_inflight;
140 mutable QMutex m_tileCacheMutex;
141 std::atomic<quint64> m_tileEpoch {0};
146 quint64 m_memoEpoch = std::numeric_limits<quint64>::max();
147 int m_subdomainIdx = 0;
148 int m_tileSizePx = 256;
149 int m_tilePixelRatio = 0;
158 OGRSpatialReference *m_wgs84 =
nullptr;
159 OGRSpatialReference *m_merc3857 =
nullptr;
160 OGRCoordinateTransformation *m_toWGS84 =
nullptr;
161 OGRCoordinateTransformation *m_fromWGS84 =
nullptr;
162 mutable QMutex m_transformMutex;
Plain data structs for all supported basemap connection types.
TileAxisOrder
Controls how {x}/{y} tile coordinates are ordered in the URL.
Definition basemapconnection.h:40
Shared visual-adjustment parameters for raster basemaps.
An axis-aligned bounding box in the coordinate space of a given CRS.
Definition mapextent.h:26
Abstract base class for all layers displayed in the MapCanvas.
Definition openswmmvislayer.h:116
MapExtent extent() const
Returns the layer extent in the layer's own CRS.
Definition openswmmvislayer.cpp:252
Represents a coordinate reference system backed by a GDAL OGRSpatialReference.
Definition spatialreferencesystem.h:28
Renders a standard XYZ (slippy-map) tile service as a raster basemap.
Definition xyztilelayer.h:41
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 xyztilelayer.cpp:108
void setTilePixelRatio(int ratio)
Definition xyztilelayer.h:90
bool isBasemapLayer() const override
Definition xyztilelayer.h:68
void basemapRenderParamsChanged()
QString sourceDescription() const override
Human-readable source of this layer: a file path, a service URL, or a description for in-memory / der...
Definition xyztilelayer.h:97
bool isRasterLayer() const override
Returns true for layers that render into a raster buffer (WMS, WMTS, GISRaster) rather than populatin...
Definition xyztilelayer.h:63
void setAxisOrder(TileAxisOrder order)
Definition xyztilelayer.h:91
int tilePixelRatio() const
Definition xyztilelayer.h:94
QString urlTemplate() const
Definition xyztilelayer.h:93
TileAxisOrder axisOrder() const
Definition xyztilelayer.h:95
friend class XYZTileLayerAccessor
Definition xyztilelayer.h:125
int tileCacheMaxSize() const
Definition xyztilelayer.h:87
void populateScene(QGraphicsScene *, const MapExtent &, const SpatialReferenceSystem *) override
Creates / updates QGraphicsItems representing this layer in the scene.
Definition xyztilelayer.h:80
void setBasemapRenderParams(const OpenSWMM::Render::BasemapRenderParams &p)
Definition xyztilelayer.cpp:899
void render(QPainter *painter, const MapExtent &extent, const QSize &imageSize, const SpatialReferenceSystem *canvasSRS) override
Renders this layer's content directly into painter.
Definition xyztilelayer.cpp:469
~XYZTileLayer() override
Definition xyztilelayer.cpp:96
const OpenSWMM::Render::BasemapRenderParams & basemapRenderParams() const
Definition xyztilelayer.h:102
void fetchCache(const MapExtent &extent, const QSize &viewportSize, const SpatialReferenceSystem *canvasSRS) override
Triggers any asynchronous (or synchronous) tile/data fetch needed to populate this layer's internal c...
Definition xyztilelayer.cpp:420
void setTileCacheMaxSize(int count)
Definition xyztilelayer.cpp:909
ArrowPlacement p
Definition linesymbollayer.cpp:27
const char * key
Definition meshcellparams.cpp:24
Abstract base class for all map layers displayed in the MapCanvas.
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
Brightness / contrast / saturation / resampling for a basemap.
Definition basemaprenderparams.h:32