3#include <CesiumGeometry/AxisAlignedBox.h>
4#include <CesiumUtility/JsonValue.h>
5#include <CesiumVectorData/Library.h>
6#include <CesiumVectorData/VectorStyle.h>
26 GeometryCollection = 6,
53 std::optional<CesiumGeometry::AxisAlignedBox>
boundingBox = std::nullopt;
69 std::optional<VectorStyle>
style = std::nullopt;
89 std::optional<CesiumGeometry::AxisAlignedBox>
boundingBox = std::nullopt;
105 std::optional<VectorStyle>
style = std::nullopt;
126 std::optional<CesiumGeometry::AxisAlignedBox>
boundingBox = std::nullopt;
142 std::optional<VectorStyle>
style = std::nullopt;
164 std::optional<CesiumGeometry::AxisAlignedBox>
boundingBox = std::nullopt;
180 std::optional<VectorStyle>
style = std::nullopt;
209 std::optional<CesiumGeometry::AxisAlignedBox>
boundingBox = std::nullopt;
225 std::optional<VectorStyle>
style = std::nullopt;
247 std::optional<CesiumGeometry::AxisAlignedBox>
boundingBox = std::nullopt;
263 std::optional<VectorStyle>
style = std::nullopt;
275 GeoJsonObjectType::GeometryCollection;
287 std::optional<CesiumGeometry::AxisAlignedBox>
boundingBox = std::nullopt;
303 std::optional<VectorStyle>
style = std::nullopt;
329 std::variant<std::monostate, std::string, int64_t>&&
id,
330 std::unique_ptr<GeoJsonObject>&&
geometry,
331 std::optional<CesiumUtility::JsonValue::Object>&&
properties,
332 std::optional<CesiumGeometry::AxisAlignedBox>&&
boundingBox,
346 std::variant<std::monostate, std::string, int64_t>
id = std::monostate();
363 std::optional<CesiumGeometry::AxisAlignedBox>
boundingBox = std::nullopt;
379 std::optional<VectorStyle>
style = std::nullopt;
389 GeoJsonObjectType::FeatureCollection;
400 std::optional<CesiumGeometry::AxisAlignedBox>
boundingBox = std::nullopt;
416 std::optional<VectorStyle>
style = std::nullopt;
std::map< std::string, JsonValue > Object
The type to represent an Object JSON value.
Classes for loading vector data such as GeoJSON.
std::string_view geoJsonObjectTypeToString(GeoJsonObjectType type)
Returns the name of a GeoJsonObjectType value.
std::variant< GeoJsonPoint, GeoJsonMultiPoint, GeoJsonLineString, GeoJsonMultiLineString, GeoJsonPolygon, GeoJsonMultiPolygon, GeoJsonGeometryCollection, GeoJsonFeature, GeoJsonFeatureCollection > GeoJsonObjectVariant
Every possible object that can be specified in a GeoJSON document.
GeoJsonObjectType
A type of object in GeoJson data.
A FeatureCollection represents any number of GeoJsonFeature objects.
std::vector< GeoJsonObject > features
The GeoJsonFeature objects contained in this FeatureCollection.
static constexpr GeoJsonObjectType TYPE
The GeoJsonObjectType for a FeatureCollection.
std::optional< CesiumGeometry::AxisAlignedBox > boundingBox
The bounding box associated with this GeoJsonFeatureCollection value, if any.
std::optional< VectorStyle > style
The style to apply to this object as well as any child object. If not set, the style of any parent ob...
CesiumUtility::JsonValue::Object foreignMembers
Any members specified on this object that are not part of the specification for this object.
A GeoJsonFeature object represents a spatially bounded "thing." It is a collection of information tha...
std::optional< VectorStyle > style
The style to apply to this object as well as any child object. If not set, the style of any parent ob...
GeoJsonFeature(const GeoJsonFeature &rhs)
Copy constructor.
CesiumUtility::JsonValue::Object foreignMembers
Any members specified on this object that are not part of the specification for this object.
std::optional< CesiumUtility::JsonValue::Object > properties
The set of additional properties specified on this Feature, if any.
GeoJsonFeature(std::variant< std::monostate, std::string, int64_t > &&id, std::unique_ptr< GeoJsonObject > &&geometry, std::optional< CesiumUtility::JsonValue::Object > &&properties, std::optional< CesiumGeometry::AxisAlignedBox > &&boundingBox, CesiumUtility::JsonValue::Object &&foreignMembers)
Creates a new GeoJsonFeature with the given values.
GeoJsonFeature & operator=(const GeoJsonFeature &rhs)
Copy assignment operator.
GeoJsonFeature()=default
Default constructor.
static constexpr GeoJsonObjectType TYPE
The GeoJsonObjectType for a Feature.
GeoJsonFeature & operator=(GeoJsonFeature &&rhs) noexcept=default
Move assignment operator.
std::optional< CesiumGeometry::AxisAlignedBox > boundingBox
The bounding box associated with this Feature value, if any.
GeoJsonFeature(GeoJsonFeature &&rhs) noexcept=default
Move constructor.
std::unique_ptr< GeoJsonObject > geometry
The GeoJsonGeometryObject associated with this Feature, if any.
A GeometryCollection represents any number of GeoJsonObject objects.
std::optional< VectorStyle > style
The style to apply to this object as well as any child object. If not set, the style of any parent ob...
static constexpr GeoJsonObjectType TYPE
The GeoJsonObjectType for a GeometryCollection.
std::vector< GeoJsonObject > geometries
The GeoJsonObject values contained in this GeometryCollection.
std::optional< CesiumGeometry::AxisAlignedBox > boundingBox
The bounding box associated with this GeometryCollection value, if any.
CesiumUtility::JsonValue::Object foreignMembers
Any members specified on this object that are not part of the specification for this object.
A LineString geometry object.
std::vector< glm::dvec3 > coordinates
The list of Cartographic coordinates making up this LineString.
std::optional< CesiumGeometry::AxisAlignedBox > boundingBox
The bounding box associated with this LineString value, if any.
static constexpr GeoJsonObjectType TYPE
The GeoJsonObjectType for a LineString.
std::optional< VectorStyle > style
The style to apply to this object as well as any child object. If not set, the style of any parent ob...
CesiumUtility::JsonValue::Object foreignMembers
Any members specified on this object that are not part of the specification for this object.
A MultiLineString geometry object.
CesiumUtility::JsonValue::Object foreignMembers
Any members specified on this object that are not part of the specification for this object.
std::vector< std::vector< glm::dvec3 > > coordinates
The list of Cartographic coordinates making up this MultiLineString.
std::optional< VectorStyle > style
The style to apply to this object as well as any child object. If not set, the style of any parent ob...
std::optional< CesiumGeometry::AxisAlignedBox > boundingBox
The bounding box associated with this MultiLineString value, if any.
static constexpr GeoJsonObjectType TYPE
The GeoJsonObjectType for a MultiLineString.
A MultiPoint geometry object.
std::optional< VectorStyle > style
The style to apply to this object as well as any child object. If not set, the style of any parent ob...
static constexpr GeoJsonObjectType TYPE
The GeoJsonObjectType for a MultiPoint.
std::optional< CesiumGeometry::AxisAlignedBox > boundingBox
The bounding box associated with this MultiPoint value, if any.
CesiumUtility::JsonValue::Object foreignMembers
Any members specified on this object that are not part of the specification for this object.
std::vector< glm::dvec3 > coordinates
The list of Cartographic coordinates for this MultiPoint.
A 'MultiPolygon' geometry object.
std::vector< std::vector< std::vector< glm::dvec3 > > > coordinates
The list of Polygons making up this MultiPolygon. Each entry has equivalent rules to the coordinates ...
std::optional< VectorStyle > style
The style to apply to this object as well as any child object. If not set, the style of any parent ob...
CesiumUtility::JsonValue::Object foreignMembers
Any members specified on this object that are not part of the specification for this object.
static constexpr GeoJsonObjectType TYPE
The GeoJsonObjectType for a MultiPolygon.
std::optional< CesiumGeometry::AxisAlignedBox > boundingBox
The bounding box associated with this MultiPolygon value, if any.
An object in a GeoJSON document.
static constexpr GeoJsonObjectType TYPE
The GeoJsonObjectType for a Point.
std::optional< CesiumGeometry::AxisAlignedBox > boundingBox
The bounding box associated with this Point value, if any.
CesiumUtility::JsonValue::Object foreignMembers
Any members specified on this object that are not part of the specification for this object.
glm::dvec3 coordinates
The Cartographic coordinates for this Point.
std::optional< VectorStyle > style
The style to apply to this object as well as any child object. If not set, the style of any parent ob...
A Polygon geometry object.
std::optional< CesiumGeometry::AxisAlignedBox > boundingBox
The bounding box associated with this Polygon value, if any.
std::vector< std::vector< glm::dvec3 > > coordinates
The list of linear rings making up this Polygon, each one defined by a set of four or more Cartograph...
static constexpr GeoJsonObjectType TYPE
The GeoJsonObjectType for a Polygon.
CesiumUtility::JsonValue::Object foreignMembers
Any members specified on this object that are not part of the specification for this object.
std::optional< VectorStyle > style
The style to apply to this object as well as any child object. If not set, the style of any parent ob...