// Copyright 2020-2025 CesiumGS, Inc. and Contributors #include "CesiumAzureMapsRasterOverlay.h" #include #include 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 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( 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); }