ralpha-assets/Plugins/CesiumForUnreal/Source/CesiumRuntime/Private/CesiumAzureMapsRasterOverla...

66 lines
2.4 KiB
C++

// Copyright 2020-2025 CesiumGS, Inc. and Contributors
#include "CesiumAzureMapsRasterOverlay.h"
#include <Cesium3DTilesSelection/Tileset.h>
#include <CesiumRasterOverlays/AzureMapsRasterOverlay.h>
using namespace CesiumRasterOverlays;
namespace {
std::string getTilesetId(EAzureMapsTilesetId tilesetId) {
switch (tilesetId) {
case EAzureMapsTilesetId::BaseDarkGrey:
return AzureMapsTilesetId::baseDarkGrey;
case EAzureMapsTilesetId::BaseLabelsRoad:
return AzureMapsTilesetId::baseLabelsRoad;
case EAzureMapsTilesetId::BaseLabelsDarkGrey:
return AzureMapsTilesetId::baseLabelsDarkGrey;
case EAzureMapsTilesetId::BaseHybridRoad:
return AzureMapsTilesetId::baseHybridRoad;
case EAzureMapsTilesetId::BaseHybridDarkGrey:
return AzureMapsTilesetId::baseHybridDarkGrey;
case EAzureMapsTilesetId::Imagery:
return AzureMapsTilesetId::imagery;
case EAzureMapsTilesetId::Terra:
return AzureMapsTilesetId::terra;
case EAzureMapsTilesetId::WeatherRadar:
return AzureMapsTilesetId::weatherRadar;
case EAzureMapsTilesetId::WeatherInfrared:
return AzureMapsTilesetId::weatherInfrared;
case EAzureMapsTilesetId::TrafficAbsolute:
return AzureMapsTilesetId::trafficAbsolute;
case EAzureMapsTilesetId::TrafficRelativeMain:
return AzureMapsTilesetId::trafficRelativeMain;
case EAzureMapsTilesetId::TrafficRelativeDark:
return AzureMapsTilesetId::trafficRelativeDark;
case EAzureMapsTilesetId::TrafficDelay:
return AzureMapsTilesetId::trafficDelay;
case EAzureMapsTilesetId::TrafficReduced:
return AzureMapsTilesetId::trafficReduced;
case EAzureMapsTilesetId::BaseRoad:
default:
return AzureMapsTilesetId::baseRoad;
}
}
} // namespace
std::unique_ptr<CesiumRasterOverlays::RasterOverlay>
UCesiumAzureMapsRasterOverlay::CreateOverlay(
const CesiumRasterOverlays::RasterOverlayOptions& options) {
if (this->Key.IsEmpty()) {
// We must have a key to create this overlay.
return nullptr;
}
return std::make_unique<AzureMapsRasterOverlay>(
TCHAR_TO_UTF8(*this->MaterialLayerKey),
AzureMapsSessionParameters{
.key = TCHAR_TO_UTF8(*this->Key),
.apiVersion = TCHAR_TO_UTF8(*this->ApiVersion),
.tilesetId = getTilesetId(this->TilesetId),
.language = TCHAR_TO_UTF8(*this->Language),
.view = TCHAR_TO_UTF8(*this->View),
},
options);
}