@math.gl/geoarrow 5.0.0-alpha.2 → 5.0.0-alpha.3

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.
Files changed (54) hide show
  1. package/README.md +45 -15
  2. package/dist/builder-entry.cjs +561 -0
  3. package/dist/builder-entry.cjs.map +6 -0
  4. package/dist/builder-entry.d.ts +4 -0
  5. package/dist/builder-entry.d.ts.map +1 -0
  6. package/dist/builder-entry.js +5 -0
  7. package/dist/builder-entry.js.map +1 -0
  8. package/dist/builder.d.ts +12 -1
  9. package/dist/builder.d.ts.map +1 -1
  10. package/dist/builder.js +112 -10
  11. package/dist/builder.js.map +1 -1
  12. package/dist/codecs.d.ts.map +1 -1
  13. package/dist/codecs.js +205 -7
  14. package/dist/codecs.js.map +1 -1
  15. package/dist/index.cjs +904 -120
  16. package/dist/index.cjs.map +2 -2
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/kernels.d.ts +8 -3
  22. package/dist/kernels.d.ts.map +1 -1
  23. package/dist/kernels.js +610 -107
  24. package/dist/kernels.js.map +1 -1
  25. package/dist/layout.d.ts.map +1 -1
  26. package/dist/layout.js +28 -5
  27. package/dist/layout.js.map +1 -1
  28. package/dist/tessellation-entry.cjs +427 -0
  29. package/dist/tessellation-entry.cjs.map +6 -0
  30. package/dist/tessellation-entry.d.ts +4 -0
  31. package/dist/tessellation-entry.d.ts.map +1 -0
  32. package/dist/tessellation-entry.js +5 -0
  33. package/dist/tessellation-entry.js.map +1 -0
  34. package/dist/types.d.ts +37 -3
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/types.js.map +1 -1
  37. package/dist/wkb-entry.cjs +1005 -0
  38. package/dist/wkb-entry.cjs.map +6 -0
  39. package/dist/wkb-entry.d.ts +3 -0
  40. package/dist/wkb-entry.d.ts.map +1 -0
  41. package/dist/wkb-entry.js +6 -0
  42. package/dist/wkb-entry.js.map +1 -0
  43. package/dist/worker.cjs +4 -0
  44. package/dist/worker.cjs.map +1 -1
  45. package/package.json +21 -6
  46. package/src/builder-entry.ts +18 -0
  47. package/src/builder.ts +133 -19
  48. package/src/codecs.ts +251 -9
  49. package/src/index.ts +1 -0
  50. package/src/kernels.ts +811 -133
  51. package/src/layout.ts +38 -13
  52. package/src/tessellation-entry.ts +7 -0
  53. package/src/types.ts +23 -4
  54. package/src/wkb-entry.ts +11 -0
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/wkb-entry.ts", "../src/codecs.ts", "../src/types.ts", "../src/builder.ts", "../src/layout.ts"],
4
+ "mappings": "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",
5
+ "names": ["import_wkb", "getEncodingDepth", "getListRange", "writeCoordinate", "byteOffset"]
6
+ }
@@ -0,0 +1,3 @@
1
+ /** Optional serialized-format bridge. The parser implementation lives in @math.gl/wkb. */
2
+ export { decodeGeoArrowWKB, decodeGeoArrowWKT, encodeGeoArrowWKB, encodeGeoArrowWKT } from "./codecs.js";
3
+ //# sourceMappingURL=wkb-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wkb-entry.d.ts","sourceRoot":"","sources":["../src/wkb-entry.ts"],"names":[],"mappings":"AAIA,0FAA0F;AAC1F,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EAClB,oBAAiB"}
@@ -0,0 +1,6 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ /** Optional serialized-format bridge. The parser implementation lives in @math.gl/wkb. */
5
+ export { decodeGeoArrowWKB, decodeGeoArrowWKT, encodeGeoArrowWKB, encodeGeoArrowWKT } from "./codecs.js";
6
+ //# sourceMappingURL=wkb-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wkb-entry.js","sourceRoot":"","sources":["../src/wkb-entry.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,0FAA0F;AAC1F,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EAClB,oBAAiB"}
package/dist/worker.cjs CHANGED
@@ -58,6 +58,10 @@ function collectArrayBuffers(array, buffers) {
58
58
  case "serialized":
59
59
  addBuffer(array.offsets.buffer, buffers);
60
60
  addBuffer(array.values.buffer, buffers);
61
+ if (array.views)
62
+ addBuffer(array.views.buffer, buffers);
63
+ for (const data of array.dataBuffers || [])
64
+ addBuffer(data.buffer, buffers);
61
65
  break;
62
66
  }
