@maplibre/mlt 1.1.6 → 1.1.8
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/dist/decoding/bigEndianDecode.d.ts +13 -0
- package/dist/decoding/bigEndianDecode.js +50 -0
- package/dist/decoding/bigEndianDecode.js.map +1 -0
- package/dist/decoding/decodingTestUtils.d.ts +2 -2
- package/dist/decoding/decodingTestUtils.js +20 -21
- package/dist/decoding/decodingTestUtils.js.map +1 -1
- package/dist/decoding/decodingUtils.js +4 -2
- package/dist/decoding/decodingUtils.js.map +1 -1
- package/dist/decoding/fastPforDecoder.d.ts +47 -0
- package/dist/decoding/fastPforDecoder.js +482 -0
- package/dist/decoding/fastPforDecoder.js.map +1 -0
- package/dist/decoding/fastPforShared.d.ts +7 -0
- package/dist/decoding/fastPforShared.js +29 -0
- package/dist/decoding/fastPforShared.js.map +1 -0
- package/dist/decoding/fastPforUnpack.d.ts +23 -0
- package/dist/decoding/fastPforUnpack.js +910 -0
- package/dist/decoding/fastPforUnpack.js.map +1 -0
- package/dist/decoding/geometryDecoder.d.ts +2 -2
- package/dist/decoding/geometryDecoder.js +52 -49
- package/dist/decoding/geometryDecoder.js.map +1 -1
- package/dist/decoding/intWrapper.js +0 -1
- package/dist/decoding/intWrapper.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.d.ts +33 -25
- package/dist/decoding/integerDecodingUtils.js +115 -52
- package/dist/decoding/integerDecodingUtils.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.d.ts +15 -11
- package/dist/decoding/integerStreamDecoder.js +159 -65
- package/dist/decoding/integerStreamDecoder.js.map +1 -1
- package/dist/decoding/propertyDecoder.js +38 -36
- package/dist/decoding/propertyDecoder.js.map +1 -1
- package/dist/decoding/stringDecoder.js +19 -23
- package/dist/decoding/stringDecoder.js.map +1 -1
- package/dist/decoding/unpackNullableUtils.d.ts +2 -2
- package/dist/decoding/unpackNullableUtils.js.map +1 -1
- package/dist/encoding/bigEndianEncode.d.ts +7 -0
- package/dist/encoding/bigEndianEncode.js +16 -0
- package/dist/encoding/bigEndianEncode.js.map +1 -0
- package/dist/encoding/constGeometryVectorEncoder.d.ts +19 -0
- package/dist/encoding/constGeometryVectorEncoder.js +248 -0
- package/dist/encoding/constGeometryVectorEncoder.js.map +1 -0
- package/dist/encoding/encodingUtils.d.ts +2 -2
- package/dist/encoding/encodingUtils.js +3 -3
- package/dist/encoding/encodingUtils.js.map +1 -1
- package/dist/encoding/fastPforEncoder.d.ts +18 -0
- package/dist/encoding/fastPforEncoder.js +310 -0
- package/dist/encoding/fastPforEncoder.js.map +1 -0
- package/dist/encoding/integerEncodingUtils.d.ts +20 -20
- package/dist/encoding/integerEncodingUtils.js +64 -48
- package/dist/encoding/integerEncodingUtils.js.map +1 -1
- package/dist/encoding/integerStreamEncoder.d.ts +3 -2
- package/dist/encoding/integerStreamEncoder.js +57 -23
- package/dist/encoding/integerStreamEncoder.js.map +1 -1
- package/dist/encoding/packNullableUtils.d.ts +1 -1
- package/dist/encoding/packNullableUtils.js.map +1 -1
- package/dist/encoding/propertyEncoder.d.ts +1 -1
- package/dist/encoding/propertyEncoder.js +17 -24
- package/dist/encoding/propertyEncoder.js.map +1 -1
- package/dist/encoding/stringEncoder.js +9 -42
- package/dist/encoding/stringEncoder.js.map +1 -1
- package/dist/encoding/zOrderCurveEncoder.js +1 -1
- package/dist/encoding/zOrderCurveEncoder.js.map +1 -1
- package/dist/metadata/tile/logicalStreamType.d.ts +8 -12
- package/dist/metadata/tile/logicalStreamType.js +1 -19
- package/dist/metadata/tile/logicalStreamType.js.map +1 -1
- package/dist/metadata/tile/streamMetadataDecoder.d.ts +1 -1
- package/dist/metadata/tile/streamMetadataDecoder.js +9 -4
- package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.d.ts +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/typeMap.d.ts +10 -2
- package/dist/metadata/tileset/typeMap.js +25 -15
- package/dist/metadata/tileset/typeMap.js.map +1 -1
- package/dist/mltDecoder.js +46 -47
- package/dist/mltDecoder.js.map +1 -1
- package/dist/mltMetadata.js.map +1 -1
- package/dist/vector/constant/int32ConstVector.d.ts +6 -0
- package/dist/vector/constant/int32ConstVector.js +10 -0
- package/dist/vector/constant/int32ConstVector.js.map +1 -0
- package/dist/vector/constant/int64ConstVector.d.ts +6 -0
- package/dist/vector/constant/int64ConstVector.js +10 -0
- package/dist/vector/constant/int64ConstVector.js.map +1 -0
- package/dist/vector/dictionary/stringDictionaryVector.d.ts +1 -2
- package/dist/vector/dictionary/stringDictionaryVector.js +0 -3
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
- package/dist/vector/featureTable.d.ts +7 -8
- package/dist/vector/featureTable.js +10 -42
- package/dist/vector/featureTable.js.map +1 -1
- package/dist/vector/filter/flatSelectionVector.d.ts +1 -1
- package/dist/vector/filter/flatSelectionVector.js +0 -2
- package/dist/vector/filter/flatSelectionVector.js.map +1 -1
- package/dist/vector/filter/selectionVectorUtils.d.ts +1 -1
- package/dist/vector/filter/selectionVectorUtils.js.map +1 -1
- package/dist/vector/filter/sequenceSelectionVector.d.ts +1 -1
- package/dist/vector/filter/sequenceSelectionVector.js +1 -5
- package/dist/vector/filter/sequenceSelectionVector.js.map +1 -1
- package/dist/vector/flat/bitVector.js +0 -2
- package/dist/vector/flat/bitVector.js.map +1 -1
- package/dist/vector/flat/booleanFlatVector.js +0 -1
- package/dist/vector/flat/booleanFlatVector.js.map +1 -1
- package/dist/vector/flat/{intFlatVector.d.ts → int32FlatVector.d.ts} +1 -1
- package/dist/vector/flat/{intFlatVector.js → int32FlatVector.js} +2 -2
- package/dist/vector/flat/int32FlatVector.js.map +1 -0
- package/dist/vector/flat/{longFlatVector.d.ts → int64FlatVector.d.ts} +1 -1
- package/dist/vector/flat/{longFlatVector.js → int64FlatVector.js} +2 -2
- package/dist/vector/flat/int64FlatVector.js.map +1 -0
- package/dist/vector/flat/stringFlatVector.d.ts +0 -1
- package/dist/vector/flat/stringFlatVector.js +0 -2
- package/dist/vector/flat/stringFlatVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +1 -3
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +0 -42
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
- package/dist/vector/geometry/constGeometryVector.d.ts +5 -5
- package/dist/vector/geometry/constGeometryVector.js +1 -3
- package/dist/vector/geometry/constGeometryVector.js.map +1 -1
- package/dist/vector/geometry/constGpuVector.d.ts +4 -4
- package/dist/vector/geometry/constGpuVector.js +1 -3
- package/dist/vector/geometry/constGpuVector.js.map +1 -1
- package/dist/vector/geometry/flatGeometryVector.d.ts +4 -4
- package/dist/vector/geometry/flatGeometryVector.js +1 -5
- package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
- package/dist/vector/geometry/flatGpuVector.d.ts +3 -3
- package/dist/vector/geometry/flatGpuVector.js +0 -1
- package/dist/vector/geometry/flatGpuVector.js.map +1 -1
- package/dist/vector/geometry/geometryType.js.map +1 -1
- package/dist/vector/geometry/geometryVector.d.ts +7 -8
- package/dist/vector/geometry/geometryVector.js +0 -13
- package/dist/vector/geometry/geometryVector.js.map +1 -1
- package/dist/vector/geometry/geometryVectorConverter.d.ts +1 -1
- package/dist/vector/geometry/geometryVectorConverter.js +167 -211
- package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
- package/dist/vector/geometry/gpuVector.d.ts +6 -6
- package/dist/vector/geometry/gpuVector.js +0 -4
- package/dist/vector/geometry/gpuVector.js.map +1 -1
- package/dist/vector/geometry/topologyVector.d.ts +5 -9
- package/dist/vector/geometry/topologyVector.js +1 -19
- package/dist/vector/geometry/topologyVector.js.map +1 -1
- package/dist/vector/geometry/vertexBufferType.js.map +1 -1
- package/dist/vector/idVector.d.ts +8 -0
- package/dist/vector/idVector.js +2 -0
- package/dist/vector/idVector.js.map +1 -0
- package/dist/vector/sequence/{intSequenceVector.d.ts → int32SequenceVector.d.ts} +1 -1
- package/dist/vector/sequence/{intSequenceVector.js → int32SequenceVector.js} +2 -2
- package/dist/vector/sequence/int32SequenceVector.js.map +1 -0
- package/dist/vector/sequence/{longSequenceVector.d.ts → int64SequenceVector.d.ts} +1 -1
- package/dist/vector/sequence/{longSequenceVector.js → int64SequenceVector.js} +2 -2
- package/dist/vector/sequence/int64SequenceVector.js.map +1 -0
- package/dist/vector/sequence/sequenceVector.js +0 -1
- package/dist/vector/sequence/sequenceVector.js.map +1 -1
- package/dist/vector/variableSizeVector.js +0 -1
- package/dist/vector/variableSizeVector.js.map +1 -1
- package/dist/vector/vector.js +1 -5
- package/dist/vector/vector.js.map +1 -1
- package/dist/vector/vectorType.js.map +1 -1
- package/package.json +9 -10
- package/dist/decoding/decodingUtils.spec.d.ts +0 -1
- package/dist/decoding/decodingUtils.spec.js +0 -141
- package/dist/decoding/decodingUtils.spec.js.map +0 -1
- package/dist/decoding/fsstDecoder.spec.d.ts +0 -1
- package/dist/decoding/fsstDecoder.spec.js +0 -57
- package/dist/decoding/fsstDecoder.spec.js.map +0 -1
- package/dist/decoding/integerDecodingUtils.spec.d.ts +0 -1
- package/dist/decoding/integerDecodingUtils.spec.js +0 -300
- package/dist/decoding/integerDecodingUtils.spec.js.map +0 -1
- package/dist/decoding/integerStreamDecoder.spec.d.ts +0 -1
- package/dist/decoding/integerStreamDecoder.spec.js +0 -402
- package/dist/decoding/integerStreamDecoder.spec.js.map +0 -1
- package/dist/decoding/propertyDecoder.spec.d.ts +0 -1
- package/dist/decoding/propertyDecoder.spec.js +0 -448
- package/dist/decoding/propertyDecoder.spec.js.map +0 -1
- package/dist/decoding/stringDecoder.spec.d.ts +0 -1
- package/dist/decoding/stringDecoder.spec.js +0 -387
- package/dist/decoding/stringDecoder.spec.js.map +0 -1
- package/dist/decoding/unpackNullableUtils.spec.d.ts +0 -1
- package/dist/decoding/unpackNullableUtils.spec.js +0 -71
- package/dist/decoding/unpackNullableUtils.spec.js.map +0 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.d.ts +0 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.js +0 -142
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.js.map +0 -1
- package/dist/mltDecoder.spec.d.ts +0 -1
- package/dist/mltDecoder.spec.js +0 -152
- package/dist/mltDecoder.spec.js.map +0 -1
- package/dist/vector/constant/intConstVector.d.ts +0 -6
- package/dist/vector/constant/intConstVector.js +0 -10
- package/dist/vector/constant/intConstVector.js.map +0 -1
- package/dist/vector/constant/longConstVector.d.ts +0 -6
- package/dist/vector/constant/longConstVector.js +0 -10
- package/dist/vector/constant/longConstVector.js.map +0 -1
- package/dist/vector/filter/flatSelectionVector.spec.d.ts +0 -1
- package/dist/vector/filter/flatSelectionVector.spec.js +0 -51
- package/dist/vector/filter/flatSelectionVector.spec.js.map +0 -1
- package/dist/vector/filter/selectionVectorUtil.spec.d.ts +0 -1
- package/dist/vector/filter/selectionVectorUtil.spec.js +0 -154
- package/dist/vector/filter/selectionVectorUtil.spec.js.map +0 -1
- package/dist/vector/filter/sequenceSelectionVector.spec.d.ts +0 -1
- package/dist/vector/filter/sequenceSelectionVector.spec.js +0 -115
- package/dist/vector/filter/sequenceSelectionVector.spec.js.map +0 -1
- package/dist/vector/flat/floatFlatVector.spec.d.ts +0 -1
- package/dist/vector/flat/floatFlatVector.spec.js +0 -14
- package/dist/vector/flat/floatFlatVector.spec.js.map +0 -1
- package/dist/vector/flat/intFlatVector.js.map +0 -1
- package/dist/vector/flat/intFlatVector.spec.d.ts +0 -1
- package/dist/vector/flat/intFlatVector.spec.js +0 -15
- package/dist/vector/flat/intFlatVector.spec.js.map +0 -1
- package/dist/vector/flat/longFlatVector.js.map +0 -1
- package/dist/vector/flat/longFlatVector.spec.d.ts +0 -1
- package/dist/vector/flat/longFlatVector.spec.js +0 -14
- package/dist/vector/flat/longFlatVector.spec.js.map +0 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.d.ts +0 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js +0 -28
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +0 -1
- package/dist/vector/geometry/zOrderCurve.spec.d.ts +0 -1
- package/dist/vector/geometry/zOrderCurve.spec.js +0 -25
- package/dist/vector/geometry/zOrderCurve.spec.js.map +0 -1
- package/dist/vector/intVector.d.ts +0 -8
- package/dist/vector/intVector.js +0 -2
- package/dist/vector/intVector.js.map +0 -1
- package/dist/vector/sequence/intSequenceVector.js.map +0 -1
- package/dist/vector/sequence/longSequenceVector.js.map +0 -1
- package/dist/vector/sequence/longSequenceVektor.spec.d.ts +0 -1
- package/dist/vector/sequence/longSequenceVektor.spec.js +0 -11
- package/dist/vector/sequence/longSequenceVektor.spec.js.map +0 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { bswap32 } from "../decoding/fastPforShared";
|
|
2
|
+
/**
|
|
3
|
+
* Serializes an `Int32Array` to a big-endian byte stream.
|
|
4
|
+
*
|
|
5
|
+
* @param values - Int32 words to serialize.
|
|
6
|
+
* @returns Big-endian byte stream (`values.length * 4` bytes).
|
|
7
|
+
*/
|
|
8
|
+
export function encodeBigEndianInt32s(values) {
|
|
9
|
+
const bytes = new Uint8Array(values.length * 4);
|
|
10
|
+
const u32 = new Uint32Array(bytes.buffer, bytes.byteOffset, values.length);
|
|
11
|
+
for (let i = 0; i < values.length; i++) {
|
|
12
|
+
u32[i] = bswap32(values[i]);
|
|
13
|
+
}
|
|
14
|
+
return bytes;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=bigEndianEncode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bigEndianEncode.js","sourceRoot":"","sources":["../../src/encoding/bigEndianEncode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAmB;IACrD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["import { bswap32 } from \"../decoding/fastPforShared\";\n\n/**\n * Serializes an `Int32Array` to a big-endian byte stream.\n *\n * @param values - Int32 words to serialize.\n * @returns Big-endian byte stream (`values.length * 4` bytes).\n */\nexport function encodeBigEndianInt32s(values: Uint32Array): Uint8Array {\n const bytes = new Uint8Array(values.length * 4);\n const u32 = new Uint32Array(bytes.buffer, bytes.byteOffset, values.length);\n\n for (let i = 0; i < values.length; i++) {\n u32[i] = bswap32(values[i]);\n }\n return bytes;\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { GeometryVector, MortonSettings } from "../vector/geometry/geometryVector";
|
|
2
|
+
export declare const DEFAULT_MORTON_SETTINGS: MortonSettings;
|
|
3
|
+
export declare function encode(x: number, y: number): number;
|
|
4
|
+
export declare function encodePointGeometryVector(x: number, y: number): GeometryVector;
|
|
5
|
+
export declare function encodePointGeometryVectorWithOffset(x: number, y: number): GeometryVector;
|
|
6
|
+
export declare function encodePointGeometryVectorWithMortonEncoding(x: number, y: number): GeometryVector;
|
|
7
|
+
export declare function encodePointsGeometryVector(points: number[]): GeometryVector;
|
|
8
|
+
export declare function encodeMultiPointGeometryVector(points: number[][]): GeometryVector;
|
|
9
|
+
export declare function encodeLineStringGeometryVector(lines: [number, number][]): GeometryVector;
|
|
10
|
+
export declare function encodeLineStringGeometryVectorWithMortonEncoding(line: [number, number][]): GeometryVector;
|
|
11
|
+
export declare function encodePolygonGeometryVector(polygon: [number, number][][]): GeometryVector;
|
|
12
|
+
export declare function encodePolygonGeometryVectorWithOffsets(polygon: [number, number][][]): GeometryVector;
|
|
13
|
+
export declare function encodePolygonGeometryVectorWithMortonOffsets(polygon: [number, number][][]): GeometryVector;
|
|
14
|
+
export declare function encodeMultiLineStringGeometryVector(lines: [number, number][][]): GeometryVector;
|
|
15
|
+
export declare function encodeMultiLineStringGeometryVectorWithOffsets(lines: [number, number][][]): GeometryVector;
|
|
16
|
+
export declare function encodeMultiLineStringGeometryVectorWithMortonOffsets(lines: [number, number][][]): GeometryVector;
|
|
17
|
+
export declare function encodeMultiPolygonGeometryVector(polygons: [number, number][][][]): GeometryVector;
|
|
18
|
+
export declare function encodeMultiPolygonGeometryVectorWithOffsets(polygons: [number, number][][][]): GeometryVector;
|
|
19
|
+
export declare function encodeMultiPolygonGeometryVectorWithMortonOffsets(polygons: [number, number][][][]): GeometryVector;
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { ConstGeometryVector } from "../vector/geometry/constGeometryVector";
|
|
2
|
+
import { GEOMETRY_TYPE } from "../vector/geometry/geometryType";
|
|
3
|
+
import { VertexBufferType } from "../vector/geometry/vertexBufferType";
|
|
4
|
+
import { encodeZOrderCurve } from "./zOrderCurveEncoder";
|
|
5
|
+
export const DEFAULT_MORTON_SETTINGS = { numBits: 16, coordinateShift: 0 };
|
|
6
|
+
export function encode(x, y) {
|
|
7
|
+
return encodeZOrderCurve(x, y, DEFAULT_MORTON_SETTINGS.numBits, DEFAULT_MORTON_SETTINGS.coordinateShift);
|
|
8
|
+
}
|
|
9
|
+
export function encodePointGeometryVector(x, y) {
|
|
10
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.POINT, VertexBufferType.VEC_2, {
|
|
11
|
+
geometryOffsets: new Uint32Array([0]),
|
|
12
|
+
partOffsets: new Uint32Array([0]),
|
|
13
|
+
ringOffsets: new Uint32Array([0]),
|
|
14
|
+
}, undefined, new Int32Array([x, y]));
|
|
15
|
+
}
|
|
16
|
+
export function encodePointGeometryVectorWithOffset(x, y) {
|
|
17
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.POINT, VertexBufferType.VEC_2, {
|
|
18
|
+
geometryOffsets: new Uint32Array([0]),
|
|
19
|
+
partOffsets: new Uint32Array([0]),
|
|
20
|
+
ringOffsets: new Uint32Array([0]),
|
|
21
|
+
}, new Uint32Array([1]), new Int32Array([99, 99, x, y]));
|
|
22
|
+
}
|
|
23
|
+
export function encodePointGeometryVectorWithMortonEncoding(x, y) {
|
|
24
|
+
const mortonEncoded = encode(x, y);
|
|
25
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.POINT, VertexBufferType.MORTON, {
|
|
26
|
+
geometryOffsets: new Uint32Array([0]),
|
|
27
|
+
partOffsets: new Uint32Array([0]),
|
|
28
|
+
ringOffsets: new Uint32Array([0]),
|
|
29
|
+
}, new Uint32Array([0]), new Int32Array([mortonEncoded]), DEFAULT_MORTON_SETTINGS);
|
|
30
|
+
}
|
|
31
|
+
export function encodePointsGeometryVector(points) {
|
|
32
|
+
return new ConstGeometryVector(points.length / 2, GEOMETRY_TYPE.POINT, VertexBufferType.VEC_2, {
|
|
33
|
+
geometryOffsets: new Uint32Array([0]),
|
|
34
|
+
partOffsets: new Uint32Array([0]),
|
|
35
|
+
ringOffsets: new Uint32Array([0]),
|
|
36
|
+
}, undefined, new Int32Array(points));
|
|
37
|
+
}
|
|
38
|
+
export function encodeMultiPointGeometryVector(points) {
|
|
39
|
+
const vertexBuffer = new Int32Array(points.flatMap((point) => [point[0], point[1]]));
|
|
40
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.MULTIPOINT, VertexBufferType.VEC_2, {
|
|
41
|
+
geometryOffsets: new Uint32Array([0, points.length]),
|
|
42
|
+
partOffsets: undefined,
|
|
43
|
+
ringOffsets: undefined,
|
|
44
|
+
}, undefined, vertexBuffer);
|
|
45
|
+
}
|
|
46
|
+
export function encodeLineStringGeometryVector(lines) {
|
|
47
|
+
const vertexBuffer = new Int32Array(lines.flatMap((line) => [line[0], line[1]]));
|
|
48
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.LINESTRING, VertexBufferType.VEC_2, {
|
|
49
|
+
geometryOffsets: undefined,
|
|
50
|
+
partOffsets: new Uint32Array([0, vertexBuffer.length / 2]),
|
|
51
|
+
ringOffsets: undefined,
|
|
52
|
+
}, undefined, vertexBuffer);
|
|
53
|
+
}
|
|
54
|
+
export function encodeLineStringGeometryVectorWithMortonEncoding(line) {
|
|
55
|
+
const numVertices = line.length;
|
|
56
|
+
const vertexBuffer = new Int32Array(numVertices);
|
|
57
|
+
const offsetBuffer = new Uint32Array(numVertices);
|
|
58
|
+
for (let i = 0; i < numVertices; i++) {
|
|
59
|
+
vertexBuffer[i] = encode(line[i][0], line[i][1]);
|
|
60
|
+
offsetBuffer[i] = i;
|
|
61
|
+
}
|
|
62
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.LINESTRING, VertexBufferType.MORTON, {
|
|
63
|
+
geometryOffsets: undefined,
|
|
64
|
+
partOffsets: new Uint32Array([0, numVertices]),
|
|
65
|
+
ringOffsets: undefined,
|
|
66
|
+
}, offsetBuffer, vertexBuffer, DEFAULT_MORTON_SETTINGS);
|
|
67
|
+
}
|
|
68
|
+
export function encodePolygonGeometryVector(polygon) {
|
|
69
|
+
const vertexBuffer = new Int32Array(polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]])));
|
|
70
|
+
const ringOffsets = new Uint32Array(polygon.length + 1);
|
|
71
|
+
ringOffsets[0] = 0;
|
|
72
|
+
let ringIndex = 1;
|
|
73
|
+
for (const ring of polygon) {
|
|
74
|
+
ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;
|
|
75
|
+
ringIndex++;
|
|
76
|
+
}
|
|
77
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.POLYGON, VertexBufferType.VEC_2, {
|
|
78
|
+
geometryOffsets: undefined,
|
|
79
|
+
partOffsets: new Uint32Array([0, polygon.length]),
|
|
80
|
+
ringOffsets,
|
|
81
|
+
}, undefined, vertexBuffer);
|
|
82
|
+
}
|
|
83
|
+
export function encodePolygonGeometryVectorWithOffsets(polygon) {
|
|
84
|
+
const vertexBuffer = new Int32Array(polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]])));
|
|
85
|
+
const ringOffsets = new Uint32Array(polygon.length + 1);
|
|
86
|
+
ringOffsets[0] = 0;
|
|
87
|
+
let ringIndex = 1;
|
|
88
|
+
for (const ring of polygon) {
|
|
89
|
+
ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;
|
|
90
|
+
ringIndex++;
|
|
91
|
+
}
|
|
92
|
+
const offsetBuffer = new Uint32Array(vertexBuffer.length / 2);
|
|
93
|
+
for (let i = 0; i < offsetBuffer.length; i++) {
|
|
94
|
+
offsetBuffer[i] = i;
|
|
95
|
+
}
|
|
96
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.POLYGON, VertexBufferType.VEC_2, {
|
|
97
|
+
geometryOffsets: undefined,
|
|
98
|
+
partOffsets: new Uint32Array([0, polygon.length]),
|
|
99
|
+
ringOffsets,
|
|
100
|
+
}, offsetBuffer, vertexBuffer);
|
|
101
|
+
}
|
|
102
|
+
export function encodePolygonGeometryVectorWithMortonOffsets(polygon) {
|
|
103
|
+
const vertexBuffer = new Int32Array(polygon.flatMap((ring) => ring.flatMap((point) => encode(point[0], point[1]))));
|
|
104
|
+
const ringOffsets = new Uint32Array(polygon.length + 1);
|
|
105
|
+
ringOffsets[0] = 0;
|
|
106
|
+
let ringIndex = 1;
|
|
107
|
+
for (const ring of polygon) {
|
|
108
|
+
ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;
|
|
109
|
+
ringIndex++;
|
|
110
|
+
}
|
|
111
|
+
const offsetBuffer = new Uint32Array(vertexBuffer.length);
|
|
112
|
+
for (let i = 0; i < offsetBuffer.length; i++) {
|
|
113
|
+
offsetBuffer[i] = i;
|
|
114
|
+
}
|
|
115
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.POLYGON, VertexBufferType.MORTON, {
|
|
116
|
+
geometryOffsets: undefined,
|
|
117
|
+
partOffsets: new Uint32Array([0, polygon.length]),
|
|
118
|
+
ringOffsets,
|
|
119
|
+
}, offsetBuffer, vertexBuffer, DEFAULT_MORTON_SETTINGS);
|
|
120
|
+
}
|
|
121
|
+
export function encodeMultiLineStringGeometryVector(lines) {
|
|
122
|
+
const vertexBuffer = new Int32Array(lines.flatMap((line) => line.flatMap((point) => [point[0], point[1]])));
|
|
123
|
+
const partOffsets = new Uint32Array(lines.length + 1);
|
|
124
|
+
partOffsets[0] = 0;
|
|
125
|
+
let partIndex = 1;
|
|
126
|
+
for (const line of lines) {
|
|
127
|
+
partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;
|
|
128
|
+
partIndex++;
|
|
129
|
+
}
|
|
130
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.MULTILINESTRING, VertexBufferType.VEC_2, {
|
|
131
|
+
geometryOffsets: new Uint32Array([0, lines.length]),
|
|
132
|
+
partOffsets,
|
|
133
|
+
ringOffsets: undefined,
|
|
134
|
+
}, undefined, vertexBuffer);
|
|
135
|
+
}
|
|
136
|
+
export function encodeMultiLineStringGeometryVectorWithOffsets(lines) {
|
|
137
|
+
const vertexBuffer = new Int32Array(lines.flatMap((line) => line.flatMap((point) => [point[0], point[1]])));
|
|
138
|
+
const partOffsets = new Uint32Array(lines.length + 1);
|
|
139
|
+
partOffsets[0] = 0;
|
|
140
|
+
let partIndex = 1;
|
|
141
|
+
for (const line of lines) {
|
|
142
|
+
partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;
|
|
143
|
+
partIndex++;
|
|
144
|
+
}
|
|
145
|
+
const offsetBuffer = new Uint32Array(vertexBuffer.length / 2);
|
|
146
|
+
for (let i = 0; i < offsetBuffer.length; i++) {
|
|
147
|
+
offsetBuffer[i] = i;
|
|
148
|
+
}
|
|
149
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.MULTILINESTRING, VertexBufferType.VEC_2, {
|
|
150
|
+
geometryOffsets: new Uint32Array([0, lines.length]),
|
|
151
|
+
partOffsets,
|
|
152
|
+
ringOffsets: undefined,
|
|
153
|
+
}, offsetBuffer, vertexBuffer);
|
|
154
|
+
}
|
|
155
|
+
export function encodeMultiLineStringGeometryVectorWithMortonOffsets(lines) {
|
|
156
|
+
const vertexBuffer = new Int32Array(lines.flatMap((line) => line.flatMap((point) => encode(point[0], point[1]))));
|
|
157
|
+
const partOffsets = new Uint32Array(lines.length + 1);
|
|
158
|
+
partOffsets[0] = 0;
|
|
159
|
+
let partIndex = 1;
|
|
160
|
+
for (const line of lines) {
|
|
161
|
+
partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;
|
|
162
|
+
partIndex++;
|
|
163
|
+
}
|
|
164
|
+
const offsetBuffer = new Uint32Array(vertexBuffer.length);
|
|
165
|
+
for (let i = 0; i < offsetBuffer.length; i++) {
|
|
166
|
+
offsetBuffer[i] = i;
|
|
167
|
+
}
|
|
168
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.MULTILINESTRING, VertexBufferType.MORTON, {
|
|
169
|
+
geometryOffsets: new Uint32Array([0, lines.length]),
|
|
170
|
+
partOffsets,
|
|
171
|
+
ringOffsets: undefined,
|
|
172
|
+
}, offsetBuffer, vertexBuffer, DEFAULT_MORTON_SETTINGS);
|
|
173
|
+
}
|
|
174
|
+
export function encodeMultiPolygonGeometryVector(polygons) {
|
|
175
|
+
const vertexBuffer = new Int32Array(polygons.flatMap((polygon) => polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]]))));
|
|
176
|
+
const ringOffsets = new Uint32Array(polygons.reduce((sum, polygon) => sum + polygon.length, 0) + 1);
|
|
177
|
+
const partOffsets = new Uint32Array(polygons.length + 1);
|
|
178
|
+
ringOffsets[0] = 0;
|
|
179
|
+
partOffsets[0] = 0;
|
|
180
|
+
let ringIndex = 1;
|
|
181
|
+
let partIndex = 1;
|
|
182
|
+
for (const polygon of polygons) {
|
|
183
|
+
for (const ring of polygon) {
|
|
184
|
+
ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;
|
|
185
|
+
ringIndex++;
|
|
186
|
+
}
|
|
187
|
+
partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;
|
|
188
|
+
partIndex++;
|
|
189
|
+
}
|
|
190
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.MULTIPOLYGON, VertexBufferType.VEC_2, {
|
|
191
|
+
geometryOffsets: new Uint32Array([0, polygons.length]),
|
|
192
|
+
partOffsets,
|
|
193
|
+
ringOffsets,
|
|
194
|
+
}, undefined, vertexBuffer);
|
|
195
|
+
}
|
|
196
|
+
export function encodeMultiPolygonGeometryVectorWithOffsets(polygons) {
|
|
197
|
+
const vertexBuffer = new Int32Array(polygons.flatMap((polygon) => polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]]))));
|
|
198
|
+
const ringOffsets = new Uint32Array(polygons.reduce((sum, polygon) => sum + polygon.length, 0) + 1);
|
|
199
|
+
const partOffsets = new Uint32Array(polygons.length + 1);
|
|
200
|
+
ringOffsets[0] = 0;
|
|
201
|
+
partOffsets[0] = 0;
|
|
202
|
+
let ringIndex = 1;
|
|
203
|
+
let partIndex = 1;
|
|
204
|
+
for (const polygon of polygons) {
|
|
205
|
+
for (const ring of polygon) {
|
|
206
|
+
ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;
|
|
207
|
+
ringIndex++;
|
|
208
|
+
}
|
|
209
|
+
partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;
|
|
210
|
+
partIndex++;
|
|
211
|
+
}
|
|
212
|
+
const offsetBuffer = new Uint32Array(vertexBuffer.length / 2);
|
|
213
|
+
for (let i = 0; i < offsetBuffer.length; i++) {
|
|
214
|
+
offsetBuffer[i] = i;
|
|
215
|
+
}
|
|
216
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.MULTIPOLYGON, VertexBufferType.VEC_2, {
|
|
217
|
+
geometryOffsets: new Uint32Array([0, polygons.length]),
|
|
218
|
+
partOffsets,
|
|
219
|
+
ringOffsets,
|
|
220
|
+
}, offsetBuffer, vertexBuffer);
|
|
221
|
+
}
|
|
222
|
+
export function encodeMultiPolygonGeometryVectorWithMortonOffsets(polygons) {
|
|
223
|
+
const vertexBuffer = new Int32Array(polygons.flatMap((polygon) => polygon.flatMap((ring) => ring.flatMap((point) => encode(point[0], point[1])))));
|
|
224
|
+
const ringOffsets = new Uint32Array(polygons.reduce((sum, polygon) => sum + polygon.length, 0) + 1);
|
|
225
|
+
const partOffsets = new Uint32Array(polygons.length + 1);
|
|
226
|
+
ringOffsets[0] = 0;
|
|
227
|
+
partOffsets[0] = 0;
|
|
228
|
+
let ringIndex = 1;
|
|
229
|
+
let partIndex = 1;
|
|
230
|
+
for (const polygon of polygons) {
|
|
231
|
+
for (const ring of polygon) {
|
|
232
|
+
ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;
|
|
233
|
+
ringIndex++;
|
|
234
|
+
}
|
|
235
|
+
partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;
|
|
236
|
+
partIndex++;
|
|
237
|
+
}
|
|
238
|
+
const offsetBuffer = new Uint32Array(vertexBuffer.length);
|
|
239
|
+
for (let i = 0; i < offsetBuffer.length; i++) {
|
|
240
|
+
offsetBuffer[i] = i;
|
|
241
|
+
}
|
|
242
|
+
return new ConstGeometryVector(1, GEOMETRY_TYPE.MULTIPOLYGON, VertexBufferType.MORTON, {
|
|
243
|
+
geometryOffsets: new Uint32Array([0, polygons.length]),
|
|
244
|
+
partOffsets,
|
|
245
|
+
ringOffsets,
|
|
246
|
+
}, offsetBuffer, vertexBuffer, DEFAULT_MORTON_SETTINGS);
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=constGeometryVectorEncoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constGeometryVectorEncoder.js","sourceRoot":"","sources":["../../src/encoding/constGeometryVectorEncoder.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConstGeometryVector } from \"../vector/geometry/constGeometryVector\";\nimport { GEOMETRY_TYPE } from \"../vector/geometry/geometryType\";\nimport { VertexBufferType } from \"../vector/geometry/vertexBufferType\";\nimport { encodeZOrderCurve } from \"./zOrderCurveEncoder\";\nimport type { GeometryVector, MortonSettings } from \"../vector/geometry/geometryVector\";\n\nexport const DEFAULT_MORTON_SETTINGS: MortonSettings = { numBits: 16, coordinateShift: 0 } as MortonSettings;\n\nexport function encode(x: number, y: number): number {\n return encodeZOrderCurve(x, y, DEFAULT_MORTON_SETTINGS.numBits, DEFAULT_MORTON_SETTINGS.coordinateShift);\n}\n\nexport function encodePointGeometryVector(x: number, y: number): GeometryVector {\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POINT,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0]),\n partOffsets: new Uint32Array([0]),\n ringOffsets: new Uint32Array([0]),\n },\n undefined,\n new Int32Array([x, y]),\n );\n}\n\nexport function encodePointGeometryVectorWithOffset(x: number, y: number): GeometryVector {\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POINT,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0]),\n partOffsets: new Uint32Array([0]),\n ringOffsets: new Uint32Array([0]),\n },\n new Uint32Array([1]),\n new Int32Array([99, 99, x, y]),\n );\n}\n\nexport function encodePointGeometryVectorWithMortonEncoding(x: number, y: number): GeometryVector {\n const mortonEncoded = encode(x, y);\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POINT,\n VertexBufferType.MORTON,\n {\n geometryOffsets: new Uint32Array([0]),\n partOffsets: new Uint32Array([0]),\n ringOffsets: new Uint32Array([0]),\n },\n new Uint32Array([0]),\n new Int32Array([mortonEncoded]),\n DEFAULT_MORTON_SETTINGS,\n );\n}\n\nexport function encodePointsGeometryVector(points: number[]): GeometryVector {\n return new ConstGeometryVector(\n points.length / 2,\n GEOMETRY_TYPE.POINT,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0]),\n partOffsets: new Uint32Array([0]),\n ringOffsets: new Uint32Array([0]),\n },\n undefined,\n new Int32Array(points),\n );\n}\n\nexport function encodeMultiPointGeometryVector(points: number[][]): GeometryVector {\n const vertexBuffer = new Int32Array(points.flatMap((point) => [point[0], point[1]]));\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTIPOINT,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, points.length]),\n partOffsets: undefined,\n ringOffsets: undefined,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodeLineStringGeometryVector(lines: [number, number][]): GeometryVector {\n const vertexBuffer = new Int32Array(lines.flatMap((line) => [line[0], line[1]]));\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.LINESTRING,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, vertexBuffer.length / 2]),\n ringOffsets: undefined,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodeLineStringGeometryVectorWithMortonEncoding(line: [number, number][]): GeometryVector {\n const numVertices = line.length;\n const vertexBuffer = new Int32Array(numVertices);\n const offsetBuffer = new Uint32Array(numVertices);\n for (let i = 0; i < numVertices; i++) {\n vertexBuffer[i] = encode(line[i][0], line[i][1]);\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.LINESTRING,\n VertexBufferType.MORTON,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, numVertices]),\n ringOffsets: undefined,\n },\n offsetBuffer,\n vertexBuffer,\n DEFAULT_MORTON_SETTINGS,\n );\n}\n\nexport function encodePolygonGeometryVector(polygon: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]])));\n const ringOffsets = new Uint32Array(polygon.length + 1);\n ringOffsets[0] = 0;\n let ringIndex = 1;\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POLYGON,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, polygon.length]),\n ringOffsets,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodePolygonGeometryVectorWithOffsets(polygon: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]])));\n const ringOffsets = new Uint32Array(polygon.length + 1);\n ringOffsets[0] = 0;\n let ringIndex = 1;\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n const offsetBuffer = new Uint32Array(vertexBuffer.length / 2);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POLYGON,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, polygon.length]),\n ringOffsets,\n },\n offsetBuffer,\n vertexBuffer,\n );\n}\n\nexport function encodePolygonGeometryVectorWithMortonOffsets(polygon: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(polygon.flatMap((ring) => ring.flatMap((point) => encode(point[0], point[1]))));\n const ringOffsets = new Uint32Array(polygon.length + 1);\n ringOffsets[0] = 0;\n let ringIndex = 1;\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n const offsetBuffer = new Uint32Array(vertexBuffer.length);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.POLYGON,\n VertexBufferType.MORTON,\n {\n geometryOffsets: undefined,\n partOffsets: new Uint32Array([0, polygon.length]),\n ringOffsets,\n },\n offsetBuffer,\n vertexBuffer,\n DEFAULT_MORTON_SETTINGS,\n );\n}\n\nexport function encodeMultiLineStringGeometryVector(lines: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(lines.flatMap((line) => line.flatMap((point) => [point[0], point[1]])));\n const partOffsets = new Uint32Array(lines.length + 1);\n partOffsets[0] = 0;\n let partIndex = 1;\n for (const line of lines) {\n partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;\n partIndex++;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTILINESTRING,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, lines.length]),\n partOffsets,\n ringOffsets: undefined,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodeMultiLineStringGeometryVectorWithOffsets(lines: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(lines.flatMap((line) => line.flatMap((point) => [point[0], point[1]])));\n const partOffsets = new Uint32Array(lines.length + 1);\n partOffsets[0] = 0;\n let partIndex = 1;\n for (const line of lines) {\n partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;\n partIndex++;\n }\n const offsetBuffer = new Uint32Array(vertexBuffer.length / 2);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTILINESTRING,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, lines.length]),\n partOffsets,\n ringOffsets: undefined,\n },\n offsetBuffer,\n vertexBuffer,\n );\n}\n\nexport function encodeMultiLineStringGeometryVectorWithMortonOffsets(lines: [number, number][][]): GeometryVector {\n const vertexBuffer = new Int32Array(lines.flatMap((line) => line.flatMap((point) => encode(point[0], point[1]))));\n const partOffsets = new Uint32Array(lines.length + 1);\n partOffsets[0] = 0;\n let partIndex = 1;\n for (const line of lines) {\n partOffsets[partIndex] = partOffsets[partIndex - 1] + line.length;\n partIndex++;\n }\n const offsetBuffer = new Uint32Array(vertexBuffer.length);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTILINESTRING,\n VertexBufferType.MORTON,\n {\n geometryOffsets: new Uint32Array([0, lines.length]),\n partOffsets,\n ringOffsets: undefined,\n },\n offsetBuffer,\n vertexBuffer,\n DEFAULT_MORTON_SETTINGS,\n );\n}\n\nexport function encodeMultiPolygonGeometryVector(polygons: [number, number][][][]): GeometryVector {\n const vertexBuffer = new Int32Array(\n polygons.flatMap((polygon) => polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]]))),\n );\n const ringOffsets = new Uint32Array(polygons.reduce((sum, polygon) => sum + polygon.length, 0) + 1);\n const partOffsets = new Uint32Array(polygons.length + 1);\n ringOffsets[0] = 0;\n partOffsets[0] = 0;\n let ringIndex = 1;\n let partIndex = 1;\n for (const polygon of polygons) {\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;\n partIndex++;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTIPOLYGON,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, polygons.length]),\n partOffsets,\n ringOffsets,\n },\n undefined,\n vertexBuffer,\n );\n}\n\nexport function encodeMultiPolygonGeometryVectorWithOffsets(polygons: [number, number][][][]): GeometryVector {\n const vertexBuffer = new Int32Array(\n polygons.flatMap((polygon) => polygon.flatMap((ring) => ring.flatMap((point) => [point[0], point[1]]))),\n );\n const ringOffsets = new Uint32Array(polygons.reduce((sum, polygon) => sum + polygon.length, 0) + 1);\n const partOffsets = new Uint32Array(polygons.length + 1);\n ringOffsets[0] = 0;\n partOffsets[0] = 0;\n let ringIndex = 1;\n let partIndex = 1;\n for (const polygon of polygons) {\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;\n partIndex++;\n }\n const offsetBuffer = new Uint32Array(vertexBuffer.length / 2);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTIPOLYGON,\n VertexBufferType.VEC_2,\n {\n geometryOffsets: new Uint32Array([0, polygons.length]),\n partOffsets,\n ringOffsets,\n },\n offsetBuffer,\n vertexBuffer,\n );\n}\n\nexport function encodeMultiPolygonGeometryVectorWithMortonOffsets(polygons: [number, number][][][]): GeometryVector {\n const vertexBuffer = new Int32Array(\n polygons.flatMap((polygon) => polygon.flatMap((ring) => ring.flatMap((point) => encode(point[0], point[1])))),\n );\n const ringOffsets = new Uint32Array(polygons.reduce((sum, polygon) => sum + polygon.length, 0) + 1);\n const partOffsets = new Uint32Array(polygons.length + 1);\n ringOffsets[0] = 0;\n partOffsets[0] = 0;\n let ringIndex = 1;\n let partIndex = 1;\n for (const polygon of polygons) {\n for (const ring of polygon) {\n ringOffsets[ringIndex] = ringOffsets[ringIndex - 1] + ring.length;\n ringIndex++;\n }\n partOffsets[partIndex] = partOffsets[partIndex - 1] + polygon.length;\n partIndex++;\n }\n const offsetBuffer = new Uint32Array(vertexBuffer.length);\n for (let i = 0; i < offsetBuffer.length; i++) {\n offsetBuffer[i] = i;\n }\n\n return new ConstGeometryVector(\n 1,\n GEOMETRY_TYPE.MULTIPOLYGON,\n VertexBufferType.MORTON,\n {\n geometryOffsets: new Uint32Array([0, polygons.length]),\n partOffsets,\n ringOffsets,\n },\n offsetBuffer,\n vertexBuffer,\n DEFAULT_MORTON_SETTINGS,\n );\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare function encodeFloatsLE(values: Float32Array): Uint8Array;
|
|
2
|
-
export declare function encodeDoubleLE(values:
|
|
2
|
+
export declare function encodeDoubleLE(values: Float64Array): Uint8Array;
|
|
3
3
|
export declare function encodeBooleanRle(values: boolean[]): Uint8Array;
|
|
4
4
|
export declare function encodeByteRle(values: Uint8Array): Uint8Array;
|
|
5
5
|
export declare function encodeStrings(strings: string[]): Uint8Array;
|
|
6
|
-
export declare function createStringLengths(strings: string[]):
|
|
6
|
+
export declare function createStringLengths(strings: string[]): Uint32Array;
|
|
7
7
|
export declare function concatenateBuffers(...buffers: Uint8Array[]): Uint8Array;
|
|
@@ -7,10 +7,10 @@ export function encodeFloatsLE(values) {
|
|
|
7
7
|
return buffer;
|
|
8
8
|
}
|
|
9
9
|
export function encodeDoubleLE(values) {
|
|
10
|
-
const buffer = new Uint8Array(values.length *
|
|
10
|
+
const buffer = new Uint8Array(values.length * Float64Array.BYTES_PER_ELEMENT);
|
|
11
11
|
const view = new DataView(buffer.buffer);
|
|
12
12
|
for (let i = 0; i < values.length; i++) {
|
|
13
|
-
view.setFloat64(i *
|
|
13
|
+
view.setFloat64(i * Float64Array.BYTES_PER_ELEMENT, values[i], true);
|
|
14
14
|
}
|
|
15
15
|
return buffer;
|
|
16
16
|
}
|
|
@@ -87,7 +87,7 @@ export function encodeStrings(strings) {
|
|
|
87
87
|
return result;
|
|
88
88
|
}
|
|
89
89
|
export function createStringLengths(strings) {
|
|
90
|
-
const lengths = new
|
|
90
|
+
const lengths = new Uint32Array(strings.length);
|
|
91
91
|
const encoder = new TextEncoder();
|
|
92
92
|
for (let i = 0; i < strings.length; i++) {
|
|
93
93
|
lengths[i] = encoder.encode(strings[i]).length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encodingUtils.js","sourceRoot":"","sources":["../../src/encoding/encodingUtils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,MAAoB;IAC/C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAoB;IAC/C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"encodingUtils.js","sourceRoot":"","sources":["../../src/encoding/encodingUtils.ts"],"names":[],"mappings":"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","sourcesContent":["export function encodeFloatsLE(values: Float32Array): Uint8Array {\n const buffer = new Uint8Array(values.length * 4);\n const view = new DataView(buffer.buffer);\n\n for (let i = 0; i < values.length; i++) {\n view.setFloat32(i * 4, values[i], true);\n }\n\n return buffer;\n}\n\nexport function encodeDoubleLE(values: Float64Array): Uint8Array {\n const buffer = new Uint8Array(values.length * Float64Array.BYTES_PER_ELEMENT);\n const view = new DataView(buffer.buffer);\n\n for (let i = 0; i < values.length; i++) {\n view.setFloat64(i * Float64Array.BYTES_PER_ELEMENT, values[i], true);\n }\n\n return buffer;\n}\n\nexport function encodeBooleanRle(values: boolean[]): Uint8Array {\n // Pack booleans into bytes (8 booleans per byte)\n const numBytes = Math.ceil(values.length / 8);\n const packed = new Uint8Array(numBytes);\n\n for (let i = 0; i < values.length; i++) {\n if (values[i]) {\n const byteIndex = Math.floor(i / 8);\n const bitIndex = i % 8;\n packed[byteIndex] |= 1 << bitIndex;\n }\n }\n\n const result = new Uint8Array(1 + numBytes);\n result[0] = 256 - numBytes;\n result.set(packed, 1);\n\n return result;\n}\n\nexport function encodeByteRle(values: Uint8Array): Uint8Array {\n const result: number[] = [];\n let i = 0;\n\n while (i < values.length) {\n const currentByte = values[i];\n let runLength = 1;\n\n while (i + runLength < values.length && values[i + runLength] === currentByte && runLength < 131) {\n runLength++;\n }\n\n if (runLength >= 3) {\n const header = runLength - 3;\n result.push(Math.min(header, 0x7f));\n result.push(currentByte);\n i += runLength;\n } else {\n const literalStart = i;\n while (i < values.length) {\n let nextRunLength = 1;\n if (i + 1 < values.length) {\n while (\n i + nextRunLength < values.length &&\n values[i + nextRunLength] === values[i] &&\n nextRunLength < 3\n ) {\n nextRunLength++;\n }\n }\n\n if (nextRunLength >= 3) {\n break;\n }\n i++;\n\n if (i - literalStart >= 128) {\n break;\n }\n }\n\n const numLiterals = i - literalStart;\n const header = 256 - numLiterals;\n result.push(header);\n for (let j = literalStart; j < i; j++) {\n result.push(values[j]);\n }\n }\n }\n\n return new Uint8Array(result);\n}\n\nexport function encodeStrings(strings: string[]): Uint8Array {\n const encoder = new TextEncoder();\n const encoded = strings.map((s) => encoder.encode(s));\n const totalLength = encoded.reduce((sum, arr) => sum + arr.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const arr of encoded) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n\nexport function createStringLengths(strings: string[]): Uint32Array {\n const lengths = new Uint32Array(strings.length);\n const encoder = new TextEncoder();\n for (let i = 0; i < strings.length; i++) {\n lengths[i] = encoder.encode(strings[i]).length;\n }\n return lengths;\n}\n\nexport function concatenateBuffers(...buffers: Uint8Array[]): Uint8Array {\n const totalLength = buffers.reduce((sum, buf) => sum + buf.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n\n for (const buffer of buffers) {\n result.set(buffer, offset);\n offset += buffer.length;\n }\n\n return result;\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal workspace for the FastPFOR encoder.
|
|
3
|
+
* Exposed so callers can avoid allocations.
|
|
4
|
+
* Use one workspace per concurrent encode call.
|
|
5
|
+
*/
|
|
6
|
+
export type FastPforEncoderWorkspace = {
|
|
7
|
+
dataToBePacked: Array<Uint32Array | undefined>;
|
|
8
|
+
dataPointers: Int32Array;
|
|
9
|
+
byteContainer: Uint8Array;
|
|
10
|
+
bitWidthFrequencies: Int32Array;
|
|
11
|
+
bestBitWidthPlan: Int32Array;
|
|
12
|
+
};
|
|
13
|
+
export declare function fastPack32(inValues: Uint32Array, inPos: number, out: Uint32Array, outPos: number, bitWidth: number): void;
|
|
14
|
+
export declare function createFastPforEncoderWorkspace(): FastPforEncoderWorkspace;
|
|
15
|
+
/**
|
|
16
|
+
* Encodes an int32 stream using the FastPFOR wire format (pages + VByte tail).
|
|
17
|
+
*/
|
|
18
|
+
export declare function encodeFastPforInt32WithWorkspace(values: Uint32Array, workspace: FastPforEncoderWorkspace): Uint32Array;
|