147 lines
5.2 KiB
C++
147 lines
5.2 KiB
C++
// Copyright 2020-2025 CesiumGS, Inc. and Contributors
|
|
|
|
#pragma once
|
|
|
|
#include "CesiumRasterOverlay.h"
|
|
#include "CoreMinimal.h"
|
|
#include "CesiumAzureMapsRasterOverlay.generated.h"
|
|
|
|
/**
|
|
* Supported values for the `TilesetId` property.
|
|
*/
|
|
UENUM(BlueprintType)
|
|
enum class EAzureMapsTilesetId : uint8 {
|
|
/**
|
|
* All roadmap layers with Azure Maps' main style.
|
|
*/
|
|
BaseRoad UMETA(DisplayName = "Base"),
|
|
/**
|
|
* All roadmap layers with Azure Maps' dark grey style.
|
|
*/
|
|
BaseDarkGrey UMETA(DisplayName = "Base (Dark Grey)"),
|
|
/**
|
|
* Label data in Azure Maps' main style.
|
|
*/
|
|
BaseLabelsRoad UMETA(DisplayName = "Labels"),
|
|
/**
|
|
* Label data in Azure Maps' dark grey style.
|
|
*/
|
|
BaseLabelsDarkGrey UMETA(DisplayName = "Labels (Dark Grey)"),
|
|
/**
|
|
* Road, boundary, and label data in Azure Maps' main style.
|
|
*/
|
|
BaseHybridRoad UMETA(DisplayName = "Hybrid"),
|
|
/**
|
|
* Road, boundary, and label data in Azure Maps' dark grey style.
|
|
*/
|
|
BaseHybridDarkGrey UMETA(DisplayName = "Hybrid (Dark Grey)"),
|
|
/**
|
|
* A combination of satellite or aerial imagery. Only available for accounts
|
|
* under S1 and G2 pricing SKU.
|
|
*/
|
|
Imagery,
|
|
/**
|
|
* Shaded relief and terra layers.
|
|
*/
|
|
Terra,
|
|
/**
|
|
* Weather radar tiles. Latest weather radar images including areas of rain,
|
|
* snow, ice and mixed conditions.
|
|
*/
|
|
WeatherRadar UMETA(DisplayName = "Weather (Radar)"),
|
|
/**
|
|
* Weather infrared tiles. Latest infrared satellite images showing clouds by
|
|
* their temperature.
|
|
*/
|
|
WeatherInfrared UMETA(DisplayName = "Weather (Infrared)"),
|
|
/**
|
|
* Absolute traffic tiles in Azure Maps' main style.
|
|
*/
|
|
TrafficAbsolute UMETA(DisplayName = "Traffic (Absolute)"),
|
|
/**
|
|
* Relative traffic tiles in Azure Maps' main style. This filters out traffic
|
|
* data from smaller streets that are otherwise included in TrafficAbsolute.
|
|
*/
|
|
TrafficRelativeMain UMETA(DisplayName = "Traffic (Relative)"),
|
|
/**
|
|
* Relative traffic tiles in Azure Maps' dark style. This filters out traffic
|
|
* data from smaller streets that are otherwise included in TrafficAbsolute.
|
|
*/
|
|
TrafficRelativeDark UMETA(DisplayName = "Traffic (Relative, Dark)"),
|
|
/**
|
|
* Delay traffic tiles in Azure Maps' dark style. This only shows the points
|
|
* of delay along traffic routes that are otherwise included in
|
|
* TrafficAbsolute.
|
|
*/
|
|
TrafficDelay UMETA(DisplayName = "Traffic (Delay)"),
|
|
/**
|
|
* Reduced traffic tiles in Azure Maps' dark style. This shows the traffic
|
|
* routes and major delay points, but filters out some data that is otherwise
|
|
* included in TrafficAbsolute.
|
|
*/
|
|
TrafficReduced UMETA(DisplayName = "Traffic (Reduced)"),
|
|
};
|
|
|
|
/**
|
|
* A raster overlay that directly accesses Azure Maps. If you're using Azure
|
|
* Maps via Cesium ion, use the "Cesium ion Raster Overlay" component instead.
|
|
*/
|
|
UCLASS(ClassGroup = Cesium, meta = (BlueprintSpawnableComponent))
|
|
class CESIUMRUNTIME_API UCesiumAzureMapsRasterOverlay
|
|
: public UCesiumRasterOverlay {
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
/**
|
|
* The Azure Maps subscription key to use.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
|
|
FString Key;
|
|
|
|
/**
|
|
* The version number of Azure Maps API.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
|
|
FString ApiVersion = "2024-04-01";
|
|
|
|
/**
|
|
* The tileset ID to use.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
|
|
EAzureMapsTilesetId TilesetId = EAzureMapsTilesetId::BaseRoad;
|
|
|
|
/**
|
|
* The language in which search results should be returned. This should be one
|
|
* of the supported IETF language tags, case insensitive. When data in the
|
|
* specified language is not available for a specific field, default language
|
|
* is used.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
|
|
FString Language = "en-US";
|
|
|
|
/**
|
|
* The View parameter (also called the "user region" parameter) allows
|
|
* you to show the correct maps for a certain country/region for
|
|
* geopolitically disputed regions.
|
|
*
|
|
* Different countries/regions have different views of such regions, and the
|
|
* View parameter allows your application to comply with the view required by
|
|
* the country/region your application will be serving. By default, the View
|
|
* parameter is set to "Unified" even if you haven't defined it in the
|
|
* request. It is your responsibility to determine the location of your users,
|
|
* and then set the View parameter correctly for that location. Alternatively,
|
|
* you have the option to set 'View=Auto', which will return the map data
|
|
* based on the IP address of the request. The View parameter in Azure Maps
|
|
* must be used in compliance with applicable laws, including those regarding
|
|
* mapping, of the country/region where maps, images and other data and third
|
|
* party content that you are authorized to access via Azure Maps is made
|
|
* available. Example: view=IN.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
|
|
FString View = "US";
|
|
|
|
protected:
|
|
virtual std::unique_ptr<CesiumRasterOverlays::RasterOverlay> CreateOverlay(
|
|
const CesiumRasterOverlays::RasterOverlayOptions& options = {}) override;
|
|
};
|