41 const std::string& name,
43 const std::string& ionAccessToken,
45 const std::string& ionAssetEndpointUrl =
"https://api.cesium.com/");
85 const
std::
string& name,
86 const
std::
string& overlayUrl,
87 const
std::
string& ionAccessToken,
92 std::string _overlayUrl;
93 std::string _ionAccessToken;
94 bool _needsAuthHeader;
95 std::optional<std::string> _assetOptions;
99 struct AssetEndpointAttribution {
101 bool collapsible =
true;
104 struct ExternalAssetEndpoint
106 ExternalAssetEndpoint() noexcept = default;
107 ~ExternalAssetEndpoint() noexcept = default;
108 ExternalAssetEndpoint(const ExternalAssetEndpoint&) noexcept = default;
109 ExternalAssetEndpoint(ExternalAssetEndpoint&&) noexcept = default;
111 std::chrono::steady_clock::time_point requestTime{};
112 std::string externalType{};
113 std::vector<AssetEndpointAttribution> attributions{};
114 std::shared_ptr<CesiumAsync::IAssetRequest> pRequestThatFailed{};
117 struct TileMapService {
119 std::string accessToken;
125 std::string tilesetId;
135 std::string imageFormat;
144 std::string mapStyle;
148 std::variant<std::monostate, TileMapService, Azure2D, Google2D, Bing>
151 void parseAzure2DOptions(
const rapidjson::Document& ionResponse);
152 void parseGoogle2DOptions(
const rapidjson::Document& ionResponse);
153 void parseBingOptions(
const rapidjson::Document& ionResponse);
154 void parseTileMapServiceOptions(
const rapidjson::Document& ionResponse);
157 static std::unordered_map<std::string, ExternalAssetEndpoint> endpointCache;
159 using EndpointDepot = CesiumAsync::SharedAssetDepot<
160 ExternalAssetEndpoint,
161 CesiumAsync::NetworkAssetDescriptor,
162 RasterOverlayExternals>;
164 static CesiumUtility::IntrusivePointer<EndpointDepot> getEndpointCache();
IonRasterOverlay(const std::string &name, int64_t ionAssetID, const std::string &ionAccessToken, const RasterOverlayOptions &overlayOptions={}, const std::string &ionAssetEndpointUrl="https://api.cesium.com/")
Creates a new instance.