123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- /**
- * GeometryTypes
- *
- * https://tools.ietf.org/html/rfc7946#section-1.4
- * The valid values for the "type" property of GeoJSON geometry objects.
- */
- export declare type GeometryTypes = "Point" | "LineString" | "Polygon" | "MultiPoint" | "MultiLineString" | "MultiPolygon" | "GeometryCollection";
- export declare type CollectionTypes = "FeatureCollection" | "GeometryCollection";
- /**
- * Types
- *
- * https://tools.ietf.org/html/rfc7946#section-1.4
- * The value values for the "type" property of GeoJSON Objects.
- */
- export declare type Types = "Feature" | GeometryTypes | CollectionTypes;
- /**
- * Bounding box
- *
- * https://tools.ietf.org/html/rfc7946#section-5
- * A GeoJSON object MAY have a member named "bbox" to include information on the coordinate range for its Geometries, Features, or FeatureCollections.
- * The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries,
- * with all axes of the most southwesterly point followed by all axes of the more northeasterly point.
- * The axes order of a bbox follows the axes order of geometries.
- */
- export declare type BBox2d = [number, number, number, number];
- export declare type BBox3d = [number, number, number, number, number, number];
- export declare type BBox = BBox2d | BBox3d;
- /**
- * Id
- *
- * https://tools.ietf.org/html/rfc7946#section-3.2
- * If a Feature has a commonly used identifier, that identifier SHOULD be included as a member of
- * the Feature object with the name "id", and the value of this member is either a JSON string or number.
- */
- export declare type Id = string | number;
- /**
- * Position
- *
- * https://tools.ietf.org/html/rfc7946#section-3.1.1
- * Array should contain between two and three elements.
- * The previous GeoJSON specification allowed more elements (e.g., which could be used to represent M values),
- * but the current specification only allows X, Y, and (optionally) Z to be defined.
- */
- export declare type Position = number[];
- /**
- * Properties
- *
- * https://tools.ietf.org/html/rfc7946#section-3.2
- * A Feature object has a member with the name "properties".
- * The value of the properties member is an object (any JSON object or a JSON null value).
- */
- export declare type Properties = {
- [name: string]: any;
- } | null;
- /**
- * Geometries
- */
- export declare type Geometries = Point | LineString | Polygon | MultiPoint | MultiLineString | MultiPolygon;
- /**
- * GeoJSON Object
- *
- * https://tools.ietf.org/html/rfc7946#section-3
- * The GeoJSON specification also allows [foreign members](https://tools.ietf.org/html/rfc7946#section-6.1)
- * Developers should use "&" type in TypeScript or extend the interface to add these foreign members.
- */
- export interface GeoJSONObject {
- /**
- * Specifies the type of GeoJSON object.
- */
- type: string;
- /**
- * Bounding box of the coordinate range of the object's Geometries, Features, or Feature Collections.
- * https://tools.ietf.org/html/rfc7946#section-5
- */
- bbox?: BBox;
- }
- /**
- * Geometry Object
- *
- * https://tools.ietf.org/html/rfc7946#section-3
- */
- export interface GeometryObject extends GeoJSONObject {
- type: GeometryTypes;
- }
- /**
- * Geometry
- *
- * https://tools.ietf.org/html/rfc7946#section-3
- */
- export interface Geometry extends GeoJSONObject {
- coordinates: Position | Position[] | Position[][] | Position[][][];
- }
- /**
- * Point Geometry Object
- *
- * https://tools.ietf.org/html/rfc7946#section-3.1.2
- */
- export interface Point extends GeometryObject {
- type: "Point";
- coordinates: Position;
- }
- /**
- * MultiPoint Geometry Object
- *
- * https://tools.ietf.org/html/rfc7946#section-3.1.3
- */
- export interface MultiPoint extends GeometryObject {
- type: "MultiPoint";
- coordinates: Position[];
- }
- /**
- * LineString Geometry Object
- *
- * https://tools.ietf.org/html/rfc7946#section-3.1.4
- */
- export interface LineString extends GeometryObject {
- type: "LineString";
- coordinates: Position[];
- }
- /**
- * MultiLineString Geometry Object
- *
- * https://tools.ietf.org/html/rfc7946#section-3.1.5
- */
- export interface MultiLineString extends GeometryObject {
- type: "MultiLineString";
- coordinates: Position[][];
- }
- /**
- * Polygon Geometry Object
- *
- * https://tools.ietf.org/html/rfc7946#section-3.1.6
- */
- export interface Polygon extends GeometryObject {
- type: "Polygon";
- coordinates: Position[][];
- }
- /**
- * MultiPolygon Geometry Object
- *
- * https://tools.ietf.org/html/rfc7946#section-3.1.7
- */
- export interface MultiPolygon extends GeometryObject {
- type: "MultiPolygon";
- coordinates: Position[][][];
- }
- /**
- * GeometryCollection
- *
- * https://tools.ietf.org/html/rfc7946#section-3.1.8
- *
- * A GeoJSON object with type "GeometryCollection" is a Geometry object.
- * A GeometryCollection has a member with the name "geometries".
- * The value of "geometries" is an array. Each element of this array is a GeoJSON Geometry object.
- * It is possible for this array to be empty.
- */
- export interface GeometryCollection extends GeometryObject {
- type: "GeometryCollection";
- geometries: Array<Point | LineString | Polygon | MultiPoint | MultiLineString | MultiPolygon>;
- }
- /**
- * Feature
- *
- * https://tools.ietf.org/html/rfc7946#section-3.2
- * A Feature object represents a spatially bounded thing.
- * Every Feature object is a GeoJSON object no matter where it occurs in a GeoJSON text.
- */
- export interface Feature<G = Geometry | GeometryCollection, P = Properties> extends GeoJSONObject {
- type: "Feature";
- geometry: G;
- /**
- * A value that uniquely identifies this feature in a
- * https://tools.ietf.org/html/rfc7946#section-3.2.
- */
- id?: Id;
- /**
- * Properties associated with this feature.
- */
- properties: P;
- }
- /**
- * Feature Collection
- *
- * https://tools.ietf.org/html/rfc7946#section-3.3
- * A GeoJSON object with the type "FeatureCollection" is a FeatureCollection object.
- * A FeatureCollection object has a member with the name "features".
- * The value of "features" is a JSON array. Each element of the array is a Feature object as defined above.
- * It is possible for this array to be empty.
- */
- export interface FeatureCollection<G = Geometry | GeometryCollection, P = Properties> extends GeoJSONObject {
- type: "FeatureCollection";
- features: Array<Feature<G, P>>;
- }
|