@maplibre/mlt 1.1.2 → 1.1.4
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/decodingTestUtils.d.ts +75 -0
- package/dist/decoding/decodingTestUtils.js +285 -0
- package/dist/decoding/decodingTestUtils.js.map +1 -0
- package/dist/decoding/decodingUtils.d.ts +5 -8
- package/dist/decoding/decodingUtils.js +22 -49
- package/dist/decoding/decodingUtils.js.map +1 -1
- package/dist/decoding/decodingUtils.spec.js +85 -69
- package/dist/decoding/decodingUtils.spec.js.map +1 -1
- package/dist/decoding/fsstDecoder.spec.js +52 -35
- package/dist/decoding/fsstDecoder.spec.js.map +1 -1
- package/dist/decoding/geometryDecoder.js +41 -30
- package/dist/decoding/geometryDecoder.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.d.ts +18 -31
- package/dist/decoding/integerDecodingUtils.js +134 -299
- package/dist/decoding/integerDecodingUtils.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.spec.js +254 -148
- package/dist/decoding/integerDecodingUtils.spec.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.d.ts +4 -6
- package/dist/decoding/integerStreamDecoder.js +104 -122
- package/dist/decoding/integerStreamDecoder.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.spec.js +370 -131
- package/dist/decoding/integerStreamDecoder.spec.js.map +1 -1
- package/dist/decoding/propertyDecoder.js +13 -23
- package/dist/decoding/propertyDecoder.js.map +1 -1
- package/dist/decoding/propertyDecoder.spec.js +397 -608
- package/dist/decoding/propertyDecoder.spec.js.map +1 -1
- package/dist/decoding/stringDecoder.js +5 -9
- package/dist/decoding/stringDecoder.js.map +1 -1
- package/dist/decoding/stringDecoder.spec.js +322 -321
- package/dist/decoding/stringDecoder.spec.js.map +1 -1
- package/dist/decoding/unpackNullableUtils.d.ts +25 -0
- package/dist/decoding/unpackNullableUtils.js +51 -0
- package/dist/decoding/unpackNullableUtils.js.map +1 -0
- package/dist/decoding/unpackNullableUtils.spec.js +71 -0
- package/dist/decoding/unpackNullableUtils.spec.js.map +1 -0
- package/dist/encoding/embeddedTilesetMetadataEncoder.d.ts +16 -0
- package/dist/encoding/embeddedTilesetMetadataEncoder.js +40 -0
- package/dist/encoding/embeddedTilesetMetadataEncoder.js.map +1 -0
- package/dist/encoding/encodingUtils.d.ts +7 -0
- package/dist/encoding/encodingUtils.js +107 -0
- package/dist/encoding/encodingUtils.js.map +1 -0
- package/dist/encoding/fsstEncoder.d.ts +21 -0
- package/dist/encoding/fsstEncoder.js +78 -0
- package/dist/encoding/fsstEncoder.js.map +1 -0
- package/dist/encoding/integerEncodingUtils.d.ts +68 -0
- package/dist/encoding/integerEncodingUtils.js +655 -0
- package/dist/encoding/integerEncodingUtils.js.map +1 -0
- package/dist/encoding/integerStreamEncoder.d.ts +27 -0
- package/dist/encoding/integerStreamEncoder.js +139 -0
- package/dist/encoding/integerStreamEncoder.js.map +1 -0
- package/dist/encoding/packNullableUtils.d.ts +4 -0
- package/dist/encoding/packNullableUtils.js +55 -0
- package/dist/encoding/packNullableUtils.js.map +1 -0
- package/dist/encoding/propertyEncoder.d.ts +78 -0
- package/dist/encoding/propertyEncoder.js +335 -0
- package/dist/encoding/propertyEncoder.js.map +1 -0
- package/dist/encoding/stringEncoder.d.ts +12 -0
- package/dist/encoding/stringEncoder.js +182 -0
- package/dist/encoding/stringEncoder.js.map +1 -0
- package/dist/encoding/zOrderCurveEncoder.d.ts +1 -0
- package/dist/encoding/zOrderCurveEncoder.js +10 -0
- package/dist/encoding/zOrderCurveEncoder.js.map +1 -0
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.d.ts +5 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js +29 -41
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.d.ts +1 -0
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.js +142 -0
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.spec.js.map +1 -0
- package/dist/mltDecoder.js +1 -2
- package/dist/mltDecoder.js.map +1 -1
- package/dist/vector/dictionary/stringDictionaryVector.d.ts +1 -1
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
- package/dist/vector/flat/stringFlatVector.d.ts +1 -1
- package/dist/vector/flat/stringFlatVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js +2 -2
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +1 -1
- package/dist/vector/geometry/constGpuVector.d.ts +2 -2
- package/dist/vector/geometry/constGpuVector.js.map +1 -1
- package/dist/vector/geometry/flatGpuVector.d.ts +2 -2
- package/dist/vector/geometry/flatGpuVector.js.map +1 -1
- package/dist/vector/geometry/gpuVector.d.ts +2 -2
- package/dist/vector/geometry/gpuVector.js.map +1 -1
- package/dist/vector/geometry/topologyVector.d.ts +4 -4
- package/dist/vector/geometry/topologyVector.js +0 -1
- package/dist/vector/geometry/topologyVector.js.map +1 -1
- package/dist/vector/geometry/zOrderCurve.spec.js +17 -11
- package/dist/vector/geometry/zOrderCurve.spec.js.map +1 -1
- package/dist/vector/variableSizeVector.d.ts +2 -2
- package/dist/vector/variableSizeVector.js +0 -1
- package/dist/vector/variableSizeVector.js.map +1 -1
- package/package.json +6 -8
- package/dist/decoding/geometryDecoder.spec.js +0 -5
- package/dist/decoding/geometryDecoder.spec.js.map +0 -1
- /package/dist/decoding/{geometryDecoder.spec.d.ts → unpackNullableUtils.spec.d.ts} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { GpuVector } from "./gpuVector";
|
|
2
2
|
import type TopologyVector from "./topologyVector";
|
|
3
|
-
export declare function createFlatGpuVector(geometryTypes: Int32Array, triangleOffsets:
|
|
3
|
+
export declare function createFlatGpuVector(geometryTypes: Int32Array, triangleOffsets: Uint32Array, indexBuffer: Int32Array, vertexBuffer: Int32Array, topologyVector?: TopologyVector | null): GpuVector;
|
|
4
4
|
export declare class FlatGpuVector extends GpuVector {
|
|
5
5
|
private readonly _geometryTypes;
|
|
6
|
-
constructor(_geometryTypes: Int32Array, triangleOffsets:
|
|
6
|
+
constructor(_geometryTypes: Int32Array, triangleOffsets: Uint32Array, indexBuffer: Int32Array, vertexBuffer: Int32Array, topologyVector: TopologyVector | null);
|
|
7
7
|
geometryType(index: number): number;
|
|
8
8
|
get numGeometries(): number;
|
|
9
9
|
containsSingleGeometryType(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flatGpuVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/flatGpuVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,UAAU,mBAAmB,CAC/B,aAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"flatGpuVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/flatGpuVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,UAAU,mBAAmB,CAC/B,aAAyB,EACzB,eAA4B,EAC5B,WAAuB,EACvB,YAAwB,EACxB,cAAsC;IAEtC,OAAO,IAAI,aAAa,CAAC,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AACxG,CAAC;AAED,mEAAmE;AACnE,MAAM,OAAO,aAAc,SAAQ,SAAS;IAEnB;IADrB,YACqB,cAA0B,EAC3C,eAA4B,EAC5B,WAAuB,EACvB,YAAwB,EACxB,cAAqC;QAErC,KAAK,CAAC,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QANjD,mBAAc,GAAd,cAAc,CAAY;IAO/C,CAAC;IAED,YAAY,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,0BAA0B;QACtB,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ","sourcesContent":["import { GpuVector } from \"./gpuVector\";\nimport type TopologyVector from \"./topologyVector\";\n\nexport function createFlatGpuVector(\n geometryTypes: Int32Array,\n triangleOffsets: Uint32Array,\n indexBuffer: Int32Array,\n vertexBuffer: Int32Array,\n topologyVector?: TopologyVector | null,\n): GpuVector {\n return new FlatGpuVector(geometryTypes, triangleOffsets, indexBuffer, vertexBuffer, topologyVector);\n}\n\n//TODO: extend from GeometryVector -> make topology vector optional\nexport class FlatGpuVector extends GpuVector {\n constructor(\n private readonly _geometryTypes: Int32Array,\n triangleOffsets: Uint32Array,\n indexBuffer: Int32Array,\n vertexBuffer: Int32Array,\n topologyVector: TopologyVector | null,\n ) {\n super(triangleOffsets, indexBuffer, vertexBuffer, topologyVector);\n }\n\n geometryType(index: number): number {\n return this._geometryTypes[index];\n }\n\n get numGeometries(): number {\n return this._geometryTypes.length;\n }\n\n containsSingleGeometryType(): boolean {\n return false;\n }\n}\n"]}
|
|
@@ -5,11 +5,11 @@ export declare abstract class GpuVector implements Iterable<CoordinatesArray> {
|
|
|
5
5
|
private readonly _indexBuffer;
|
|
6
6
|
private readonly _vertexBuffer;
|
|
7
7
|
private readonly _topologyVector?;
|
|
8
|
-
protected constructor(_triangleOffsets:
|
|
8
|
+
protected constructor(_triangleOffsets: Uint32Array, _indexBuffer: Int32Array, _vertexBuffer: Int32Array, _topologyVector?: TopologyVector | null);
|
|
9
9
|
abstract geometryType(index: number): number;
|
|
10
10
|
abstract get numGeometries(): number;
|
|
11
11
|
abstract containsSingleGeometryType(): boolean;
|
|
12
|
-
get triangleOffsets():
|
|
12
|
+
get triangleOffsets(): Uint32Array;
|
|
13
13
|
get indexBuffer(): Int32Array;
|
|
14
14
|
get vertexBuffer(): Int32Array;
|
|
15
15
|
get topologyVector(): TopologyVector | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gpuVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/gpuVector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,wBAAwB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAI/C,MAAM,OAAgB,SAAS;IAEN;IACA;IACA;IACA;IAJrB,YACqB,
|
|
1
|
+
{"version":3,"file":"gpuVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/gpuVector.ts"],"names":[],"mappings":"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","sourcesContent":["import Point from \"@mapbox/point-geometry\";\nimport { GEOMETRY_TYPE } from \"./geometryType\";\nimport { type CoordinatesArray } from \"./geometryVector\";\nimport type TopologyVector from \"./topologyVector\";\n\nexport abstract class GpuVector implements Iterable<CoordinatesArray> {\n protected constructor(\n private readonly _triangleOffsets: Uint32Array,\n private readonly _indexBuffer: Int32Array,\n private readonly _vertexBuffer: Int32Array,\n private readonly _topologyVector?: TopologyVector | null,\n ) {}\n\n abstract geometryType(index: number): number;\n\n abstract get numGeometries(): number;\n\n abstract containsSingleGeometryType(): boolean;\n\n get triangleOffsets(): Uint32Array {\n return this._triangleOffsets;\n }\n\n get indexBuffer(): Int32Array {\n return this._indexBuffer;\n }\n\n get vertexBuffer(): Int32Array {\n return this._vertexBuffer;\n }\n\n get topologyVector(): TopologyVector | null {\n return this._topologyVector;\n }\n\n /**\n * Returns geometries as coordinate arrays by extracting polygon outlines from topology.\n * The vertexBuffer contains the outline vertices, separate from the tessellated triangles.\n */\n getGeometries(): CoordinatesArray[] {\n if (!this._topologyVector) {\n throw new Error(\"Cannot convert GpuVector to coordinates without topology information\");\n }\n\n const geometries: CoordinatesArray[] = new Array(this.numGeometries);\n const topology = this._topologyVector;\n const partOffsets = topology.partOffsets;\n const ringOffsets = topology.ringOffsets;\n const geometryOffsets = topology.geometryOffsets;\n\n // Use counters to track position in offset arrays (like Java implementation)\n let vertexBufferOffset = 0;\n let partOffsetCounter = 1;\n let ringOffsetsCounter = 1;\n let geometryOffsetsCounter = 1;\n\n for (let i = 0; i < this.numGeometries; i++) {\n const geometryType = this.geometryType(i);\n\n switch (geometryType) {\n case GEOMETRY_TYPE.POLYGON:\n {\n // Get number of rings for this polygon\n const numRings = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n partOffsetCounter++;\n const rings: Point[][] = [];\n\n for (let j = 0; j < numRings; j++) {\n // Get number of vertices in this ring\n const numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n const ring: Point[] = [];\n\n for (let k = 0; k < numVertices; k++) {\n const x = this._vertexBuffer[vertexBufferOffset++];\n const y = this._vertexBuffer[vertexBufferOffset++];\n ring.push(new Point(x, y));\n }\n // Close the ring by duplicating the first vertex (MVT format requirement)\n if (ring.length > 0) {\n ring.push(ring[0]);\n }\n rings.push(ring);\n }\n\n geometries[i] = rings;\n if (geometryOffsets) geometryOffsetsCounter++;\n }\n break;\n case GEOMETRY_TYPE.MULTIPOLYGON:\n {\n // Get number of polygons in this multipolygon\n const numPolygons =\n geometryOffsets[geometryOffsetsCounter] - geometryOffsets[geometryOffsetsCounter - 1];\n geometryOffsetsCounter++;\n const allRings: Point[][] = [];\n\n for (let p = 0; p < numPolygons; p++) {\n // Get number of rings in this polygon\n const numRings = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n partOffsetCounter++;\n\n for (let j = 0; j < numRings; j++) {\n // Get number of vertices in this ring\n const numVertices =\n ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n const ring: Point[] = [];\n\n for (let k = 0; k < numVertices; k++) {\n const x = this._vertexBuffer[vertexBufferOffset++];\n const y = this._vertexBuffer[vertexBufferOffset++];\n ring.push(new Point(x, y));\n }\n // Close the ring by duplicating the first vertex (MVT format requirement)\n if (ring.length > 0) {\n ring.push(ring[0]);\n }\n allRings.push(ring);\n }\n }\n\n geometries[i] = allRings;\n }\n break;\n }\n }\n return geometries;\n }\n\n [Symbol.iterator](): Iterator<CoordinatesArray> {\n /*for(let i = 1; i < this.triangleOffsets.length; i++) {\n const numTriangles = this.triangleOffsets[i] - this.triangleOffsets[i-1];\n const startIndex = this.triangleOffsets[i-1] * 3;\n const endIndex = this.triangleOffsets[i] * 3;\n }\n\n while (index < this.numGeometries) {\n yield geometries[index++];\n }*/\n\n //throw new Error(\"Iterator on a GpuVector is not implemented yet.\");\n return null;\n }\n}\n"]}
|
|
@@ -2,8 +2,8 @@ export default class TopologyVector {
|
|
|
2
2
|
private _geometryOffsets;
|
|
3
3
|
private _partOffsets;
|
|
4
4
|
private _ringOffsets;
|
|
5
|
-
constructor(_geometryOffsets:
|
|
6
|
-
get geometryOffsets():
|
|
7
|
-
get partOffsets():
|
|
8
|
-
get ringOffsets():
|
|
5
|
+
constructor(_geometryOffsets: Uint32Array, _partOffsets: Uint32Array, _ringOffsets: Uint32Array);
|
|
6
|
+
get geometryOffsets(): Uint32Array;
|
|
7
|
+
get partOffsets(): Uint32Array;
|
|
8
|
+
get ringOffsets(): Uint32Array;
|
|
9
9
|
}
|
|
@@ -2,7 +2,6 @@ export default class TopologyVector {
|
|
|
2
2
|
_geometryOffsets;
|
|
3
3
|
_partOffsets;
|
|
4
4
|
_ringOffsets;
|
|
5
|
-
//TODO: refactor to use unsigned integers
|
|
6
5
|
constructor(_geometryOffsets, _partOffsets, _ringOffsets) {
|
|
7
6
|
this._geometryOffsets = _geometryOffsets;
|
|
8
7
|
this._partOffsets = _partOffsets;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topologyVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/topologyVector.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,cAAc;
|
|
1
|
+
{"version":3,"file":"topologyVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/topologyVector.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,cAAc;IAEnB;IACA;IACA;IAHZ,YACY,gBAA6B,EAC7B,YAAyB,EACzB,YAAyB;QAFzB,qBAAgB,GAAhB,gBAAgB,CAAa;QAC7B,iBAAY,GAAZ,YAAY,CAAa;QACzB,iBAAY,GAAZ,YAAY,CAAa;IAClC,CAAC;IAEJ,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;CACJ","sourcesContent":["export default class TopologyVector {\n constructor(\n private _geometryOffsets: Uint32Array,\n private _partOffsets: Uint32Array,\n private _ringOffsets: Uint32Array,\n ) {}\n\n get geometryOffsets(): Uint32Array {\n return this._geometryOffsets;\n }\n\n get partOffsets(): Uint32Array {\n return this._partOffsets;\n }\n\n get ringOffsets(): Uint32Array {\n return this._ringOffsets;\n }\n}\n"]}
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
2
|
import { decodeZOrderCurve } from "./zOrderCurve";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { encodeZOrderCurve } from "../../encoding/zOrderCurveEncoder";
|
|
4
|
+
describe("zOrderCurve", () => {
|
|
5
|
+
it("should encode and decode z-order curve", () => {
|
|
6
|
+
const x = 3358;
|
|
7
|
+
const y = 4130;
|
|
6
8
|
const numBits = 13;
|
|
7
9
|
const coordinateShift = 0;
|
|
8
|
-
const
|
|
9
|
-
expect(
|
|
10
|
+
const encoded = encodeZOrderCurve(x, y, numBits, coordinateShift);
|
|
11
|
+
expect(encoded).toBe(38865244);
|
|
12
|
+
const decoded = decodeZOrderCurve(encoded, numBits, coordinateShift);
|
|
13
|
+
expect(decoded).toEqual({ x, y });
|
|
10
14
|
});
|
|
11
|
-
it("should
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
|
|
15
|
+
it("should handle coordinate shift", () => {
|
|
16
|
+
const x = -50;
|
|
17
|
+
const y = 30;
|
|
18
|
+
const numBits = 8;
|
|
19
|
+
const coordinateShift = 100;
|
|
20
|
+
const encoded = encodeZOrderCurve(x, y, numBits, coordinateShift);
|
|
21
|
+
const decoded = decodeZOrderCurve(encoded, numBits, coordinateShift);
|
|
22
|
+
expect(decoded).toEqual({ x, y });
|
|
17
23
|
});
|
|
18
24
|
});
|
|
19
25
|
//# sourceMappingURL=zOrderCurve.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zOrderCurve.spec.js","sourceRoot":"","sources":["../../../src/vector/geometry/zOrderCurve.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"zOrderCurve.spec.js","sourceRoot":"","sources":["../../../src/vector/geometry/zOrderCurve.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,eAAe,GAAG,CAAC,CAAC;QAE1B,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/B,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QACrE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,CAAC,CAAC;QAClB,MAAM,eAAe,GAAG,GAAG,CAAC;QAE5B,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QACrE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { describe, it, expect } from \"vitest\";\nimport { decodeZOrderCurve } from \"./zOrderCurve\";\nimport { encodeZOrderCurve } from \"../../encoding/zOrderCurveEncoder\";\n\ndescribe(\"zOrderCurve\", () => {\n it(\"should encode and decode z-order curve\", () => {\n const x = 3358;\n const y = 4130;\n const numBits = 13;\n const coordinateShift = 0;\n\n const encoded = encodeZOrderCurve(x, y, numBits, coordinateShift);\n expect(encoded).toBe(38865244);\n\n const decoded = decodeZOrderCurve(encoded, numBits, coordinateShift);\n expect(decoded).toEqual({ x, y });\n });\n\n it(\"should handle coordinate shift\", () => {\n const x = -50;\n const y = 30;\n const numBits = 8;\n const coordinateShift = 100;\n\n const encoded = encodeZOrderCurve(x, y, numBits, coordinateShift);\n const decoded = decodeZOrderCurve(encoded, numBits, coordinateShift);\n expect(decoded).toEqual({ x, y });\n });\n});\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type BitVector from "./flat/bitVector";
|
|
2
2
|
import Vector from "./vector";
|
|
3
3
|
export declare abstract class VariableSizeVector<T extends ArrayBufferView, K> extends Vector<T, K> {
|
|
4
|
-
protected offsetBuffer:
|
|
5
|
-
protected constructor(name: string, offsetBuffer:
|
|
4
|
+
protected offsetBuffer: Uint32Array;
|
|
5
|
+
protected constructor(name: string, offsetBuffer: Uint32Array, dataBuffer: T, sizeOrNullabilityBuffer: number | BitVector);
|
|
6
6
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import Vector from "./vector";
|
|
2
2
|
export class VariableSizeVector extends Vector {
|
|
3
3
|
offsetBuffer;
|
|
4
|
-
//TODO: switch to Uint32Array by changing the decodings
|
|
5
4
|
constructor(name, offsetBuffer, dataBuffer, sizeOrNullabilityBuffer) {
|
|
6
5
|
super(name, dataBuffer, sizeOrNullabilityBuffer);
|
|
7
6
|
this.offsetBuffer = offsetBuffer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variableSizeVector.js","sourceRoot":"","sources":["../../src/vector/variableSizeVector.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,OAAgB,kBAAiD,SAAQ,MAAY;
|
|
1
|
+
{"version":3,"file":"variableSizeVector.js","sourceRoot":"","sources":["../../src/vector/variableSizeVector.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,OAAgB,kBAAiD,SAAQ,MAAY;IAGzE;IAFd,YACI,IAAY,EACF,YAAyB,EACnC,UAAa,EACb,uBAA2C;QAE3C,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,uBAAuB,CAAC,CAAC;QAJvC,iBAAY,GAAZ,YAAY,CAAa;IAKvC,CAAC;CACJ","sourcesContent":["import type BitVector from \"./flat/bitVector\";\nimport Vector from \"./vector\";\n\nexport abstract class VariableSizeVector<T extends ArrayBufferView, K> extends Vector<T, K> {\n protected constructor(\n name: string,\n protected offsetBuffer: Uint32Array,\n dataBuffer: T,\n sizeOrNullabilityBuffer: number | BitVector,\n ) {\n super(name, dataBuffer, sizeOrNullabilityBuffer);\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maplibre/mlt",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"repository": {
|
|
23
23
|
"type": "git",
|
|
24
|
-
"url": "
|
|
24
|
+
"url": "https://github.com/maplibre/maplibre-tile-spec"
|
|
25
25
|
},
|
|
26
26
|
"bugs": {
|
|
27
27
|
"url": "https://github.com/maplibre/maplibre-tile-spec/issues"
|
|
@@ -31,18 +31,16 @@
|
|
|
31
31
|
"@maplibre/maplibre-gl-style-spec": "^24.3.1",
|
|
32
32
|
"@types/bytebuffer": "^5.0.49",
|
|
33
33
|
"@types/earcut": "^3.0.0",
|
|
34
|
-
"@types/node": "^24.10.
|
|
34
|
+
"@types/node": "^24.10.2",
|
|
35
35
|
"@types/pbf": "^3.0.5",
|
|
36
|
-
"@
|
|
37
|
-
"@vitest/coverage-v8": "^4.0.13",
|
|
36
|
+
"@vitest/coverage-v8": "^4.0.15",
|
|
38
37
|
"bytebuffer": "^5.0.1",
|
|
39
38
|
"earcut": "^3.0.2",
|
|
40
39
|
"eslint": "^9.39.1",
|
|
41
40
|
"pbf": "^4.0.1",
|
|
42
|
-
"prettier": "^3.
|
|
41
|
+
"prettier": "^3.7.4",
|
|
43
42
|
"typescript": "^5.9.3",
|
|
44
|
-
"typescript-eslint": "^8.
|
|
45
|
-
"varint": "^6.0.0",
|
|
43
|
+
"typescript-eslint": "^8.49.0",
|
|
46
44
|
"vitest": "^4.0.1"
|
|
47
45
|
},
|
|
48
46
|
"dependencies": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"geometryDecoder.spec.js","sourceRoot":"","sources":["../../src/decoding/geometryDecoder.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEtC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC;AAC7G,CAAC,CAAC,CAAC","sourcesContent":["import { describe, it } from \"vitest\";\n\ndescribe(\"decodeGeometryColumn\", () => {\n it(\"should decode mixed LineString, Polygon, MultiLineString and MultiPolygon geometry\", async () => {});\n});\n"]}
|
|
File without changes
|