63
67
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/worker.ts", "../src/layout.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;AC6LM,SAAU,wBAAwB,QAAsB;AAC5D,QAAM,UAAU,oBAAI,IAAG;AACvB,aAAW,SAAS,OAAO;AAAQ,wBAAoB,OAAO,OAAO;AACrE,SAAO,CAAC,GAAG,OAAO;AACpB;AAulBA,SAAS,oBAAoB,OAAsB,SAAyB;AAC1E,MAAI,MAAM;AAAU,cAAU,MAAM,SAAS,OAAO,QAAQ,OAAO;AACnE,UAAQ,MAAM,MAAM;IAClB,KAAK;AACH,gBAAU,MAAM,OAAO,QAAQ,OAAO;AACtC;IACF,KAAK;AACH,0BAAoB,MAAM,OAAO,OAAO;AACxC;IACF,KAAK;AACH,gBAAU,MAAM,QAAQ,QAAQ,OAAO;AACvC,0BAAoB,MAAM,OAAO,OAAO;AACxC;IACF,KAAK;AACH,iBAAW,SAAS,OAAO,OAAO,MAAM,QAAQ;AAAG,4BAAoB,OAAO,OAAO;AACrF;IACF,KAAK;AACH,gBAAU,MAAM,QAAQ,QAAQ,OAAO;AACvC,gBAAU,MAAM,aAAa,QAAQ,OAAO;AAC5C,iBAAW,SAAS,MAAM;AAAU,4BAAoB,MAAM,MAAM,OAAO;AAC3E;IACF,KAAK;AACH,gBAAU,MAAM,QAAQ,QAAQ,OAAO;AACvC,gBAAU,MAAM,OAAO,QAAQ,OAAO;AACtC;EACJ;AACF;AAEA,SAAS,UAAU,QAAyB,SAAyB;AACnE,MAAI,kBAAkB;AAAa,YAAQ,IAAI,MAAM;AACvD;;;ADryBM,SAAU,wBAAwB,QAAsB;AAC5D,SAAO,EAAC,QAAQ,cAAc,wBAAwB,MAAM,EAAC;AAC/D;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;AC6LM,SAAU,wBAAwB,QAAsB;AAC5D,QAAM,UAAU,oBAAI,IAAG;AACvB,aAAW,SAAS,OAAO;AAAQ,wBAAoB,OAAO,OAAO;AACrE,SAAO,CAAC,GAAG,OAAO;AACpB;AA8mBA,SAAS,oBAAoB,OAAsB,SAAyB;AAC1E,MAAI,MAAM;AAAU,cAAU,MAAM,SAAS,OAAO,QAAQ,OAAO;AACnE,UAAQ,MAAM,MAAM;IAClB,KAAK;AACH,gBAAU,MAAM,OAAO,QAAQ,OAAO;AACtC;IACF,KAAK;AACH,0BAAoB,MAAM,OAAO,OAAO;AACxC;IACF,KAAK;AACH,gBAAU,MAAM,QAAQ,QAAQ,OAAO;AACvC,0BAAoB,MAAM,OAAO,OAAO;AACxC;IACF,KAAK;AACH,iBAAW,SAAS,OAAO,OAAO,MAAM,QAAQ;AAAG,4BAAoB,OAAO,OAAO;AACrF;IACF,KAAK;AACH,gBAAU,MAAM,QAAQ,QAAQ,OAAO;AACvC,gBAAU,MAAM,aAAa,QAAQ,OAAO;AAC5C,iBAAW,SAAS,MAAM;AAAU,4BAAoB,MAAM,MAAM,OAAO;AAC3E;IACF,KAAK;AACH,gBAAU,MAAM,QAAQ,QAAQ,OAAO;AACvC,gBAAU,MAAM,OAAO,QAAQ,OAAO;AACtC,UAAI,MAAM;AAAO,kBAAU,MAAM,MAAM,QAAQ,OAAO;AACtD,iBAAW,QAAQ,MAAM,eAAe,CAAA;AAAI,kBAAU,KAAK,QAAQ,OAAO;AAC1E;EACJ;AACF;AAEA,SAAS,UAAU,QAAyB,SAAyB;AACnE,MAAI,kBAAkB;AAAa,YAAQ,IAAI,MAAM;AACvD;;;AD9zBM,SAAU,wBAAwB,QAAsB;AAC5D,SAAO,EAAC,QAAQ,cAAc,wBAAwB,MAAM,EAAC;AAC/D;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
9
- "version": "5.0.0-alpha.2",
9
+ "version": "5.0.0-alpha.3",
10
10
  "keywords": [
11
11
  "geoarrow",
12
12
  "geospatial",
@@ -31,6 +31,21 @@
31
31
  "types": "./dist/worker.d.ts",
32
32
  "import": "./dist/worker.js",
33
33
  "require": "./dist/worker.cjs"
34
+ },
35
+ "./builder": {
36
+ "types": "./dist/builder-entry.d.ts",
37
+ "import": "./dist/builder-entry.js",
38
+ "require": "./dist/builder-entry.cjs"
39
+ },
40
+ "./wkb": {
41
+ "types": "./dist/wkb-entry.d.ts",
42
+ "import": "./dist/wkb-entry.js",
43
+ "require": "./dist/wkb-entry.cjs"
44
+ },
45
+ "./tessellation": {
46
+ "types": "./dist/tessellation-entry.d.ts",
47
+ "import": "./dist/tessellation-entry.js",
48
+ "require": "./dist/tessellation-entry.cjs"
34
49
  }
