SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
basemapconnection.h
Go to the documentation of this file.
1
17#ifndef BASEMAPCONNECTION_H
18#define BASEMAPCONNECTION_H
19
20#include <QMap>
21#include <QString>
22
23// ---------------------------------------------------------------------------
24// Types shared across connection structs
25// ---------------------------------------------------------------------------
26
33using BasemapHttpHeaders = QMap<QString, QString>;
34
39enum class TileAxisOrder
40{
41 ZXY = 0,
42 ZYX = 1,
43};
44
45// ---------------------------------------------------------------------------
46// Per-connection auth credentials (runtime only — never persisted in JSON)
47// ---------------------------------------------------------------------------
48
55{
56 QString username;
57 QString password;
58
59 [[nodiscard]] bool isEmpty() const { return username.isEmpty() && password.isEmpty(); }
60};
61
62// ---------------------------------------------------------------------------
63// XYZ tile connection
64// ---------------------------------------------------------------------------
65
71{
72 QString name;
73 QString urlTemplate;
74 int zMin = 0;
75 int zMax = 19;
87 bool isBuiltin = false;
92 static QList<XYZConnection> builtins()
93 {
94 return {
95 { "OpenStreetMap",
96 "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
97 0, 19, 0, TileAxisOrder::ZXY, {}, true },
98 { "CartoDB Positron",
99 "https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}@2x.png",
100 0, 20, 2, TileAxisOrder::ZXY, {}, true },
101 { "CartoDB Dark Matter",
102 "https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}@2x.png",
103 0, 20, 2, TileAxisOrder::ZXY, {}, true },
104 { "Stadia Alidade Smooth",
105 "https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}@2x.png",
106 0, 20, 2, TileAxisOrder::ZXY, {}, true },
107 { "ESRI World Imagery",
108 "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
109 0, 23, 0, TileAxisOrder::ZXY, {}, true },
110 };
111 }
112};
113
114// ---------------------------------------------------------------------------
115// WMS / WMTS connection (protocol auto-detected at Connect time)
116// ---------------------------------------------------------------------------
117
127{
128 QString name;
129 QString url;
130
131 // --- Layer selection (populated after Connect) ---
132 QString layerName;
133 QString style;
134 QString imageFormat = "image/png";
135 QString crs = "EPSG:3857";
138 // --- Advanced options (mirrors QGIS WMS provider settings) ---
142 int dpiMode = 7;
144 bool ignoreGetMapURI = false;
148
150};
151
152// ---------------------------------------------------------------------------
153// WCS (Web Coverage Service) connection
154// ---------------------------------------------------------------------------
155
168{
169 QString name;
170 QString url;
175 QString version = QStringLiteral("2.0.1");
176
177 // --- Coverage selection (populated after Connect + DescribeCoverage) ---
178 QString coverageId;
179 QString outputCrs = QStringLiteral("EPSG:4326");
180 QString outputFormat = QStringLiteral("image/tiff");
185 QString rangeSubset;
186 QString interpolation = QStringLiteral("nearest");
187
189};
190
191// ---------------------------------------------------------------------------
192// WFS connection
193// ---------------------------------------------------------------------------
194
211{
212 QString name;
213 QString url;
222 QString version;
223
225 QString typeName;
226
228};
229
230// ---------------------------------------------------------------------------
231// ArcGIS REST connection
232// ---------------------------------------------------------------------------
233
265
266// ---------------------------------------------------------------------------
267// Local raster connection
268// ---------------------------------------------------------------------------
269
279{
280 QString name;
281 QString filePath;
283 QString crsAuthCode;
284};
285
286#endif // BASEMAPCONNECTION_H
QMap< QString, QString > BasemapHttpHeaders
Arbitrary HTTP header map for basemap requests.
Definition basemapconnection.h:33
TileAxisOrder
Controls how {x}/{y} tile coordinates are ordered in the URL.
Definition basemapconnection.h:40
Parameters for an ArcGIS REST tiled MapServer service.
Definition basemapconnection.h:246
QString communityEndpoint
ArcGIS Enterprise Portal community endpoint. Example: https://portal.example.com/arcgis/sharing/rest/...
Definition basemapconnection.h:261
QString name
Definition basemapconnection.h:247
QString contentEndpoint
ArcGIS Enterprise Portal content endpoint. Example: https://portal.example.com/arcgis/sharing/rest/co...
Definition basemapconnection.h:255
QString urlPrefix
Definition basemapconnection.h:249
QString url
Definition basemapconnection.h:248
BasemapHttpHeaders httpHeaders
Definition basemapconnection.h:263
Username + password pair. Stored encrypted in QSettings by BasemapConnectionStore; never written to p...
Definition basemapconnection.h:55
QString username
Definition basemapconnection.h:56
bool isEmpty() const
Definition basemapconnection.h:59
QString password
Definition basemapconnection.h:57
Parameters for a local raster (GeoTIFF/PNG/JPEG/...) basemap.
Definition basemapconnection.h:279
QString crsAuthCode
Definition basemapconnection.h:283
QString filePath
Definition basemapconnection.h:281
QString name
Definition basemapconnection.h:280
QString worldFilePath
Definition basemapconnection.h:282
Parameters for an OGC Web Coverage Service (WCS 1.1.x / 2.0) source.
Definition basemapconnection.h:168
QString outputCrs
Definition basemapconnection.h:179
QString version
Negotiated WCS version string ("1.0.0", "1.1.2", "2.0.1"). Populated at connect time; default targets...
Definition basemapconnection.h:175
QString coverageId
Definition basemapconnection.h:178
QString name
Definition basemapconnection.h:169
QString url
Definition basemapconnection.h:170
QString interpolation
Definition basemapconnection.h:186
QString rangeSubset
Optional WCS range subset string, e.g. "band[1]". Empty string = all fields (default).
Definition basemapconnection.h:185
QString outputFormat
Definition basemapconnection.h:180
BasemapHttpHeaders httpHeaders
Definition basemapconnection.h:188
Parameters for an OGC Web Feature Service (WFS 1.x / 2.0) source.
Definition basemapconnection.h:211
BasemapHttpHeaders httpHeaders
Definition basemapconnection.h:227
QString name
Definition basemapconnection.h:212
QString version
Version string the service answered in ("1.1.0", "2.0.0").
Definition basemapconnection.h:222
QString typeName
Selected feature type, prefixed as the service spells it ("bag:pand").
Definition basemapconnection.h:225
QString url
Definition basemapconnection.h:213
Parameters for an OGC WMS or WMTS service.
Definition basemapconnection.h:127
QString tileMatrixSet
Definition basemapconnection.h:136
QString imageFormat
Definition basemapconnection.h:134
QString crs
Definition basemapconnection.h:135
bool ignoreAxisOrientation
Definition basemapconnection.h:145
BasemapHttpHeaders httpHeaders
Definition basemapconnection.h:149
QString layerName
Definition basemapconnection.h:132
bool invertAxisOrientation
Definition basemapconnection.h:146
bool smoothPixmapTransform
Definition basemapconnection.h:147
bool ignoreGetMapURI
Definition basemapconnection.h:144
QString name
Definition basemapconnection.h:128
int tilePixelRatio
Definition basemapconnection.h:143
QString style
Definition basemapconnection.h:133
int dpiMode
DPI mode bitmask: 0=None, 1=QGIS, 2=UMN, 4=GeoServer, 7=All (default).
Definition basemapconnection.h:142
QString url
Definition basemapconnection.h:129
All parameters needed to configure an XYZ (slippy-map) tile layer.
Definition basemapconnection.h:71
TileAxisOrder axisOrder
Definition basemapconnection.h:85
QString urlTemplate
Definition basemapconnection.h:73
int zMax
Definition basemapconnection.h:75
int tilePixelRatio
DPI rendering hint. 0 = Undefined (use tile dimensions as-is) 1 = Standard 96 DPI (256 px tiles) 2 = ...
Definition basemapconnection.h:84
QString name
Definition basemapconnection.h:72
bool isBuiltin
Definition basemapconnection.h:87
static QList< XYZConnection > builtins()
Returns the list of pre-populated, non-deletable built-in connections.
Definition basemapconnection.h:92
BasemapHttpHeaders httpHeaders
Definition basemapconnection.h:86
int zMin
Definition basemapconnection.h:74