66 lines
2.4 KiB
C++
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);
|
|
}
|