35
50
  },
36
51
  "files": [
@@ -39,10 +54,10 @@
39
54
  ],
40
55
  "sideEffects": false,
41
56
  "dependencies": {
42
- "@math.gl/crs": "5.0.0-alpha.2",
43
- "@math.gl/polygon": "5.0.0-alpha.2",
44
- "@math.gl/types": "5.0.0-alpha.2",
45
- "@math.gl/wkb": "5.0.0-alpha.2"
57
+ "@math.gl/crs": "5.0.0-alpha.3",
58
+ "@math.gl/polygon": "5.0.0-alpha.3",
59
+ "@math.gl/types": "5.0.0-alpha.3",
60
+ "@math.gl/wkb": "5.0.0-alpha.3"
46
61
  },
47
- "gitHead": "1b21ecbe8872e604b1b362fe09ab59240bd5b41e"
62
+ "gitHead": "9887e5711acfceafb78d746dd8002629f1a4d398"
48
63
  }
@@ -0,0 +1,18 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ /** Optional builder subpath. Importing it avoids pulling codec and tessellation helpers. */
6
+ export type {
7
+ GeoArrowBuilderEncoding,
8
+ GeoArrowBuilderMeasurement,
9
+ GeoArrowBuilderModeOptions,
10
+ GeoArrowBuilderOptions,
11
+ GeoArrowColumnFromRowsOptions,
12
+ GeoArrowBuilderTarget
13
+ } from './builder';
14
+ export {
15
+ allocateGeoArrowBuilderTarget,
16
+ GeoArrowBuilder,
17
+ makeGeoArrowColumnFromGeometryRows
18
+ } from './builder';
package/src/builder.ts CHANGED
@@ -103,6 +103,15 @@ export class GeoArrowBuilder {
103
103
  private coordinateCount = 0;
104
104
  private partCount = 0;
105
105
  private ringCount = 0;
106
+ private readonly eventStack: Array<{
107
+ type: GeoArrowGeometryValue['type'];
108
+ dimension: GeoArrowDimension;
109
+ rings: number[][][];
110
+ polygons: number[][][][];
111
+ currentPolygon?: number[][][];
112
+ currentRing?: number[][];
113
+ children: GeoArrowGeometryValue[];
114
+ }> = [];
106
115
 
107
116
  constructor(options: GeoArrowBuilderModeOptions) {
108
117
  this.mode = options.mode;
@@ -135,7 +144,7 @@ export class GeoArrowBuilder {
135
144
  const depth = getBuilderDepth(this.encoding);
136
145
  const coordinates = geometry.coordinates as readonly unknown[];
137
146
  if (depth === 0) {
138
- this.writeCoordinate(coordinates as readonly number[]);
147
+ this.writeCoordinateValues(coordinates as readonly number[]);
139
148
  } else if (depth === 1) {
140
149
  this.writeCoordinateList(coordinates as readonly (readonly number[])[]);
141
150
  this.writeOffset(this.target?.geometryOffsets, rowIndex + 1, this.coordinateCount);
@@ -253,7 +262,7 @@ export class GeoArrowBuilder {
253
262
  private appendNull(rowIndex: number): void {
254
263
  const depth = getBuilderDepth(this.encoding);
255
264
  if (depth === 0) {
256
- this.writeCoordinate(new Array(getGeoArrowDimensionSize(this.dimension)).fill(0));
265
+ this.writeCoordinateValues(new Array(getGeoArrowDimensionSize(this.dimension)).fill(0));
257
266
  } else {
258
267
  this.writeOffset(
259
268
  this.target?.geometryOffsets,
@@ -264,10 +273,10 @@ export class GeoArrowBuilder {
264
273
  }
265
274
 
266
275
  private writeCoordinateList(coordinates: readonly (readonly number[])[]): void {
267
- for (const coordinate of coordinates) this.writeCoordinate(coordinate);
276
+ for (const coordinate of coordinates) this.writeCoordinateValues(coordinate);
268
277
  }
269
278
 
270
- private writeCoordinate(coordinate: readonly number[]): void {
279
+ private writeCoordinateValues(coordinate: readonly number[]): void {
271
280
  const size = getGeoArrowDimensionSize(this.dimension);
272
281
  if (coordinate.length !== size) {
273
282
  throw new Error(`Expected ${size} coordinate values for ${this.dimension}`);
@@ -277,6 +286,99 @@ export class GeoArrowBuilder {
277
286
  this.coordinateCount++;
278
287
  }
279
288
 
289
+ /** Begins an event-driven geometry. Events are accepted by both measure and write builders. */
290
+ beginGeometry(
291
+ type: GeoArrowGeometryValue['type'],
292
+ dimension = this.dimension,
293
+ _count?: number
294
+ ): this {
295
+ this.eventStack.push({type, dimension, rings: [], polygons: [], children: []});
296
+ return this;
297
+ }
298
+
299
+ /** Begins a polygon part inside an event-built MultiPolygon. */
300
+ beginPolygon(): this {
301
+ const state = this.eventStack[this.eventStack.length - 1];
302
+ if (!state || state.type !== 'MultiPolygon') {
303
+ throw new Error("beginPolygon must follow beginGeometry('MultiPolygon')");
304
+ }
305
+ state.currentPolygon = [];
306
+ state.polygons.push(state.currentPolygon);
307
+ state.currentRing = undefined;
308
+ return this;
309
+ }
310
+
311
+ /** Begins a ring/part in the current event geometry. */
312
+ beginRing(_count?: number): this {
313
+ const state = this.eventStack[this.eventStack.length - 1];
314
+ if (!state) throw new Error('beginRing must follow beginGeometry');
315
+ state.currentRing = [];
316
+ if (state.type === 'MultiPolygon') {
317
+ if (!state.currentPolygon) this.beginPolygon();
318
+ state.currentPolygon!.push(state.currentRing);
319
+ } else {
320
+ state.rings.push(state.currentRing);
321
+ }
322
+ return this;
323
+ }
324
+
325
+ /** Writes one coordinate into the current event ring or point. */
326
+ writeCoordinate(x: number | readonly number[], y?: number, z?: number, m?: number): this {
327
+ const state = this.eventStack[this.eventStack.length - 1];
328
+ if (!state) throw new Error('writeCoordinate must follow beginGeometry');
329
+ const coordinate = Array.isArray(x)
330
+ ? [...x]
331
+ : [x, y!, ...(z === undefined ? [] : [z]), ...(m === undefined ? [] : [m])];
332
+ const size = getGeoArrowDimensionSize(state.dimension);
333
+ if (coordinate.length !== size)
334
+ throw new Error(`Expected ${size} coordinate values for ${state.dimension}`);
335
+ if (state.type === 'Point') {
336
+ state.rings = [[coordinate]];
337
+ return this;
338
+ }
339
+ if (!state.currentRing) this.beginRing();
340
+ state.currentRing!.push(coordinate);
341
+ return this;
342
+ }
343
+
344
+ /** Ends the current event geometry and appends it to the builder/parent. */
345
+ endGeometry(): this {
346
+ const state = this.eventStack.pop();
347
+ if (!state) throw new Error('endGeometry without beginGeometry');
348
+ const coordinates = state.rings;
349
+ let geometry: GeoArrowGeometryValue;
350
+ switch (state.type) {
351
+ case 'Point':
352
+ geometry = {type: 'Point', coordinates: coordinates[0]?.[0] || []};
353
+ break;
354
+ case 'LineString':
355
+ geometry = {type: 'LineString', coordinates: coordinates[0] || []};
356
+ break;
357
+ case 'MultiPoint':
358
+ geometry = {type: 'MultiPoint', coordinates: coordinates.flat()};
359
+ break;
360
+ case 'Polygon':
361
+ geometry = {type: 'Polygon', coordinates};
362
+ break;
363
+ case 'MultiLineString':
364
+ geometry = {type: 'MultiLineString', coordinates};
365
+ break;
366
+ case 'MultiPolygon':
367
+ geometry = {
368
+ type: 'MultiPolygon',
369
+ coordinates: state.polygons.length ? state.polygons : [coordinates]
370
+ };
371
+ break;
372
+ case 'GeometryCollection':
373
+ geometry = {type: 'GeometryCollection', geometries: state.children};
374
+ break;
375
+ }
376
+ const parent = this.eventStack[this.eventStack.length - 1];
377
+ if (parent?.type === 'GeometryCollection') parent.children.push(geometry);
378
+ else this.append(geometry);
379
+ return this;
380
+ }
381
+
280
382
  private writeOffset(target: GeoArrowOffsets | undefined, index: number, value: number): void {
281
383
  if (!target) return;
282
384
  if (target instanceof BigInt64Array) target[index] = BigInt(value);
@@ -376,7 +478,7 @@ function makeDenseUnionArray(
376
478
  const geometry = rows[rowIndex];
377
479
  const type = geometry?.type || fallbackType;
378
480
  const values = childRows.get(type) || [];
379
- typeIds[rowIndex] = getGeometryTypeId(type);
481
+ typeIds[rowIndex] = getGeometryTypeId(type, dimension);
380
482
  valueOffsets[rowIndex] = values.length;
381
483
  if (geometry) {
382
484
  values.push(geometry);
@@ -385,7 +487,9 @@ function makeDenseUnionArray(
385
487
  }
386
488
  }
387
489
  const children = [...childRows.entries()]
388
- .sort(([left], [right]) => getGeometryTypeId(left) - getGeometryTypeId(right))
490
+ .sort(
491
+ ([left], [right]) => getGeometryTypeId(left, dimension) - getGeometryTypeId(right, dimension)
492
+ )
389
493
  .map(([type, values]) => {
390
494
  const data =
391
495
  type === 'GeometryCollection'
@@ -395,7 +499,14 @@ function makeDenseUnionArray(
395
499
  dimension,
396
500
  encoding: getGeoArrowEncodingForGeometry(type) as GeoArrowBuilderEncoding
397
501
  }).chunks[0];
398
- return {name: type, typeId: getGeometryTypeId(type), data};
502
+ return {
503
+ name: type,
504
+ typeId: getGeometryTypeId(type, dimension),
505
+ encoding: getGeoArrowEncodingForGeometry(type),
506
+ dimension,
507
+ coordinateLayout: options.coordinateLayout || 'interleaved',
508
+ data
509
+ };
399
510
  });
400
511
  return {
401
512
  kind: 'dense-union',
@@ -517,18 +628,21 @@ function getBuilderDepth(encoding: GeoArrowBuilderEncoding): 0 | 1 | 2 | 3 {
517
628
  }
518
629
  }
519
630
 
520
- function getGeometryTypeId(type: GeoArrowGeometryValue['type']): number {
521
- return (
522
- [
523
- 'Point',
524
- 'LineString',
525
- 'Polygon',
526
- 'MultiPoint',
527
- 'MultiLineString',
528
- 'MultiPolygon',
529
- 'GeometryCollection'
530
- ].indexOf(type) + 1
531
- );
631
+ function getGeometryTypeId(
632
+ type: GeoArrowGeometryValue['type'],
633
+ dimension: GeoArrowDimension = 'xy'
634
+ ): number {
635
+ const family = [
636
+ 'Point',
637
+ 'LineString',
638
+ 'Polygon',
639
+ 'MultiPoint',
640
+ 'MultiLineString',
641
+ 'MultiPolygon',
642
+ 'GeometryCollection'
643
+ ].indexOf(type);
644
+ const dimensionIndex = ['xy', 'xyz', 'xym', 'xyzm'].indexOf(dimension);
645
+ return family < 0 || dimensionIndex < 0 ? 1 : family * 4 + dimensionIndex + 1;
532
646
  }
533
647
 
534
648
  function inferRowsDimension(rows: readonly (GeoArrowGeometryValue | null)[]): GeoArrowDimension {