cesium-native 0.50.0
Loading...
Searching...
No Matches
GeoJsonDocument.h
1#pragma once
2
3#include <CesiumAsync/AsyncSystem.h>
4#include <CesiumAsync/Future.h>
5#include <CesiumAsync/IAssetAccessor.h>
6#include <CesiumUtility/IntrusivePointer.h>
7#include <CesiumUtility/JsonValue.h>
8#include <CesiumUtility/ReferenceCounted.h>
9#include <CesiumUtility/Result.h>
10#include <CesiumVectorData/GeoJsonObject.h>
11#include <CesiumVectorData/Library.h>
12
13#include <glm/ext/vector_double3.hpp>
14
15#include <memory>
16#include <span>
17
19
25 std::string html;
31};
32
39class CESIUMVECTORDATA_API GeoJsonDocument {
40public:
50 const std::span<const std::byte>& bytes,
51 std::vector<VectorDocumentAttribution>&& attributions = {});
52
63 const rapidjson::Document& document,
64 std::vector<VectorDocumentAttribution>&& attributions = {});
65
82 const CesiumAsync::AsyncSystem& asyncSystem,
83 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor,
84 int64_t ionAssetID,
85 const std::string& ionAccessToken,
86 const std::string& ionAssetEndpointUrl = "https://api.cesium.com/");
87
102 const CesiumAsync::AsyncSystem& asyncSystem,
103 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor,
104 const std::string& url,
105 const std::vector<CesiumAsync::IAssetAccessor::THeader>& headers = {});
106
113 std::vector<VectorDocumentAttribution>&& attributions);
114
115 GeoJsonDocument() = default;
116
121
125 std::vector<VectorDocumentAttribution> attributions;
126
127private:
129 parseGeoJson(const rapidjson::Document& doc);
131 parseGeoJson(const std::span<const std::byte>& bytes);
132};
133} // namespace CesiumVectorData
A system for managing asynchronous requests and tasks.
Definition AsyncSystem.h:36
A value that will be available in the future, as produced by AsyncSystem.
Definition Future.h:29
GeoJsonDocument(GeoJsonObject &&rootObject, std::vector< VectorDocumentAttribution > &&attributions)
Creates a new GeoJsonDocument directly from a GeoJsonObject.
std::vector< VectorDocumentAttribution > attributions
Attribution information for this document.
static CesiumUtility::Result< GeoJsonDocument > fromGeoJson(const rapidjson::Document &document, std::vector< VectorDocumentAttribution > &&attributions={})
Attempts to parse a GeoJsonDocument from the provided JSON document.
static CesiumAsync::Future< CesiumUtility::Result< GeoJsonDocument > > fromCesiumIonAsset(const CesiumAsync::AsyncSystem &asyncSystem, const std::shared_ptr< CesiumAsync::IAssetAccessor > &pAssetAccessor, int64_t ionAssetID, const std::string &ionAccessToken, const std::string &ionAssetEndpointUrl="https://api.cesium.com/")
Attempts to load a GeoJsonDocument from a Cesium ion asset.
static CesiumUtility::Result< GeoJsonDocument > fromGeoJson(const std::span< const std::byte > &bytes, std::vector< VectorDocumentAttribution > &&attributions={})
Attempts to parse a GeoJsonDocument from the provided GeoJSON.
GeoJsonObject rootObject
The root object of the parsed GeoJSON.
static CesiumAsync::Future< CesiumUtility::Result< GeoJsonDocument > > fromUrl(const CesiumAsync::AsyncSystem &asyncSystem, const std::shared_ptr< CesiumAsync::IAssetAccessor > &pAssetAccessor, const std::string &url, const std::vector< CesiumAsync::IAssetAccessor::THeader > &headers={})
Attempts to load a GeoJsonDocument from the provided URL.
Classes for loading vector data such as GeoJSON.
Holds the result of an operation. If the operation succeeds, it will provide a value....
Definition Result.h:16
An object in a GeoJSON document.
Attribution that must be included with a vector document.
bool showOnScreen
If true, the attribution must be shown on screen. If false, it can be included in a popover instead.
std::string html
The HTML string containing attribution information to show.