@osmix/vt 0.0.2 → 0.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encode.js","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
+ import { describe, expect, it } from "bun:test";
2
+ import { pointToTile } from "@mapbox/tilebelt";
1
3
  import { VectorTile } from "@mapbox/vector-tile";
2
- import { Osmix } from "@osmix/core";
3
- import SphericalMercatorTile from "@osmix/shared/spherical-mercator";
4
+ import { Osm } from "@osmix/core";
5
+ import { llToTilePx } from "@osmix/shared/tile";
6
+ import { decodeZigzag } from "@osmix/shared/zigzag";
4
7
  import Protobuf from "pbf";
5
- import { assert, describe, expect, it } from "vitest";
6
8
  import { OsmixVtEncoder } from "./encode";
7
- const osm = new Osmix();
9
+ const osm = new Osm();
8
10
  osm.nodes.addNode({
9
11
  id: 1,
10
12
  lat: 40,
@@ -32,6 +34,7 @@ osm.nodes.addNode({
32
34
  osm.ways.addWay({
33
35
  id: 5,
34
36
  refs: [1, 2],
37
+ tags: { highway: "primary" },
35
38
  });
36
39
  osm.buildIndexes();
37
40
  osm.buildSpatialIndexes();
@@ -42,13 +45,6 @@ function decodeTile(data) {
42
45
  return tile.layers;
43
46
  }
44
47
  const extent = 4096;
45
- const merc = new SphericalMercatorTile({ size: extent });
46
- function pointToTile(lon, lat, z) {
47
- const [px, py] = merc.px([lon, lat], z);
48
- const x = Math.floor(px / extent);
49
- const y = Math.floor(py / extent);
50
- return [x, y, z];
51
- }
52
48
  function bboxToTile(bbox, z = 8) {
53
49
  const [minX, minY, maxX, maxY] = bbox;
54
50
  const centerLon = (minX + maxX) / 2;
@@ -63,25 +59,372 @@ describe("OsmixVtEncoder", () => {
63
59
  const result = encoder.getTile(tile);
64
60
  expect(result.byteLength).toBeGreaterThan(0);
65
61
  const layers = decodeTile(result);
66
- assert.isDefined(layers[NODE_LAYER_ID]);
67
- expect(layers[NODE_LAYER_ID].length).toBe(1);
68
- assert.isDefined(layers[WAY_LAYER_ID]);
69
- expect(layers[WAY_LAYER_ID].length).toBe(1);
70
- const features = [
71
- layers[NODE_LAYER_ID].feature(0),
72
- layers[WAY_LAYER_ID].feature(0),
73
- ];
62
+ expect(layers[NODE_LAYER_ID]).toBeDefined();
63
+ expect(layers[NODE_LAYER_ID]?.length).toBe(1);
64
+ expect(layers[WAY_LAYER_ID]).toBeDefined();
65
+ expect(layers[WAY_LAYER_ID]?.length).toBe(1);
66
+ const nodeLayer = layers[NODE_LAYER_ID];
67
+ const wayLayer = layers[WAY_LAYER_ID];
68
+ if (!nodeLayer || !wayLayer)
69
+ throw new Error("Layers not found");
70
+ const features = [nodeLayer.feature(0), wayLayer.feature(0)];
74
71
  const node = features.find((feature) => feature.properties["type"] === "node");
75
- expect(node?.id).toBe(1);
72
+ // IDs are zigzag-encoded, so decode them
73
+ if (node?.id !== undefined) {
74
+ const decodedId = decodeZigzag(node.id);
75
+ expect(decodedId).toBe(1);
76
+ }
76
77
  expect(node?.type).toBe(1);
77
78
  const nodeGeom = node?.loadGeometry();
78
79
  expect(nodeGeom?.[0]?.[0]?.x).toBeTypeOf("number");
79
80
  expect(nodeGeom?.[0]?.[0]?.y).toBeTypeOf("number");
80
81
  const way = features.find((feature) => feature.properties["type"] === "way");
81
- expect(way?.id).toBe(5);
82
+ // IDs are zigzag-encoded, so decode them
83
+ if (way?.id !== undefined) {
84
+ const decodedId = decodeZigzag(way.id);
85
+ expect(decodedId).toBe(5);
86
+ }
82
87
  expect(way?.type).toBe(2);
83
88
  const wayGeom = way?.loadGeometry();
84
89
  expect(wayGeom?.[0]?.length).toBeGreaterThanOrEqual(2);
85
90
  });
91
+ it("encodes area ways as polygons with proper winding order", () => {
92
+ const testOsm = new Osm();
93
+ // Create a closed way that should be treated as an area
94
+ testOsm.nodes.addNode({ id: 10, lat: 40.7, lon: -74.0 });
95
+ testOsm.nodes.addNode({ id: 11, lat: 40.71, lon: -74.0 });
96
+ testOsm.nodes.addNode({ id: 12, lat: 40.71, lon: -74.01 });
97
+ testOsm.nodes.addNode({ id: 13, lat: 40.7, lon: -74.01 });
98
+ testOsm.ways.addWay({
99
+ id: 20,
100
+ refs: [10, 11, 12, 13, 10], // Closed ring
101
+ tags: { building: "yes", area: "yes" },
102
+ });
103
+ testOsm.buildIndexes();
104
+ testOsm.buildSpatialIndexes();
105
+ const bbox = testOsm.bbox();
106
+ const tile = bboxToTile(bbox);
107
+ const encoder = new OsmixVtEncoder(testOsm);
108
+ const result = encoder.getTile(tile);
109
+ const layers = decodeTile(result);
110
+ const wayLayer = layers[`@osmix:${testOsm.id}:ways`];
111
+ expect(wayLayer?.length).toBe(1);
112
+ const feature = wayLayer?.feature(0);
113
+ if (!feature)
114
+ throw new Error("Feature not found");
115
+ expect(feature.type).toBe(3); // POLYGON type
116
+ expect(feature.properties["type"]).toBe("way");
117
+ expect(feature.properties["building"]).toBe("yes");
118
+ const geometry = feature.loadGeometry();
119
+ expect(geometry.length).toBeGreaterThan(0);
120
+ // Should have at least one ring (outer ring)
121
+ expect(geometry[0]?.length).toBeGreaterThanOrEqual(4); // At least 4 points for a polygon
122
+ });
123
+ it("handles multiple rings for polygons (infrastructure for holes)", () => {
124
+ const testOsm = new Osm();
125
+ // Create an area way
126
+ testOsm.nodes.addNode({ id: 20, lat: 40.7, lon: -74.0 });
127
+ testOsm.nodes.addNode({ id: 21, lat: 40.71, lon: -74.0 });
128
+ testOsm.nodes.addNode({ id: 22, lat: 40.71, lon: -74.01 });
129
+ testOsm.nodes.addNode({ id: 23, lat: 40.7, lon: -74.01 });
130
+ testOsm.ways.addWay({
131
+ id: 30,
132
+ refs: [20, 21, 22, 23, 20],
133
+ tags: { building: "yes", area: "yes" },
134
+ });
135
+ testOsm.buildIndexes();
136
+ testOsm.buildSpatialIndexes();
137
+ const bbox = testOsm.bbox();
138
+ const tile = bboxToTile(bbox);
139
+ const encoder = new OsmixVtEncoder(testOsm);
140
+ // Test that clipProjectedPolygon returns array of rings
141
+ const way = testOsm.ways.getById(30);
142
+ expect(way).toBeDefined();
143
+ const points = way.refs.map((ref) => {
144
+ const node = testOsm.nodes.getById(ref);
145
+ return llToTilePx([node.lon, node.lat], tile, extent);
146
+ });
147
+ const clippedRings = encoder["clipProjectedPolygon"](points);
148
+ expect(Array.isArray(clippedRings)).toBe(true);
149
+ expect(clippedRings.length).toBeGreaterThan(0);
150
+ expect(Array.isArray(clippedRings[0])).toBe(true);
151
+ });
152
+ it("processes polygon rings with correct winding order (outer clockwise, inner counterclockwise)", () => {
153
+ const testOsm = new Osm();
154
+ testOsm.nodes.addNode({ id: 30, lat: 40.7, lon: -74.0 });
155
+ testOsm.nodes.addNode({ id: 31, lat: 40.71, lon: -74.0 });
156
+ testOsm.nodes.addNode({ id: 32, lat: 40.71, lon: -74.01 });
157
+ testOsm.nodes.addNode({ id: 33, lat: 40.7, lon: -74.01 });
158
+ testOsm.ways.addWay({
159
+ id: 40,
160
+ refs: [30, 31, 32, 33, 30],
161
+ tags: { building: "yes", area: "yes" },
162
+ });
163
+ testOsm.buildIndexes();
164
+ testOsm.buildSpatialIndexes();
165
+ const bbox = testOsm.bbox();
166
+ const tile = bboxToTile(bbox);
167
+ const encoder = new OsmixVtEncoder(testOsm);
168
+ const way = testOsm.ways.getById(40);
169
+ const points = way.refs.map((ref) => {
170
+ const node = testOsm.nodes.getById(ref);
171
+ return llToTilePx([node.lon, node.lat], tile, extent);
172
+ });
173
+ const clippedRings = encoder["clipProjectedPolygon"](points);
174
+ const outerRing = clippedRings[0];
175
+ expect(outerRing).toBeDefined();
176
+ // Process as outer ring (should be clockwise)
177
+ const processedOuter = encoder["processClippedPolygonRing"](outerRing, true);
178
+ expect(processedOuter.length).toBeGreaterThan(0);
179
+ // Process as inner ring (should be counterclockwise)
180
+ const processedInner = encoder["processClippedPolygonRing"](outerRing, false);
181
+ expect(processedInner.length).toBeGreaterThan(0);
182
+ // Verify they have opposite winding (area should have opposite signs)
183
+ const outerArea = processedOuter.reduce((sum, p, i) => {
184
+ const next = processedOuter[(i + 1) % processedOuter.length];
185
+ if (!next)
186
+ return sum;
187
+ return sum + (p[0] * next[1] - next[0] * p[1]);
188
+ }, 0);
189
+ const innerArea = processedInner.reduce((sum, p, i) => {
190
+ const next = processedInner[(i + 1) % processedInner.length];
191
+ if (!next)
192
+ return sum;
193
+ return sum + (p[0] * next[1] - next[0] * p[1]);
194
+ }, 0);
195
+ // Outer should be clockwise (negative area), inner should be counterclockwise (positive area)
196
+ expect(outerArea).toBeLessThan(0);
197
+ expect(innerArea).toBeGreaterThan(0);
198
+ });
199
+ it("encodes multipolygon relation with correct winding order", () => {
200
+ const testOsm = new Osm();
201
+ // Create nodes for outer square
202
+ testOsm.nodes.addNode({ id: 1, lat: -1.0, lon: -1.0 });
203
+ testOsm.nodes.addNode({ id: 2, lat: -1.0, lon: 1.0 });
204
+ testOsm.nodes.addNode({ id: 3, lat: 1.0, lon: 1.0 });
205
+ testOsm.nodes.addNode({ id: 4, lat: 1.0, lon: -1.0 });
206
+ // Create nodes for inner triangle
207
+ testOsm.nodes.addNode({ id: 5, lat: -0.5, lon: 0.0 });
208
+ testOsm.nodes.addNode({ id: 6, lat: 0.5, lon: 0.0 });
209
+ testOsm.nodes.addNode({ id: 7, lat: 0.0, lon: 0.5 });
210
+ // Create outer way
211
+ testOsm.ways.addWay({
212
+ id: 10,
213
+ refs: [1, 2, 3, 4, 1],
214
+ tags: {},
215
+ });
216
+ // Create inner way
217
+ testOsm.ways.addWay({
218
+ id: 11,
219
+ refs: [5, 6, 7, 5],
220
+ tags: {},
221
+ });
222
+ // Create multipolygon relation
223
+ testOsm.relations.addRelation({
224
+ id: 20,
225
+ tags: { type: "multipolygon", name: "test" },
226
+ members: [
227
+ { type: "way", ref: 10, role: "outer" },
228
+ { type: "way", ref: 11, role: "inner" },
229
+ ],
230
+ });
231
+ testOsm.buildIndexes();
232
+ testOsm.buildSpatialIndexes();
233
+ const bbox = [-2, -2, 2, 2];
234
+ const tile = bboxToTile(bbox);
235
+ const encoder = new OsmixVtEncoder(testOsm);
236
+ const features = Array.from(encoder.relationFeatures(bbox, (ll) => llToTilePx(ll, tile, extent)));
237
+ expect(features.length).toBeGreaterThan(0);
238
+ const relationFeature = features[0];
239
+ expect(relationFeature).toBeDefined();
240
+ expect(relationFeature?.type).toBe(3); // POLYGON
241
+ const geometry = relationFeature?.geometry;
242
+ expect(geometry).toBeDefined();
243
+ expect(Array.isArray(geometry)).toBe(true);
244
+ if (geometry && Array.isArray(geometry) && geometry.length > 0) {
245
+ const outerRing = geometry[0];
246
+ expect(outerRing).toBeDefined();
247
+ if (outerRing && Array.isArray(outerRing) && outerRing.length > 0) {
248
+ // Verify outer ring is clockwise (negative signed area)
249
+ const outerArea = outerRing.reduce((sum, p, i) => {
250
+ const next = outerRing[(i + 1) % outerRing.length];
251
+ if (!next)
252
+ return sum;
253
+ return sum + (p[0] * next[1] - next[0] * p[1]);
254
+ }, 0);
255
+ expect(outerArea).toBeLessThan(0); // Clockwise
256
+ // If there's an inner ring, verify it's counterclockwise
257
+ if (geometry.length > 1) {
258
+ const innerRing = geometry[1];
259
+ if (innerRing && Array.isArray(innerRing) && innerRing.length > 0) {
260
+ const innerArea = innerRing.reduce((sum, p, i) => {
261
+ const next = innerRing[(i + 1) % innerRing.length];
262
+ if (!next)
263
+ return sum;
264
+ return sum + (p[0] * next[1] - next[0] * p[1]);
265
+ }, 0);
266
+ expect(innerArea).toBeGreaterThan(0); // Counterclockwise
267
+ }
268
+ }
269
+ }
270
+ }
271
+ });
272
+ it("encodes area way as polygon with correct winding order", () => {
273
+ const testOsm = new Osm();
274
+ // Create a square polygon
275
+ testOsm.nodes.addNode({ id: 1, lat: 40.7, lon: -74.0 });
276
+ testOsm.nodes.addNode({ id: 2, lat: 40.71, lon: -74.0 });
277
+ testOsm.nodes.addNode({ id: 3, lat: 40.71, lon: -74.01 });
278
+ testOsm.nodes.addNode({ id: 4, lat: 40.7, lon: -74.01 });
279
+ testOsm.ways.addWay({
280
+ id: 10,
281
+ refs: [1, 2, 3, 4, 1],
282
+ tags: { area: "yes", building: "yes" },
283
+ });
284
+ testOsm.buildIndexes();
285
+ testOsm.buildSpatialIndexes();
286
+ const bbox = testOsm.bbox();
287
+ const tile = bboxToTile(bbox);
288
+ const encoder = new OsmixVtEncoder(testOsm);
289
+ const features = Array.from(encoder.wayFeatures(bbox, (ll) => llToTilePx(ll, tile, extent)));
290
+ const polygonFeature = features.find((f) => f.type === 3); // POLYGON
291
+ expect(polygonFeature).toBeDefined();
292
+ if (polygonFeature?.geometry) {
293
+ const geometry = polygonFeature.geometry;
294
+ if (Array.isArray(geometry) && geometry.length > 0) {
295
+ const ring = geometry[0];
296
+ if (ring && Array.isArray(ring) && ring.length > 0) {
297
+ // Verify clockwise winding (negative area)
298
+ const area = ring.reduce((sum, p, i) => {
299
+ const next = ring[(i + 1) % ring.length];
300
+ if (!next)
301
+ return sum;
302
+ return sum + (p[0] * next[1] - next[0] * p[1]);
303
+ }, 0);
304
+ expect(area).toBeLessThan(0); // Should be clockwise for MVT
305
+ }
306
+ }
307
+ }
308
+ });
309
+ it("encodes negative IDs correctly", () => {
310
+ const testOsm = new Osm();
311
+ // Create nodes with negative IDs (like from GeoJSON import)
312
+ testOsm.nodes.addNode({
313
+ id: -1,
314
+ lat: 40.7,
315
+ lon: -74.0,
316
+ tags: { name: "Negative Node" },
317
+ });
318
+ testOsm.nodes.addNode({
319
+ id: -2,
320
+ lat: 40.71,
321
+ lon: -74.01,
322
+ tags: { name: "Another Negative Node" },
323
+ });
324
+ testOsm.ways.addWay({
325
+ id: -10,
326
+ refs: [-1, -2],
327
+ tags: { highway: "primary" },
328
+ });
329
+ testOsm.buildIndexes();
330
+ testOsm.buildSpatialIndexes();
331
+ const bbox = testOsm.bbox();
332
+ const tile = bboxToTile(bbox);
333
+ const encoder = new OsmixVtEncoder(testOsm);
334
+ const result = encoder.getTile(tile);
335
+ expect(result.byteLength).toBeGreaterThan(0);
336
+ const layers = decodeTile(result);
337
+ const nodeLayer = layers[NODE_LAYER_ID];
338
+ const wayLayer = layers[WAY_LAYER_ID];
339
+ expect(nodeLayer).toBeDefined();
340
+ expect(wayLayer).toBeDefined();
341
+ // Check that negative IDs are zigzag-encoded and can be decoded back
342
+ if (nodeLayer && nodeLayer.length > 0) {
343
+ const nodeFeature = nodeLayer.feature(0);
344
+ // IDs are zigzag-encoded, so decode them
345
+ if (nodeFeature.id !== undefined) {
346
+ const decodedId = decodeZigzag(nodeFeature.id);
347
+ expect(decodedId).toBe(-1);
348
+ }
349
+ }
350
+ if (wayLayer && wayLayer.length > 0) {
351
+ const wayFeature = wayLayer.feature(0);
352
+ // IDs are zigzag-encoded, so decode them
353
+ if (wayFeature.id !== undefined) {
354
+ const decodedId = decodeZigzag(wayFeature.id);
355
+ expect(decodedId).toBe(-10);
356
+ }
357
+ }
358
+ });
359
+ it("accepts IDs at the boundaries of safe integer range", () => {
360
+ const testOsm = new Osm();
361
+ // Add nodes for ways to reference
362
+ testOsm.nodes.addNode({ id: 1, lat: 40.7, lon: -74.0 });
363
+ testOsm.nodes.addNode({ id: 2, lat: 40.71, lon: -74.01 });
364
+ // Test minimum valid ID (way)
365
+ testOsm.ways.addWay({
366
+ id: -Number.MAX_SAFE_INTEGER,
367
+ refs: [1, 2],
368
+ tags: { highway: "primary" },
369
+ });
370
+ // Test maximum valid ID (node with tags)
371
+ testOsm.nodes.addNode({
372
+ id: Number.MAX_SAFE_INTEGER,
373
+ lat: 40.72,
374
+ lon: -74.02,
375
+ tags: { name: "Max ID" },
376
+ });
377
+ testOsm.buildIndexes();
378
+ testOsm.buildSpatialIndexes();
379
+ const bbox = testOsm.bbox();
380
+ const tile = bboxToTile(bbox);
381
+ const encoder = new OsmixVtEncoder(testOsm);
382
+ // Should not throw - this verifies the IDs are within the valid range
383
+ const result = encoder.getTile(tile);
384
+ expect(result.byteLength).toBeGreaterThan(0);
385
+ });
386
+ it("encodes and decodes large negative IDs correctly", () => {
387
+ const testOsm = new Osm();
388
+ // Test with a large negative ID (much larger than 32-bit range)
389
+ const largeNegativeId = -1000000000; // -1 billion
390
+ // Add a node for the way to reference
391
+ testOsm.nodes.addNode({ id: 1, lat: 40.71, lon: -74.01 });
392
+ testOsm.nodes.addNode({
393
+ id: largeNegativeId,
394
+ lat: 40.7,
395
+ lon: -74.0,
396
+ tags: { name: "Large Negative ID" },
397
+ });
398
+ // Add a dummy way so way spatial index can be built
399
+ testOsm.ways.addWay({
400
+ id: 100,
401
+ refs: [1],
402
+ tags: {},
403
+ });
404
+ testOsm.buildIndexes();
405
+ testOsm.buildSpatialIndexes();
406
+ const bbox = testOsm.bbox();
407
+ const tile = bboxToTile(bbox);
408
+ const encoder = new OsmixVtEncoder(testOsm);
409
+ const result = encoder.getTile(tile);
410
+ const layers = decodeTile(result);
411
+ const nodeLayer = layers[NODE_LAYER_ID];
412
+ expect(nodeLayer).toBeDefined();
413
+ if (nodeLayer && nodeLayer.length > 0) {
414
+ // Find the node with the large negative ID
415
+ let found = false;
416
+ for (let i = 0; i < nodeLayer.length; i++) {
417
+ const nodeFeature = nodeLayer.feature(i);
418
+ if (nodeFeature.id !== undefined) {
419
+ const decodedId = decodeZigzag(nodeFeature.id);
420
+ if (decodedId === largeNegativeId) {
421
+ found = true;
422
+ break;
423
+ }
424
+ }
425
+ }
426
+ expect(found).toBe(true);
427
+ }
428
+ });
86
429
  });
87
430
  //# sourceMappingURL=encode.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode.test.js","sourceRoot":"","sources":["../src/encode.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encode.test.js","sourceRoot":"","sources":["../src/encode.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,33 @@
1
- export { OsmixVtEncoder } from "./encode";
1
+ /**
2
+ * @osmix/vt - Mapbox Vector Tile encoding for OSM data.
3
+ *
4
+ * Converts `@osmix/core` OSM datasets into Mapbox Vector Tiles (MVT) format.
5
+ * Generates PBF-encoded tiles with separate layers for nodes, ways, and relations.
6
+ *
7
+ * Key features:
8
+ * - **Per-entity layers**: Separate layers for nodes, ways, and relations.
9
+ * - **Geometry conversion**: Ways become lines or polygons based on area heuristics.
10
+ * - **Multipolygon support**: Renders multipolygon relations as proper polygons with holes.
11
+ * - **Clipping**: Geometry is clipped to tile bounds with configurable buffer.
12
+ * - **Winding order**: Automatically enforces MVT spec (CW outer, CCW inner rings).
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { OsmixVtEncoder } from "@osmix/vt"
17
+ *
18
+ * const encoder = new OsmixVtEncoder(osm)
19
+ * const pbfBuffer = encoder.getTile([9372, 12535, 15])
20
+ *
21
+ * // Use with MapLibre or other vector tile renderers
22
+ * map.addSource("osmix", {
23
+ * type: "vector",
24
+ * tiles: [/* ... generate tile URLs ... *\/]
25
+ * })
26
+ * ```
27
+ *
28
+ * @module @osmix/vt
29
+ */
30
+ export { OsmixVtEncoder, projectToTile } from "./encode";
31
+ export * from "./types";
32
+ export { default as writeVtPbf } from "./write-vt-pbf";
2
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxD,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -1,2 +1,33 @@
1
- export { OsmixVtEncoder } from "./encode";
1
+ /**
2
+ * @osmix/vt - Mapbox Vector Tile encoding for OSM data.
3
+ *
4
+ * Converts `@osmix/core` OSM datasets into Mapbox Vector Tiles (MVT) format.
5
+ * Generates PBF-encoded tiles with separate layers for nodes, ways, and relations.
6
+ *
7
+ * Key features:
8
+ * - **Per-entity layers**: Separate layers for nodes, ways, and relations.
9
+ * - **Geometry conversion**: Ways become lines or polygons based on area heuristics.
10
+ * - **Multipolygon support**: Renders multipolygon relations as proper polygons with holes.
11
+ * - **Clipping**: Geometry is clipped to tile bounds with configurable buffer.
12
+ * - **Winding order**: Automatically enforces MVT spec (CW outer, CCW inner rings).
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { OsmixVtEncoder } from "@osmix/vt"
17
+ *
18
+ * const encoder = new OsmixVtEncoder(osm)
19
+ * const pbfBuffer = encoder.getTile([9372, 12535, 15])
20
+ *
21
+ * // Use with MapLibre or other vector tile renderers
22
+ * map.addSource("osmix", {
23
+ * type: "vector",
24
+ * tiles: [/* ... generate tile URLs ... *\/]
25
+ * })
26
+ * ```
27
+ *
28
+ * @module @osmix/vt
29
+ */
30
+ export { OsmixVtEncoder, projectToTile } from "./encode";
31
+ export * from "./types";
32
+ export { default as writeVtPbf } from "./write-vt-pbf";
2
33
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxD,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/types.d.ts CHANGED
@@ -1,22 +1,48 @@
1
- import type { OsmEntityType, OsmTags } from "@osmix/json";
2
- import type { XY } from "@osmix/shared/types";
1
+ /**
2
+ * Type definitions for vector tile encoding.
3
+ *
4
+ * These types represent the intermediate format used when converting
5
+ * OSM entities to Mapbox Vector Tile features.
6
+ *
7
+ * @module
8
+ */
9
+ import type { OsmTags, XY } from "@osmix/shared/types";
10
+ /**
11
+ * Geometry for a vector tile feature.
12
+ * Array of rings/segments, where each ring/segment is an array of [x, y] coordinates.
13
+ */
3
14
  export type VtSimpleFeatureGeometry = XY[][];
15
+ /**
16
+ * Properties attached to a vector tile feature.
17
+ * Includes OSM tags plus optional source metadata.
18
+ */
4
19
  export type VtSimpleFeatureProperties = {
5
20
  sourceId?: string;
6
- type: OsmEntityType;
7
21
  tileKey?: string;
8
22
  } & OsmTags;
23
+ /**
24
+ * MVT geometry type constants.
25
+ * Point = 1, Line = 2, Polygon = 3.
26
+ */
9
27
  export type VtSimpleFeatureType = {
10
28
  POINT: 1;
11
29
  LINE: 2;
12
30
  POLYGON: 3;
13
31
  };
32
+ /**
33
+ * A simplified vector tile feature ready for encoding.
34
+ * Geometry coordinates are in tile extent units (typically 0-4096).
35
+ */
14
36
  export interface VtSimpleFeature {
15
37
  id: number;
16
38
  type: VtSimpleFeatureType[keyof VtSimpleFeatureType];
17
39
  properties: VtSimpleFeatureProperties;
18
40
  geometry: VtSimpleFeatureGeometry;
19
41
  }
42
+ /**
43
+ * A layer to be written to the vector tile PBF.
44
+ * Features are provided via a generator to support lazy evaluation.
45
+ */
20
46
  export type VtPbfLayer = {
21
47
  name: string;
22
48
  version: number;