@loaders.gl/mvt
Version:
Loader for Mapbox Vector Tiles
136 lines (120 loc) • 3.16 kB
text/typescript
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright vis.gl contributors
/**
* MVT spec constants
* @see https://github.com/mapbox/vector-tile-spec/blob/master/2.1/README.md
*/
export enum TileInfo {
/** repeated Layer */
layers = 3
}
/**
* MVT spec constants
* @see https://github.com/mapbox/vector-tile-spec/blob/master/2.1/README.md
* @note Layers are described in section 4.1 of the specification
*/
export enum LayerInfo {
/**
* Any compliant implementation must first read the version
* number encoded in this message and choose the correct
* implementation for this version number before proceeding to
* decode other parts of this message.
* required uint32 [ default = 1 ];
*/
version = 15,
/** PBF: required string */
name = 1,
/** The actual features in this tile.
* PBF: repeated Feature
*/
features = 2,
/**
* Dictionary encoding for keys
* PBF: repeated string
*/
keys = 3,
/**
* Dictionary encoding for values
* PBF: repeated Value
*/
values = 4,
/**
* Although this is an "optional" field it is required by the specification.
* See https://github.com/mapbox/vector-tile-spec/issues/47
* PBF: optional uint32 [ default = 4096 ];
*/
extent = 5
// extensions 16 to max;
}
/**
* @see https://github.com/mapbox/vector-tile-spec/blob/master/2.1/README.md
* Features are described in section 4.2 of the specification
*/
export enum FeatureInfo {
/** optional uint64 [ default = 0 ]; */
id = 1,
/**
* Tags of this feature are encoded as repeated pairs of integers.
* A detailed description of tags is located in sections 4.2 and 4.4 of the specification
* repeated uint32 [ packed = true ];
*/
tags = 2,
/**
* The type of geometry stored in this feature.
* GeomType [ default = UNKNOWN ];
*/
type = 3,
/**
* Contains a stream of commands and parameters (vertices).
* A detailed description on geometry encoding is located in
* section 4.3 of the specification.
* repeated uint32 [ packed = true ];
*/
geometry = 4
}
/**
* GeomType is described in section 4.3.4 of the specification
* @see https://github.com/mapbox/vector-tile-spec/blob/master/2.1/README.md
* */
export enum GeometryType {
UNKNOWN = 0,
POINT = 1,
LINESTRING = 2,
POLYGON = 3
}
/**
* Variant type encoding
* The use of values is described in section 4.1 of the specification
* @note Exactly one of these values must be present in a valid message
* @see https://github.com/mapbox/vector-tile-spec/blob/master/2.1/README.md
*/
export enum PropertyType {
/** string */
string_value = 1, //
/** float */
float_value = 2,
/** double */
double_value = 3,
/** int64 */
int_value = 4,
/** uint64 */
uint_value = 5,
/** sint64 */
sint_value = 6,
/** bool */
bool_value = 7
// extensions 8 to max;
}
/**
* "Turtle graphics" style geometry commands
* @see https://github.com/mapbox/vector-tile-spec/blob/master/2.1/README.md
*/
export enum Command {
/** 2 Parameters: dX, dY */
MoveTo = 1,
/** 2 Parameters dX, dY */
LineTo = 2,
/** No parameters */
ClosePath = 7
}