A Layer decoded from Protobuf data.
The parent trait for a two-variety sum type for ProtobufLayers: Lazy and Strict.
A concrete representation of a VectorTile, as one decoded from Protobuf bytes.
A concrete representation of a VectorTile, as one decoded from Protobuf bytes. This is the original/default type for VectorTiles.
import geotrellis.vectortile.protobuf._ val bytes: Array[Byte] = ... // from some `.mvt` file val key: SpatialKey = ... // preknown val layout: LayoutDefinition = ... // preknown val tileExtent: Extent = layout.mapTransform(key) val tile: VectorTile = ProtobufTile.fromBytes(bytes, tileExtent)
A Layer crafted through some strict ingest process.
A wrapper for Boolean
to allow all Value
subtypes to be stored in
the same Map.
A wrapper for Double
to allow all Value
subtypes to be stored in
the same Map.
A wrapper for Float
to allow all Value
subtypes to be stored in
the same Map.
A wrapper for Long
to allow all Value
subtypes to be stored in
the same Map.
A wrapper for zig-zag encoded ints to allow all Value
subtypes to be
stored in the same Map.
A wrapper for String
to allow all Value
subtypes to be stored in
the same Map.
A wrapper for unsigned, 64-bit ints to allow all Value
subtypes to be
stored in the same Map.
Feature metadata key/value Maps are completely untyped.
Feature metadata key/value Maps are completely untyped. All keys and values used by Features across a common parent Layer are stored in that parent. Raw Features themselves only store indices into the parent's key/value lists. So, for an example MultiPoint Feature of fire hydrant locations, its metadata could look like:
{ name: "Hydrants", colour: "red", model: 5 }
That's fine if interpreted as JSON, but bad as Scala, as it doesn't give us
a clean Map[String, ConcreteTypeHere]
. Furthermore, Features within the
same Layer don't have to agree on the Value type for the same key:
{ name: "Stop lights", colour: 1, model: "ABC-123" }
Nor, actually, do Layers have to agree on key sets for their Features.
The sealed trait Value
here and its extensions aim to provide some
type safety in light of the situation described here.
A Layer decoded from Protobuf data. All of its Features are decoded lazily, making for very fast extraction of single features/geometries.