@maplibre/mlt 0.0.1-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -0
- package/dist/encodings/decodingUtils.d.ts +13 -0
- package/dist/encodings/decodingUtils.js +194 -0
- package/dist/encodings/decodingUtils.js.map +1 -0
- package/dist/encodings/doubleDecoder.d.ts +4 -0
- package/dist/encodings/doubleDecoder.js +22 -0
- package/dist/encodings/doubleDecoder.js.map +1 -0
- package/dist/encodings/fastpfor/bitpacking.d.ts +51 -0
- package/dist/encodings/fastpfor/bitpacking.js +4444 -0
- package/dist/encodings/fastpfor/bitpacking.js.map +1 -0
- package/dist/encodings/fastpfor/codec.d.ts +19 -0
- package/dist/encodings/fastpfor/codec.js +3 -0
- package/dist/encodings/fastpfor/codec.js.map +1 -0
- package/dist/encodings/fastpfor/fastpfor.d.ts +38 -0
- package/dist/encodings/fastpfor/fastpfor.js +123 -0
- package/dist/encodings/fastpfor/fastpfor.js.map +1 -0
- package/dist/encodings/fastpfor/index.d.ts +20 -0
- package/dist/encodings/fastpfor/index.js +47 -0
- package/dist/encodings/fastpfor/index.js.map +1 -0
- package/dist/encodings/fastpfor/util.d.ts +2 -0
- package/dist/encodings/fastpfor/util.js +16 -0
- package/dist/encodings/fastpfor/util.js.map +1 -0
- package/dist/encodings/fastpfor/varint.d.ts +18 -0
- package/dist/encodings/fastpfor/varint.js +125 -0
- package/dist/encodings/fastpfor/varint.js.map +1 -0
- package/dist/encodings/fsstDecoder.d.ts +9 -0
- package/dist/encodings/fsstDecoder.js +34 -0
- package/dist/encodings/fsstDecoder.js.map +1 -0
- package/dist/encodings/geometryDecoder.d.ts +5 -0
- package/dist/encodings/geometryDecoder.js +453 -0
- package/dist/encodings/geometryDecoder.js.map +1 -0
- package/dist/encodings/geometryScaling.d.ts +6 -0
- package/dist/encodings/geometryScaling.js +3 -0
- package/dist/encodings/geometryScaling.js.map +1 -0
- package/dist/encodings/intWrapper.d.ts +8 -0
- package/dist/encodings/intWrapper.js +22 -0
- package/dist/encodings/intWrapper.js.map +1 -0
- package/dist/encodings/integerDecodingUtils.d.ts +46 -0
- package/dist/encodings/integerDecodingUtils.js +703 -0
- package/dist/encodings/integerDecodingUtils.js.map +1 -0
- package/dist/encodings/integerStreamDecoder.d.ts +26 -0
- package/dist/encodings/integerStreamDecoder.js +254 -0
- package/dist/encodings/integerStreamDecoder.js.map +1 -0
- package/dist/encodings/propertyDecoder.d.ts +4 -0
- package/dist/encodings/propertyDecoder.js +194 -0
- package/dist/encodings/propertyDecoder.js.map +1 -0
- package/dist/encodings/stringDecoder.d.ts +11 -0
- package/dist/encodings/stringDecoder.js +148 -0
- package/dist/encodings/stringDecoder.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/metadata/tile/dictionaryType.d.ts +8 -0
- package/dist/metadata/tile/dictionaryType.js +13 -0
- package/dist/metadata/tile/dictionaryType.js.map +1 -0
- package/dist/metadata/tile/lengthType.d.ts +9 -0
- package/dist/metadata/tile/lengthType.js +14 -0
- package/dist/metadata/tile/lengthType.js.map +1 -0
- package/dist/metadata/tile/logicalLevelTechnique.d.ts +8 -0
- package/dist/metadata/tile/logicalLevelTechnique.js +15 -0
- package/dist/metadata/tile/logicalLevelTechnique.js.map +1 -0
- package/dist/metadata/tile/logicalStreamType.d.ts +12 -0
- package/dist/metadata/tile/logicalStreamType.js +21 -0
- package/dist/metadata/tile/logicalStreamType.js.map +1 -0
- package/dist/metadata/tile/mortonEncodedStreamMetadata.d.ts +15 -0
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js +29 -0
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js.map +1 -0
- package/dist/metadata/tile/offsetType.d.ts +6 -0
- package/dist/metadata/tile/offsetType.js +11 -0
- package/dist/metadata/tile/offsetType.js.map +1 -0
- package/dist/metadata/tile/physicalLevelTechnique.d.ts +17 -0
- package/dist/metadata/tile/physicalLevelTechnique.js +22 -0
- package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -0
- package/dist/metadata/tile/physicalStreamType.d.ts +6 -0
- package/dist/metadata/tile/physicalStreamType.js +11 -0
- package/dist/metadata/tile/physicalStreamType.js.map +1 -0
- package/dist/metadata/tile/rleEncodedStreamMetadata.d.ts +20 -0
- package/dist/metadata/tile/rleEncodedStreamMetadata.js +34 -0
- package/dist/metadata/tile/rleEncodedStreamMetadata.js.map +1 -0
- package/dist/metadata/tile/scalarType.d.ts +12 -0
- package/dist/metadata/tile/scalarType.js +17 -0
- package/dist/metadata/tile/scalarType.js.map +1 -0
- package/dist/metadata/tile/streamMetadata.d.ts +23 -0
- package/dist/metadata/tile/streamMetadata.js +71 -0
- package/dist/metadata/tile/streamMetadata.js.map +1 -0
- package/dist/metadata/tile/streamMetadataDecoder.d.ts +5 -0
- package/dist/metadata/tile/streamMetadataDecoder.js +24 -0
- package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -0
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.d.ts +10 -0
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js +112 -0
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -0
- package/dist/metadata/tileset/tilesetMetadata.g.d.ts +418 -0
- package/dist/metadata/tileset/tilesetMetadata.g.js +476 -0
- package/dist/metadata/tileset/tilesetMetadata.g.js.map +1 -0
- package/dist/metadata/tileset/typeMap.d.ts +38 -0
- package/dist/metadata/tileset/typeMap.js +185 -0
- package/dist/metadata/tileset/typeMap.js.map +1 -0
- package/dist/mltDecoder.d.ts +11 -0
- package/dist/mltDecoder.js +146 -0
- package/dist/mltDecoder.js.map +1 -0
- package/dist/mltMetadata.d.ts +40 -0
- package/dist/mltMetadata.js +34 -0
- package/dist/mltMetadata.js.map +1 -0
- package/dist/vector/constant/intConstVector.d.ts +19 -0
- package/dist/vector/constant/intConstVector.js +89 -0
- package/dist/vector/constant/intConstVector.js.map +1 -0
- package/dist/vector/constant/longConstVector.d.ts +19 -0
- package/dist/vector/constant/longConstVector.js +87 -0
- package/dist/vector/constant/longConstVector.js.map +1 -0
- package/dist/vector/dictionary/stringDictionaryVector.d.ts +22 -0
- package/dist/vector/dictionary/stringDictionaryVector.js +180 -0
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -0
- package/dist/vector/featureTable.d.ts +29 -0
- package/dist/vector/featureTable.js +70 -0
- package/dist/vector/featureTable.js.map +1 -0
- package/dist/vector/filter/constSelectionVector.d.ts +0 -0
- package/dist/vector/filter/constSelectionVector.js +1 -0
- package/dist/vector/filter/constSelectionVector.js.map +1 -0
- package/dist/vector/filter/flatSelectionVector.d.ts +16 -0
- package/dist/vector/filter/flatSelectionVector.js +42 -0
- package/dist/vector/filter/flatSelectionVector.js.map +1 -0
- package/dist/vector/filter/selectionVector.d.ts +8 -0
- package/dist/vector/filter/selectionVector.js +3 -0
- package/dist/vector/filter/selectionVector.js.map +1 -0
- package/dist/vector/filter/selectionVectorUtils.d.ts +7 -0
- package/dist/vector/filter/selectionVectorUtils.js +44 -0
- package/dist/vector/filter/selectionVectorUtils.js.map +1 -0
- package/dist/vector/filter/sequenceSelectionVector.d.ts +0 -0
- package/dist/vector/filter/sequenceSelectionVector.js +1 -0
- package/dist/vector/filter/sequenceSelectionVector.js.map +1 -0
- package/dist/vector/fixedSizeVector.d.ts +5 -0
- package/dist/vector/fixedSizeVector.js +14 -0
- package/dist/vector/fixedSizeVector.js.map +1 -0
- package/dist/vector/flat/bitVector.d.ts +14 -0
- package/dist/vector/flat/bitVector.js +38 -0
- package/dist/vector/flat/bitVector.js.map +1 -0
- package/dist/vector/flat/booleanFlatVector.d.ts +20 -0
- package/dist/vector/flat/booleanFlatVector.js +55 -0
- package/dist/vector/flat/booleanFlatVector.js.map +1 -0
- package/dist/vector/flat/doubleFlatVector.d.ts +19 -0
- package/dist/vector/flat/doubleFlatVector.js +109 -0
- package/dist/vector/flat/doubleFlatVector.js.map +1 -0
- package/dist/vector/flat/floatFlatVector.d.ts +19 -0
- package/dist/vector/flat/floatFlatVector.js +109 -0
- package/dist/vector/flat/floatFlatVector.js.map +1 -0
- package/dist/vector/flat/intFlatVector.d.ts +19 -0
- package/dist/vector/flat/intFlatVector.js +123 -0
- package/dist/vector/flat/intFlatVector.js.map +1 -0
- package/dist/vector/flat/longFlatVector.d.ts +19 -0
- package/dist/vector/flat/longFlatVector.js +124 -0
- package/dist/vector/flat/longFlatVector.js.map +1 -0
- package/dist/vector/flat/stringFlatVector.d.ts +20 -0
- package/dist/vector/flat/stringFlatVector.js +165 -0
- package/dist/vector/flat/stringFlatVector.js.map +1 -0
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +27 -0
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +115 -0
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -0
- package/dist/vector/geometry/constGeometryVector.d.ts +17 -0
- package/dist/vector/geometry/constGeometryVector.js +51 -0
- package/dist/vector/geometry/constGeometryVector.js.map +1 -0
- package/dist/vector/geometry/constGpuVector.d.ts +15 -0
- package/dist/vector/geometry/constGpuVector.js +66 -0
- package/dist/vector/geometry/constGpuVector.js.map +1 -0
- package/dist/vector/geometry/flatGeometryVector.d.ts +16 -0
- package/dist/vector/geometry/flatGeometryVector.js +64 -0
- package/dist/vector/geometry/flatGeometryVector.js.map +1 -0
- package/dist/vector/geometry/flatGpuVector.d.ts +14 -0
- package/dist/vector/geometry/flatGpuVector.js +67 -0
- package/dist/vector/geometry/flatGpuVector.js.map +1 -0
- package/dist/vector/geometry/geometryType.d.ts +13 -0
- package/dist/vector/geometry/geometryType.js +19 -0
- package/dist/vector/geometry/geometryType.js.map +1 -0
- package/dist/vector/geometry/geometryVector.d.ts +37 -0
- package/dist/vector/geometry/geometryVector.js +73 -0
- package/dist/vector/geometry/geometryVector.js.map +1 -0
- package/dist/vector/geometry/geometryVectorConverter.d.ts +2 -0
- package/dist/vector/geometry/geometryVectorConverter.js +302 -0
- package/dist/vector/geometry/geometryVectorConverter.js.map +1 -0
- package/dist/vector/geometry/gpuVector.d.ts +21 -0
- package/dist/vector/geometry/gpuVector.js +38 -0
- package/dist/vector/geometry/gpuVector.js.map +1 -0
- package/dist/vector/geometry/point.d.ts +195 -0
- package/dist/vector/geometry/point.js +283 -0
- package/dist/vector/geometry/point.js.map +1 -0
- package/dist/vector/geometry/spaceFillingCurve.d.ts +22 -0
- package/dist/vector/geometry/spaceFillingCurve.js +26 -0
- package/dist/vector/geometry/spaceFillingCurve.js.map +1 -0
- package/dist/vector/geometry/topologyVector.d.ts +9 -0
- package/dist/vector/geometry/topologyVector.js +21 -0
- package/dist/vector/geometry/topologyVector.js.map +1 -0
- package/dist/vector/geometry/zOrderCurve.d.ts +17 -0
- package/dist/vector/geometry/zOrderCurve.js +44 -0
- package/dist/vector/geometry/zOrderCurve.js.map +1 -0
- package/dist/vector/intVector.d.ts +8 -0
- package/dist/vector/intVector.js +3 -0
- package/dist/vector/intVector.js.map +1 -0
- package/dist/vector/sequence/intSequenceVector.d.ts +18 -0
- package/dist/vector/sequence/intSequenceVector.js +72 -0
- package/dist/vector/sequence/intSequenceVector.js.map +1 -0
- package/dist/vector/sequence/longSequenceVector.d.ts +18 -0
- package/dist/vector/sequence/longSequenceVector.js +57 -0
- package/dist/vector/sequence/longSequenceVector.js.map +1 -0
- package/dist/vector/sequence/sequenceVector.d.ts +5 -0
- package/dist/vector/sequence/sequenceVector.js +15 -0
- package/dist/vector/sequence/sequenceVector.js.map +1 -0
- package/dist/vector/variableSizeVector.d.ts +6 -0
- package/dist/vector/variableSizeVector.js +16 -0
- package/dist/vector/variableSizeVector.js.map +1 -0
- package/dist/vector/vector.d.ts +30 -0
- package/dist/vector/vector.js +73 -0
- package/dist/vector/vector.js.map +1 -0
- package/dist/vector/vectorType.d.ts +7 -0
- package/dist/vector/vectorType.js +12 -0
- package/dist/vector/vectorType.js.map +1 -0
- package/package.json +81 -0
package/README.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# maplibre-tile-spec
|
|
2
|
+
|
|
3
|
+
This package contains a JavaScript decoder for the experimental MapLibre Tile (MLT) vector tile format.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
`npm install @maplibre/maplibre-tile-spec`
|
|
8
|
+
|
|
9
|
+
## Quickstart
|
|
10
|
+
|
|
11
|
+
To decode a tile, you will want to load `MltDecoder`:
|
|
12
|
+
|
|
13
|
+
```js
|
|
14
|
+
import { decodeTile } from '@maplibre/maplibre-tile-spec';
|
|
15
|
+
|
|
16
|
+
const data = fs.readFileSync(tilePath);
|
|
17
|
+
const tile = decodeTile(data);
|
|
18
|
+
```
|
|
19
|
+
## Contents
|
|
20
|
+
|
|
21
|
+
### Code
|
|
22
|
+
|
|
23
|
+
Code is in `src/`.
|
|
24
|
+
|
|
25
|
+
### Tests
|
|
26
|
+
|
|
27
|
+
Tests are in `test/unit/`. Run tests by running `npm run test`.
|
|
28
|
+
currently not integrated
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import IntWrapper from "./intWrapper";
|
|
2
|
+
import { VectorType } from "../vector/vectorType";
|
|
3
|
+
import BitVector from "../vector/flat/bitVector";
|
|
4
|
+
export declare function skipColumn(numStreams: number, tile: Uint8Array, offset: IntWrapper): void;
|
|
5
|
+
export declare function decodeBooleanRle(buffer: Uint8Array, numBooleans: number, pos: IntWrapper): Uint8Array;
|
|
6
|
+
export declare function decodeNullableBooleanRle(buffer: Uint8Array, numBooleans: number, pos: IntWrapper, nullabilityBuffer: BitVector): Uint8Array;
|
|
7
|
+
export declare function decodeByteRle(buffer: Uint8Array, numBytes: number, pos: IntWrapper): Uint8Array;
|
|
8
|
+
export declare function decodeFloatsLE(encodedValues: Uint8Array, pos: IntWrapper, numValues: number): Float32Array;
|
|
9
|
+
export declare function decodeDoublesLE(encodedValues: Uint8Array, pos: IntWrapper, numValues: number): Float64Array;
|
|
10
|
+
export declare function decodeNullableFloatsLE(encodedValues: Uint8Array, pos: IntWrapper, nullabilityBuffer: BitVector, numValues: number): Float32Array;
|
|
11
|
+
export declare function decodeNullableDoublesLE(encodedValues: Uint8Array, pos: IntWrapper, nullabilityBuffer: BitVector, numValues: number): Float64Array;
|
|
12
|
+
export declare function decodeString(buf: Uint8Array, pos: number, end: number): string;
|
|
13
|
+
export declare function getVectorTypeBooleanStream(numFeatures: number, byteLength: number, data: Uint8Array, offset: IntWrapper): VectorType;
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.skipColumn = skipColumn;
|
|
7
|
+
exports.decodeBooleanRle = decodeBooleanRle;
|
|
8
|
+
exports.decodeNullableBooleanRle = decodeNullableBooleanRle;
|
|
9
|
+
exports.decodeByteRle = decodeByteRle;
|
|
10
|
+
exports.decodeFloatsLE = decodeFloatsLE;
|
|
11
|
+
exports.decodeDoublesLE = decodeDoublesLE;
|
|
12
|
+
exports.decodeNullableFloatsLE = decodeNullableFloatsLE;
|
|
13
|
+
exports.decodeNullableDoublesLE = decodeNullableDoublesLE;
|
|
14
|
+
exports.decodeString = decodeString;
|
|
15
|
+
exports.getVectorTypeBooleanStream = getVectorTypeBooleanStream;
|
|
16
|
+
const vectorType_1 = require("../vector/vectorType");
|
|
17
|
+
const bitVector_1 = __importDefault(require("../vector/flat/bitVector"));
|
|
18
|
+
const streamMetadataDecoder_1 = require("../metadata/tile/streamMetadataDecoder");
|
|
19
|
+
function skipColumn(numStreams, tile, offset) {
|
|
20
|
+
//TODO: add size of column in Mlt for fast skipping
|
|
21
|
+
for (let i = 0; i < numStreams; i++) {
|
|
22
|
+
const streamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(tile, offset);
|
|
23
|
+
offset.add(streamMetadata.byteLength);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function decodeBooleanRle(buffer, numBooleans, pos) {
|
|
27
|
+
const numBytes = Math.ceil(numBooleans / 8.0);
|
|
28
|
+
return decodeByteRle(buffer, numBytes, pos);
|
|
29
|
+
}
|
|
30
|
+
function decodeNullableBooleanRle(buffer, numBooleans, pos, nullabilityBuffer) {
|
|
31
|
+
// TODO: refactor quick and dirty solution -> use solution in one pass
|
|
32
|
+
const numBytes = Math.ceil(numBooleans / 8);
|
|
33
|
+
const values = decodeByteRle(buffer, numBytes, pos);
|
|
34
|
+
const bitVector = new bitVector_1.default(values, numBooleans);
|
|
35
|
+
const size = nullabilityBuffer.size();
|
|
36
|
+
const nullableBitvector = new bitVector_1.default(new Uint8Array(size), size);
|
|
37
|
+
let valueCounter = 0;
|
|
38
|
+
for (let i = 0; i < nullabilityBuffer.size(); i++) {
|
|
39
|
+
const value = nullabilityBuffer.get(i) ? bitVector.get(valueCounter++) : false;
|
|
40
|
+
nullableBitvector.set(i, value);
|
|
41
|
+
}
|
|
42
|
+
return nullableBitvector.getBuffer();
|
|
43
|
+
}
|
|
44
|
+
function decodeByteRle(buffer, numBytes, pos) {
|
|
45
|
+
const values = new Uint8Array(numBytes);
|
|
46
|
+
let valueOffset = 0;
|
|
47
|
+
while (valueOffset < numBytes) {
|
|
48
|
+
const header = buffer[pos.increment()];
|
|
49
|
+
/* Runs */
|
|
50
|
+
if (header <= 0x7f) {
|
|
51
|
+
const numRuns = header + 3;
|
|
52
|
+
const value = buffer[pos.increment()];
|
|
53
|
+
const endValueOffset = valueOffset + numRuns;
|
|
54
|
+
values.fill(value, valueOffset, endValueOffset);
|
|
55
|
+
valueOffset = endValueOffset;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
/* Literals */
|
|
59
|
+
const numLiterals = 256 - header;
|
|
60
|
+
for (let i = 0; i < numLiterals; i++) {
|
|
61
|
+
values[valueOffset++] = buffer[pos.increment()];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return values;
|
|
66
|
+
}
|
|
67
|
+
function decodeFloatsLE(encodedValues, pos, numValues) {
|
|
68
|
+
const currentPos = pos.get();
|
|
69
|
+
const newOffset = currentPos + numValues * Float32Array.BYTES_PER_ELEMENT;
|
|
70
|
+
const newBuf = new Uint8Array(encodedValues.subarray(currentPos, newOffset)).buffer;
|
|
71
|
+
const fb = new Float32Array(newBuf);
|
|
72
|
+
pos.set(newOffset);
|
|
73
|
+
return fb;
|
|
74
|
+
}
|
|
75
|
+
function decodeDoublesLE(encodedValues, pos, numValues) {
|
|
76
|
+
const currentPos = pos.get();
|
|
77
|
+
const newOffset = currentPos + numValues * Float64Array.BYTES_PER_ELEMENT;
|
|
78
|
+
const newBuf = new Uint8Array(encodedValues.subarray(currentPos, newOffset)).buffer;
|
|
79
|
+
const fb = new Float64Array(newBuf);
|
|
80
|
+
pos.set(newOffset);
|
|
81
|
+
return fb;
|
|
82
|
+
}
|
|
83
|
+
function decodeNullableFloatsLE(encodedValues, pos, nullabilityBuffer, numValues) {
|
|
84
|
+
const currentPos = pos.get();
|
|
85
|
+
const newOffset = currentPos + numValues * Float32Array.BYTES_PER_ELEMENT;
|
|
86
|
+
const newBuf = new Uint8Array(encodedValues.subarray(currentPos, newOffset)).buffer;
|
|
87
|
+
const fb = new Float32Array(newBuf);
|
|
88
|
+
pos.set(newOffset);
|
|
89
|
+
const numTotalValues = nullabilityBuffer.size();
|
|
90
|
+
const nullableFloatsBuffer = new Float32Array(numTotalValues);
|
|
91
|
+
let offset = 0;
|
|
92
|
+
for (let i = 0; i < numTotalValues; i++) {
|
|
93
|
+
nullableFloatsBuffer[i] = nullabilityBuffer.get(i) ? fb[offset++] : 0;
|
|
94
|
+
}
|
|
95
|
+
return nullableFloatsBuffer;
|
|
96
|
+
}
|
|
97
|
+
function decodeNullableDoublesLE(encodedValues, pos, nullabilityBuffer, numValues) {
|
|
98
|
+
const currentPos = pos.get();
|
|
99
|
+
const newOffset = currentPos + numValues * Float64Array.BYTES_PER_ELEMENT;
|
|
100
|
+
const newBuf = new Uint8Array(encodedValues.subarray(currentPos, newOffset)).buffer;
|
|
101
|
+
const fb = new Float64Array(newBuf);
|
|
102
|
+
pos.set(newOffset);
|
|
103
|
+
const numTotalValues = nullabilityBuffer.size();
|
|
104
|
+
const nullableDoubleBuffer = new Float64Array(numTotalValues);
|
|
105
|
+
let offset = 0;
|
|
106
|
+
for (let i = 0; i < numTotalValues; i++) {
|
|
107
|
+
nullableDoubleBuffer[i] = nullabilityBuffer.get(i) ? fb[offset++] : 0;
|
|
108
|
+
}
|
|
109
|
+
return nullableDoubleBuffer;
|
|
110
|
+
}
|
|
111
|
+
const TEXT_DECODER_MIN_LENGTH = 12;
|
|
112
|
+
const utf8TextDecoder = new TextDecoder();
|
|
113
|
+
// Source: https://github.com/mapbox/pbf/issues/106
|
|
114
|
+
function decodeString(buf, pos, end) {
|
|
115
|
+
if (end - pos >= TEXT_DECODER_MIN_LENGTH) {
|
|
116
|
+
// longer strings are fast with the built-in browser TextDecoder API
|
|
117
|
+
return utf8TextDecoder.decode(buf.subarray(pos, end));
|
|
118
|
+
}
|
|
119
|
+
// short strings are fast with custom implementation
|
|
120
|
+
return readUtf8(buf, pos, end);
|
|
121
|
+
}
|
|
122
|
+
function readUtf8(buf, pos, end) {
|
|
123
|
+
let str = "";
|
|
124
|
+
let i = pos;
|
|
125
|
+
while (i < end) {
|
|
126
|
+
const b0 = buf[i];
|
|
127
|
+
let c = null; // codepoint
|
|
128
|
+
let bytesPerSequence = b0 > 0xef ? 4 : b0 > 0xdf ? 3 : b0 > 0xbf ? 2 : 1;
|
|
129
|
+
if (i + bytesPerSequence > end)
|
|
130
|
+
break;
|
|
131
|
+
let b1, b2, b3;
|
|
132
|
+
if (bytesPerSequence === 1) {
|
|
133
|
+
if (b0 < 0x80) {
|
|
134
|
+
c = b0;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else if (bytesPerSequence === 2) {
|
|
138
|
+
b1 = buf[i + 1];
|
|
139
|
+
if ((b1 & 0xc0) === 0x80) {
|
|
140
|
+
c = ((b0 & 0x1f) << 0x6) | (b1 & 0x3f);
|
|
141
|
+
if (c <= 0x7f) {
|
|
142
|
+
c = null;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
else if (bytesPerSequence === 3) {
|
|
147
|
+
b1 = buf[i + 1];
|
|
148
|
+
b2 = buf[i + 2];
|
|
149
|
+
if ((b1 & 0xc0) === 0x80 && (b2 & 0xc0) === 0x80) {
|
|
150
|
+
c = ((b0 & 0xf) << 0xc) | ((b1 & 0x3f) << 0x6) | (b2 & 0x3f);
|
|
151
|
+
if (c <= 0x7ff || (c >= 0xd800 && c <= 0xdfff)) {
|
|
152
|
+
c = null;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else if (bytesPerSequence === 4) {
|
|
157
|
+
b1 = buf[i + 1];
|
|
158
|
+
b2 = buf[i + 2];
|
|
159
|
+
b3 = buf[i + 3];
|
|
160
|
+
if ((b1 & 0xc0) === 0x80 && (b2 & 0xc0) === 0x80 && (b3 & 0xc0) === 0x80) {
|
|
161
|
+
c = ((b0 & 0xf) << 0x12) | ((b1 & 0x3f) << 0xc) | ((b2 & 0x3f) << 0x6) | (b3 & 0x3f);
|
|
162
|
+
if (c <= 0xffff || c >= 0x110000) {
|
|
163
|
+
c = null;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
if (c === null) {
|
|
168
|
+
c = 0xfffd;
|
|
169
|
+
bytesPerSequence = 1;
|
|
170
|
+
}
|
|
171
|
+
else if (c > 0xffff) {
|
|
172
|
+
c -= 0x10000;
|
|
173
|
+
str += String.fromCharCode(((c >>> 10) & 0x3ff) | 0xd800);
|
|
174
|
+
c = 0xdc00 | (c & 0x3ff);
|
|
175
|
+
}
|
|
176
|
+
str += String.fromCharCode(c);
|
|
177
|
+
i += bytesPerSequence;
|
|
178
|
+
}
|
|
179
|
+
return str;
|
|
180
|
+
}
|
|
181
|
+
function getVectorTypeBooleanStream(numFeatures, byteLength, data, offset) {
|
|
182
|
+
const valuesPerRun = 0x83;
|
|
183
|
+
// TODO: use VectorType metadata field for to test which VectorType is used
|
|
184
|
+
return Math.ceil(numFeatures / valuesPerRun) * 2 == byteLength &&
|
|
185
|
+
/* Test the first value byte if all bits are set to true */
|
|
186
|
+
(data[offset.get() + 1] & 0xff) === (bitCount(numFeatures) << 2) - 1
|
|
187
|
+
? vectorType_1.VectorType.CONST
|
|
188
|
+
: vectorType_1.VectorType.FLAT;
|
|
189
|
+
}
|
|
190
|
+
function bitCount(number) {
|
|
191
|
+
//TODO: refactor to get rid of special case handling
|
|
192
|
+
return number === 0 ? 1 : Math.floor(Math.log2(number) + 1);
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=decodingUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decodingUtils.js","sourceRoot":"","sources":["../../src/encodings/decodingUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import IntWrapper from './intWrapper';
|
|
2
|
+
import { StreamMetadata } from '../metadata/tile/streamMetadata';
|
|
3
|
+
export declare function decodeFloatStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): Float32Array;
|
|
4
|
+
export declare function decodeDoubleStream(data: Uint8Array, offset: IntWrapper, streamMetadata: StreamMetadata): Float32Array;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeFloatStream = decodeFloatStream;
|
|
4
|
+
exports.decodeDoubleStream = decodeDoubleStream;
|
|
5
|
+
const decodingUtils_1 = require("./decodingUtils");
|
|
6
|
+
function decodeFloatStream(data, offset, streamMetadata) {
|
|
7
|
+
const values = (0, decodingUtils_1.decodeFloatsLE)(data, offset, streamMetadata.numValues);
|
|
8
|
+
const valuesList = new Float32Array(values.length);
|
|
9
|
+
for (let i = 0; i < values.length; i++) {
|
|
10
|
+
valuesList[i] = values[i];
|
|
11
|
+
}
|
|
12
|
+
return valuesList;
|
|
13
|
+
}
|
|
14
|
+
function decodeDoubleStream(data, offset, streamMetadata) {
|
|
15
|
+
const values = (0, decodingUtils_1.decodeDoublesLE)(data, offset, streamMetadata.numValues);
|
|
16
|
+
const valuesList = new Float32Array(values.length);
|
|
17
|
+
for (let i = 0; i < values.length; i++) {
|
|
18
|
+
valuesList[i] = values[i];
|
|
19
|
+
}
|
|
20
|
+
return valuesList;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=doubleDecoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doubleDecoder.js","sourceRoot":"","sources":["../../src/encodings/doubleDecoder.ts"],"names":[],"mappings":";;AAIA,8CAOC;AAED,gDAOC;AAlBD,mDAAgE;AAEhE,SAAgB,iBAAiB,CAAC,IAAgB,EAAE,MAAkB,EAAE,cAA8B;IAC9F,MAAM,MAAM,GAAG,IAAA,8BAAc,EAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACtE,MAAM,UAAU,GAAiB,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC;AAC1B,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAgB,EAAE,MAAkB,EAAE,cAA8B;IACnG,MAAM,MAAM,GAAG,IAAA,+BAAe,EAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACvE,MAAM,UAAU,GAAiB,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pack 32 numberegers
|
|
3
|
+
*
|
|
4
|
+
* @param input
|
|
5
|
+
* source array
|
|
6
|
+
* @param inpos
|
|
7
|
+
* position in source array
|
|
8
|
+
* @param output
|
|
9
|
+
* output array
|
|
10
|
+
* @param outpos
|
|
11
|
+
* position in output array
|
|
12
|
+
* @param bit
|
|
13
|
+
* number of bits to use per numbereger
|
|
14
|
+
*/
|
|
15
|
+
export declare function fastpack(input: Uint32Array, inpos: number, output: Uint32Array, outpos: number, bit: number): void;
|
|
16
|
+
/**
|
|
17
|
+
* Unpack 32 numberegers
|
|
18
|
+
*
|
|
19
|
+
* @param input
|
|
20
|
+
* source array
|
|
21
|
+
* @param inpos
|
|
22
|
+
* position in source array
|
|
23
|
+
* @param output
|
|
24
|
+
* output array
|
|
25
|
+
* @param outpos
|
|
26
|
+
* position in output array
|
|
27
|
+
* @param bit
|
|
28
|
+
* number of bits to use per numbereger
|
|
29
|
+
*/
|
|
30
|
+
export declare function fastpackwithoutmask(input: Uint32Array, inpos: number, output: Uint32Array, outpos: number, bit: number): void;
|
|
31
|
+
/**
|
|
32
|
+
* Pack the 32 numberegers
|
|
33
|
+
*
|
|
34
|
+
* @param input
|
|
35
|
+
* source array
|
|
36
|
+
* @param inpos
|
|
37
|
+
* starting ponumber in the source array
|
|
38
|
+
* @param output
|
|
39
|
+
* output array
|
|
40
|
+
* @param outpos
|
|
41
|
+
* starting ponumber in the output array
|
|
42
|
+
* @param bit
|
|
43
|
+
* how many bits to use per numbereger
|
|
44
|
+
*/
|
|
45
|
+
export declare function fastunpack(model: {
|
|
46
|
+
input: Uint32Array;
|
|
47
|
+
inpos: number;
|
|
48
|
+
output: Uint32Array;
|
|
49
|
+
outpos: number;
|
|
50
|
+
bit: number;
|
|
51
|
+
}): void;
|