Cesium for Unreal 2.13.2
Loading...
Searching...
No Matches
CesiumWebMapTileServiceRasterOverlay.h
Go to the documentation of this file.
1// Copyright 2020-2024 CesiumGS, Inc. and Contributors
2
3#pragma once
4
6#include "Components/ActorComponent.h"
7#include "CoreMinimal.h"
8#include "CesiumWebMapTileServiceRasterOverlay.generated.h"
9
10/**
11 * Specifies the type of projection used for projecting a Web Map Tile Service
12 * raster overlay.
13 */
14UENUM(BlueprintType)
16 /**
17 * The raster overlay is projected using Web Mercator.
18 */
20
21 /**
22 * The raster overlay is projected using a geographic projection.
23 */
25};
26
27/**
28 * A raster overlay that directly accesses a Web Map Tile Service (WMTS) server.
29 * If you're using a Web Map Tile Service via Cesium ion, use the "Cesium ion
30 * Raster Overlay" component instead.
31 */
32UCLASS(ClassGroup = Cesium, meta = (BlueprintSpawnableComponent))
34 : public UCesiumRasterOverlay {
35 GENERATED_BODY()
36
37public:
38 /**
39 * The base URL of the Web Map Tile Service (WMTS).
40 * This URL should not include query parameters. For example:
41 * https://tile.openstreetmap.org/{TileMatrix}/{TileCol}/{TileRow}.png
42 */
43 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
44 FString BaseUrl;
45
46 /**
47 * The layer name for WMTS requests.
48 */
49 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
50 FString Layer;
51
52 /**
53 * The style name for WMTS requests.
54 */
55 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
56 FString Style;
57
58 /**
59 * The MIME type for images to retrieve from the server.
60 */
61 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
62 FString Format = "image/jpeg";
63
64 /**
65 * The tile matrix set identifier for WMTS requests.
66 */
67 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
68 FString TileMatrixSetID;
69
70 /**
71 * The prefix to use for the tile matrix set labels. For instance, setting
72 * "EPSG:4326:" as prefix generates label list ["EPSG:4326:0", "EPSG:4326:1",
73 * "EPSG:4326:2", ...]
74 * Only applicable when "Specify Tile Matrix Set Labels" is false.
75 */
76 UPROPERTY(
77 EditAnywhere,
78 BlueprintReadWrite,
79 Category = "Cesium",
80 meta = (EditCondition = "!bSpecifyTileMatrixSetLabels"))
81 FString TileMatrixSetLabelPrefix;
82
83 /**
84 * Set this to true to specify tile matrix set labels manually. If false, the
85 * labels will be constructed from the specified levels and prefix (if one is
86 * specified).
87 */
88 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
89 bool bSpecifyTileMatrixSetLabels = false;
90
91 /**
92 * The manually specified tile matrix set labels.
93 *
94 * Only applicable when "Specify Tile Matrix Set Labels" is true.
95 */
96 UPROPERTY(
97 EditAnywhere,
98 BlueprintReadWrite,
99 Category = "Cesium",
100 meta = (EditCondition = "bSpecifyTileMatrixSetLabels"))
101 TArray<FString> TileMatrixSetLabels;
102
103 UPROPERTY(
104 meta =
105 (DeprecatedProperty, DeprecationMessage = "Use Projection instead."))
106 bool UseWebMercatorProjection_DEPRECATED;
107
108 /**
109 * The type of projection used to project the WMTS imagery onto the globe.
110 * For instance, EPSG:4326 uses geographic projection and EPSG:3857 uses Web
111 * Mercator.
112 */
113 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
116
117 /**
118 * Set this to true to specify the quadtree tiling scheme according to the
119 * specified root tile numbers and projected bounding rectangle. If false, the
120 * tiling scheme will be deduced from the projection.
121 */
122 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
123 bool bSpecifyTilingScheme = false;
124
125 /**
126 * The number of tiles corresponding to TileCol, also known as
127 * TileMatrixWidth. If specified, this determines the number of tiles at the
128 * root of the quadtree tiling scheme in the X direction.
129 *
130 * Only applicable if "Specify Tiling Scheme" is set to true.
131 */
132 UPROPERTY(
133 EditAnywhere,
134 BlueprintReadWrite,
135 Category = "Cesium",
136 meta = (EditCondition = "bSpecifyTilingScheme", ClampMin = 1))
137 int32 RootTilesX = 1;
138
139 /**
140 * The number of tiles corresponding to TileRow, also known as
141 * TileMatrixHeight. If specified, this determines the number of tiles at the
142 * root of the quadtree tiling scheme in the Y direction.
143 *
144 * Only applicable if "Specify Tiling Scheme" is set to true.
145 */
146 UPROPERTY(
147 EditAnywhere,
148 BlueprintReadWrite,
149 Category = "Cesium",
150 meta = (EditCondition = "bSpecifyTilingScheme", ClampMin = 1))
151 int32 RootTilesY = 1;
152
153 /**
154 * The west boundary of the bounding rectangle used for the quadtree tiling
155 * scheme. Specified in longitude degrees in the range [-180, 180].
156 *
157 * Only applicable if "Specify Tiling Scheme" is set to true.
158 */
159 UPROPERTY(
160 Category = "Cesium",
161 EditAnywhere,
162 BlueprintReadWrite,
163 meta =
164 (EditCondition = "bSpecifyTilingScheme",
165 ClampMin = -180.0,
166 ClampMax = 180.0))
167 double RectangleWest = -180;
168
169 /**
170 * The south boundary of the bounding rectangle used for the quadtree tiling
171 * scheme. Specified in latitude degrees in the range [-90, 90].
172 *
173 * Only applicable if "Specify Tiling Scheme" is set to true.
174 */
175 UPROPERTY(
176 Category = "Cesium",
177 Category = "Cesium",
178 EditAnywhere,
179 BlueprintReadWrite,
180 meta =
181 (EditCondition = "bSpecifyTilingScheme",
182 ClampMin = -90.0,
183 ClampMax = 90.0))
184 double RectangleSouth = -90;
185
186 /**
187 * The east boundary of the bounding rectangle used for the quadtree tiling
188 * scheme. Specified in longitude degrees in the range [-180, 180].
189 *
190 * Only applicable if "Specify Tiling Scheme" is set to true.
191 */
192 UPROPERTY(
193 Category = "Cesium",
194 EditAnywhere,
195 BlueprintReadWrite,
196 meta =
197 (EditCondition = "bSpecifyTilingScheme",
198 ClampMin = -180.0,
199 ClampMax = 180.0))
200 double RectangleEast = 180;
201
202 /**
203 * The north boundary of the bounding rectangle used for the quadtree tiling
204 * scheme. Specified in latitude degrees in the range [-90, 90].
205 *
206 * Only applicable if "Specify Tiling Scheme" is set to true.
207 */
208 UPROPERTY(
209 Category = "Cesium",
210 EditAnywhere,
211 BlueprintReadWrite,
212 meta =
213 (EditCondition = "bSpecifyTilingScheme",
214 ClampMin = -90.0,
215 ClampMax = 90.0))
216 double RectangleNorth = 90;
217
218 /**
219 * Set this to true to directly specify the minimum and maximum zoom levels
220 * available from the server. If false, the minimum and maximum zoom levels
221 * will be retrieved from the server's tilemapresource.xml file.
222 */
223 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
224 bool bSpecifyZoomLevels = false;
225
226 /**
227 * Minimum zoom level.
228 *
229 * Take care when specifying this that the number of tiles at the minimum
230 * level is small, such as four or less. A larger number is likely to result
231 * in rendering problems.
232 */
233 UPROPERTY(
234 EditAnywhere,
235 BlueprintReadWrite,
236 Category = "Cesium",
237 meta = (EditCondition = "bSpecifyZoomLevels", ClampMin = 0))
238 int32 MinimumLevel = 0;
239
240 /**
241 * Maximum zoom level.
242 */
243 UPROPERTY(
244 EditAnywhere,
245 BlueprintReadWrite,
246 Category = "Cesium",
247 meta = (EditCondition = "bSpecifyZoomLevels", ClampMin = 0))
248 int32 MaximumLevel = 25;
249
250 /**
251 * The pixel width of the image tiles.
252 */
253 UPROPERTY(
254 EditAnywhere,
255 BlueprintReadWrite,
256 Category = "Cesium",
257 meta = (ClampMin = 64, ClampMax = 2048))
258 int32 TileWidth = 256;
259
260 /**
261 * The pixel height of the image tiles.
262 */
263 UPROPERTY(
264 EditAnywhere,
265 BlueprintReadWrite,
266 Category = "Cesium",
267 meta = (ClampMin = 64, ClampMax = 2048))
268 int32 TileHeight = 256;
269
270 /**
271 * HTTP headers to be attached to each request made for this raster overlay.
272 */
273 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
274 TMap<FString, FString> RequestHeaders;
275
276 virtual void Serialize(FArchive& Ar) override;
277
278protected:
279 virtual std::unique_ptr<CesiumRasterOverlays::RasterOverlay> CreateOverlay(
280 const CesiumRasterOverlays::RasterOverlayOptions& options = {}) override;
281};
ECesiumWebMapTileServiceRasterOverlayProjection
Specifies the type of projection used for projecting a Web Map Tile Service raster overlay.
@ WebMercator
The raster overlay is projected using Web Mercator.
@ Geographic
The raster overlay is projected using a geographic projection.
A quadtree pyramid of 2D raster images meant to be draped over a Cesium 3D Tileset.
A raster overlay that directly accesses a Web Map Tile Service (WMTS) server.
STL namespace.