UNPKG

@deck.gl/carto

Version:

CARTO official integration with Deck.gl. Build geospatial applications using CARTO and Deck.gl.

49 lines 1.56 kB
// deck.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors import { readPackedTypedArray } from "./fast-pbf.js"; const ARRAY_TYPES = { uint8: Uint8Array, uint16: Uint16Array, uint32: Uint32Array, uint64: BigUint64Array, int8: Int8Array, int16: Int16Array, int32: Int32Array, int64: BigInt64Array, float32: Float32Array, float64: Float64Array }; // Band ======================================== export class BandReader { static read(pbf, end) { return pbf.readFields(BandReader._readField, { name: '', type: '', data: null }, end); } static _readField(tag, obj, pbf) { if (tag === 1) obj.name = pbf.readString(); else if (tag === 2) obj.type = pbf.readString(); else if (tag === 3) { const TypedArray = ARRAY_TYPES[obj.type]; if (!TypedArray) { throw Error(`Invalid data type: ${obj.type}`); } obj.data = {}; const { compression } = TileReader; readPackedTypedArray(TypedArray, pbf, obj.data, { compression }); } } } export class TileReader { static read(pbf, end) { return pbf.readFields(TileReader._readField, { blockSize: 0, bands: [] }, end); } static _readField(tag, obj, pbf) { if (tag === 1) obj.blockSize = pbf.readVarint(); else if (tag === 2) obj.bands.push(BandReader.read(pbf, pbf.readVarint() + pbf.pos)); } } //# sourceMappingURL=carto-raster-tile.js.map