@loaders.gl/wkt 3.3.0-alpha.5 → 3.3.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/es5/bundle.js +0 -1
  2. package/dist/es5/bundle.js.map +1 -1
  3. package/dist/es5/index.js +6 -10
  4. package/dist/es5/index.js.map +1 -1
  5. package/dist/es5/lib/encode-wkb.js +19 -96
  6. package/dist/es5/lib/encode-wkb.js.map +1 -1
  7. package/dist/es5/lib/encode-wkt.js +0 -13
  8. package/dist/es5/lib/encode-wkt.js.map +1 -1
  9. package/dist/es5/lib/parse-wkb.js +6 -51
  10. package/dist/es5/lib/parse-wkb.js.map +1 -1
  11. package/dist/es5/lib/parse-wkt.js +2 -28
  12. package/dist/es5/lib/parse-wkt.js.map +1 -1
  13. package/dist/es5/lib/utils/binary-writer.js +9 -27
  14. package/dist/es5/lib/utils/binary-writer.js.map +1 -1
  15. package/dist/es5/lib/utils/version.js +1 -1
  16. package/dist/es5/lib/utils/version.js.map +1 -1
  17. package/dist/es5/wkb-loader.js +4 -17
  18. package/dist/es5/wkb-loader.js.map +1 -1
  19. package/dist/es5/wkb-writer.js +0 -4
  20. package/dist/es5/wkb-writer.js.map +1 -1
  21. package/dist/es5/wkt-loader.js +4 -17
  22. package/dist/es5/wkt-loader.js.map +1 -1
  23. package/dist/es5/wkt-writer.js +0 -4
  24. package/dist/es5/wkt-writer.js.map +1 -1
  25. package/dist/es5/workers/wkb-worker.js +0 -2
  26. package/dist/es5/workers/wkb-worker.js.map +1 -1
  27. package/dist/es5/workers/wkt-worker.js +0 -2
  28. package/dist/es5/workers/wkt-worker.js.map +1 -1
  29. package/dist/esm/bundle.js +1 -1
  30. package/dist/esm/bundle.js.map +1 -1
  31. package/dist/esm/index.js.map +1 -1
  32. package/dist/esm/lib/encode-wkb.js +4 -56
  33. package/dist/esm/lib/encode-wkb.js.map +1 -1
  34. package/dist/esm/lib/encode-wkt.js +2 -13
  35. package/dist/esm/lib/encode-wkt.js.map +1 -1
  36. package/dist/esm/lib/parse-wkb.js +5 -42
  37. package/dist/esm/lib/parse-wkb.js.map +1 -1
  38. package/dist/esm/lib/parse-wkt.js +4 -28
  39. package/dist/esm/lib/parse-wkt.js.map +1 -1
  40. package/dist/esm/lib/utils/binary-writer.js +1 -36
  41. package/dist/esm/lib/utils/binary-writer.js.map +1 -1
  42. package/dist/esm/lib/utils/version.js +2 -1
  43. package/dist/esm/lib/utils/version.js.map +1 -1
  44. package/dist/esm/wkb-loader.js +4 -1
  45. package/dist/esm/wkb-loader.js.map +1 -1
  46. package/dist/esm/wkb-writer.js +1 -0
  47. package/dist/esm/wkb-writer.js.map +1 -1
  48. package/dist/esm/wkt-loader.js +4 -1
  49. package/dist/esm/wkt-loader.js.map +1 -1
  50. package/dist/esm/wkt-writer.js +1 -0
  51. package/dist/esm/wkt-writer.js.map +1 -1
  52. package/dist/esm/workers/wkb-worker.js.map +1 -1
  53. package/dist/esm/workers/wkt-worker.js.map +1 -1
  54. package/dist/wkt-worker.js +1 -1
  55. package/package.json +4 -4
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var moduleExports = require('./index');
4
-
5
4
  globalThis.loaders = globalThis.loaders || {};
6
5
  module.exports = Object.assign(globalThis.loaders, moduleExports);
7
6
  //# sourceMappingURL=bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
1
+ {"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}
package/dist/es5/index.js CHANGED
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "WKBWorkerLoader", {
15
15
  return _wkbLoader.WKBWorkerLoader;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "WKBWriter", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _wkbWriter.WKBWriter;
22
+ }
23
+ });
18
24
  Object.defineProperty(exports, "WKTLoader", {
19
25
  enumerable: true,
20
26
  get: function get() {
@@ -33,18 +39,8 @@ Object.defineProperty(exports, "WKTWriter", {
33
39
  return _wktWriter.WKTWriter;
34
40
  }
35
41
  });
36
- Object.defineProperty(exports, "WKBWriter", {
37
- enumerable: true,
38
- get: function get() {
39
- return _wkbWriter.WKBWriter;
40
- }
41
- });
42
-
43
42
  var _wkbLoader = require("./wkb-loader");
44
-
45
43
  var _wktLoader = require("./wkt-loader");
46
-
47
44
  var _wktWriter = require("./wkt-writer");
48
-
49
45
  var _wkbWriter = require("./wkb-writer");
50
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA","sourcesContent":["export {WKBLoader, WKBWorkerLoader} from './wkb-loader';\nexport {WKTLoader, WKTWorkerLoader} from './wkt-loader';\nexport {WKTWriter} from './wkt-writer';\nexport {WKBWriter} from './wkb-writer';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export {WKBLoader, WKBWorkerLoader} from './wkb-loader';\nexport {WKTLoader, WKTWorkerLoader} from './wkt-loader';\nexport {WKTWriter} from './wkt-writer';\nexport {WKBWriter} from './wkb-writer';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA"}
@@ -1,24 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = encodeWKB;
9
-
10
8
  var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
11
-
12
9
  var _binaryWriter = _interopRequireDefault(require("./utils/binary-writer"));
13
-
14
10
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
15
-
16
11
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
-
18
12
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
19
-
20
13
  var WKB;
21
-
22
14
  (function (WKB) {
23
15
  WKB[WKB["Point"] = 1] = "Point";
24
16
  WKB[WKB["LineString"] = 2] = "LineString";
@@ -28,7 +20,6 @@ var WKB;
28
20
  WKB[WKB["MultiPolygon"] = 6] = "MultiPolygon";
29
21
  WKB[WKB["GeometryCollection"] = 7] = "GeometryCollection";
30
22
  })(WKB || (WKB = {}));
31
-
32
23
  function encodeWKB(geometry, options) {
33
24
  if (geometry.type === 'Feature') {
34
25
  geometry = geometry.geometry;
@@ -37,29 +28,21 @@ function encodeWKB(geometry, options) {
37
28
  if ('wkb' in options) {
38
29
  options = options.wkb;
39
30
  }
40
-
41
31
  switch (geometry.type) {
42
32
  case 'Point':
43
33
  return encodePoint(geometry.coordinates, options);
44
-
45
34
  case 'LineString':
46
35
  return encodeLineString(geometry.coordinates, options);
47
-
48
36
  case 'Polygon':
49
37
  return encodePolygon(geometry.coordinates, options);
50
-
51
38
  case 'MultiPoint':
52
39
  return encodeMultiPoint(geometry, options);
53
-
54
40
  case 'MultiPolygon':
55
41
  return encodeMultiPolygon(geometry, options);
56
-
57
42
  case 'MultiLineString':
58
43
  return encodeMultiLineString(geometry, options);
59
-
60
44
  case 'GeometryCollection':
61
45
  return encodeGeometryCollection(geometry, options);
62
-
63
46
  default:
64
47
  var exhaustiveCheck = geometry;
65
48
  throw new Error("Unhandled case: ".concat(exhaustiveCheck));
@@ -70,25 +53,18 @@ function getGeometrySize(geometry, options) {
70
53
  switch (geometry.type) {
71
54
  case 'Point':
72
55
  return getPointSize(options);
73
-
74
56
  case 'LineString':
75
57
  return getLineStringSize(geometry.coordinates, options);
76
-
77
58
  case 'Polygon':
78
59
  return getPolygonSize(geometry.coordinates, options);
79
-
80
60
  case 'MultiPoint':
81
61
  return getMultiPointSize(geometry, options);
82
-
83
62
  case 'MultiPolygon':
84
63
  return getMultiPolygonSize(geometry, options);
85
-
86
64
  case 'MultiLineString':
87
65
  return getMultiLineStringSize(geometry, options);
88
-
89
66
  case 'GeometryCollection':
90
67
  return getGeometryCollectionSize(geometry, options);
91
-
92
68
  default:
93
69
  var exhaustiveCheck = geometry;
94
70
  throw new Error("Unhandled case: ".concat(exhaustiveCheck));
@@ -103,29 +79,24 @@ function encodePoint(coordinates, options) {
103
79
  if (typeof coordinates[0] === 'undefined' && typeof coordinates[1] === 'undefined') {
104
80
  writer.writeDoubleLE(NaN);
105
81
  writer.writeDoubleLE(NaN);
106
-
107
82
  if (options.hasZ) {
108
83
  writer.writeDoubleLE(NaN);
109
84
  }
110
-
111
85
  if (options.hasM) {
112
86
  writer.writeDoubleLE(NaN);
113
87
  }
114
88
  } else {
115
89
  writeCoordinate(writer, coordinates, options);
116
90
  }
117
-
118
91
  return writer.arrayBuffer;
119
92
  }
120
93
 
121
94
  function writeCoordinate(writer, coordinate, options) {
122
95
  writer.writeDoubleLE(coordinate[0]);
123
96
  writer.writeDoubleLE(coordinate[1]);
124
-
125
97
  if (options.hasZ) {
126
98
  writer.writeDoubleLE(coordinate[2]);
127
99
  }
128
-
129
100
  if (options.hasM) {
130
101
  writer.writeDoubleLE(coordinate[3]);
131
102
  }
@@ -142,10 +113,8 @@ function encodeLineString(coordinates, options) {
142
113
  writer.writeInt8(1);
143
114
  writeWkbType(writer, WKB.LineString, options);
144
115
  writer.writeUInt32LE(coordinates.length);
145
-
146
116
  var _iterator = _createForOfIteratorHelper(coordinates),
147
- _step;
148
-
117
+ _step;
149
118
  try {
150
119
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
151
120
  var coordinate = _step.value;
@@ -156,7 +125,6 @@ function encodeLineString(coordinates, options) {
156
125
  } finally {
157
126
  _iterator.f();
158
127
  }
159
-
160
128
  return writer.arrayBuffer;
161
129
  }
162
130
 
@@ -169,21 +137,17 @@ function encodePolygon(coordinates, options) {
169
137
  var writer = new _binaryWriter.default(getPolygonSize(coordinates, options));
170
138
  writer.writeInt8(1);
171
139
  writeWkbType(writer, WKB.Polygon, options);
172
-
173
140
  var _coordinates = (0, _toArray2.default)(coordinates),
174
- exteriorRing = _coordinates[0],
175
- interiorRings = _coordinates.slice(1);
176
-
141
+ exteriorRing = _coordinates[0],
142
+ interiorRings = _coordinates.slice(1);
177
143
  if (exteriorRing.length > 0) {
178
144
  writer.writeUInt32LE(1 + interiorRings.length);
179
145
  writer.writeUInt32LE(exteriorRing.length);
180
146
  } else {
181
147
  writer.writeUInt32LE(0);
182
148
  }
183
-
184
149
  var _iterator2 = _createForOfIteratorHelper(exteriorRing),
185
- _step2;
186
-
150
+ _step2;
187
151
  try {
188
152
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
189
153
  var coordinate = _step2.value;
@@ -194,18 +158,14 @@ function encodePolygon(coordinates, options) {
194
158
  } finally {
195
159
  _iterator2.f();
196
160
  }
197
-
198
161
  var _iterator3 = _createForOfIteratorHelper(interiorRings),
199
- _step3;
200
-
162
+ _step3;
201
163
  try {
202
164
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
203
165
  var interiorRing = _step3.value;
204
166
  writer.writeUInt32LE(interiorRing.length);
205
-
206
167
  var _iterator4 = _createForOfIteratorHelper(interiorRing),
207
- _step4;
208
-
168
+ _step4;
209
169
  try {
210
170
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
211
171
  var _coordinate = _step4.value;
@@ -222,26 +182,20 @@ function encodePolygon(coordinates, options) {
222
182
  } finally {
223
183
  _iterator3.f();
224
184
  }
225
-
226
185
  return writer.arrayBuffer;
227
186
  }
228
187
 
229
188
  function getPolygonSize(coordinates, options) {
230
189
  var coordinateSize = getCoordinateSize(options);
231
-
232
190
  var _coordinates2 = (0, _toArray2.default)(coordinates),
233
- exteriorRing = _coordinates2[0],
234
- interiorRings = _coordinates2.slice(1);
235
-
191
+ exteriorRing = _coordinates2[0],
192
+ interiorRings = _coordinates2.slice(1);
236
193
  var size = 1 + 4 + 4;
237
-
238
194
  if (exteriorRing.length > 0) {
239
195
  size += 4 + exteriorRing.length * coordinateSize;
240
196
  }
241
-
242
197
  var _iterator5 = _createForOfIteratorHelper(interiorRings),
243
- _step5;
244
-
198
+ _step5;
245
199
  try {
246
200
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
247
201
  var interiorRing = _step5.value;
@@ -252,7 +206,6 @@ function getPolygonSize(coordinates, options) {
252
206
  } finally {
253
207
  _iterator5.f();
254
208
  }
255
-
256
209
  return size;
257
210
  }
258
211
 
@@ -262,10 +215,8 @@ function encodeMultiPoint(multiPoint, options) {
262
215
  writer.writeInt8(1);
263
216
  writeWkbType(writer, WKB.MultiPoint, options);
264
217
  writer.writeUInt32LE(points.length);
265
-
266
218
  var _iterator6 = _createForOfIteratorHelper(points),
267
- _step6;
268
-
219
+ _step6;
269
220
  try {
270
221
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
271
222
  var point = _step6.value;
@@ -277,13 +228,13 @@ function encodeMultiPoint(multiPoint, options) {
277
228
  } finally {
278
229
  _iterator6.f();
279
230
  }
280
-
281
231
  return writer.arrayBuffer;
282
232
  }
283
233
 
284
234
  function getMultiPointSize(multiPoint, options) {
285
235
  var coordinateSize = getCoordinateSize(options);
286
236
  var points = multiPoint.coordinates;
237
+
287
238
  coordinateSize += 5;
288
239
  return 1 + 4 + 4 + points.length * coordinateSize;
289
240
  }
@@ -294,10 +245,8 @@ function encodeMultiLineString(multiLineString, options) {
294
245
  writer.writeInt8(1);
295
246
  writeWkbType(writer, WKB.MultiLineString, options);
296
247
  writer.writeUInt32LE(lineStrings.length);
297
-
298
248
  var _iterator7 = _createForOfIteratorHelper(lineStrings),
299
- _step7;
300
-
249
+ _step7;
301
250
  try {
302
251
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
303
252
  var lineString = _step7.value;
@@ -309,17 +258,14 @@ function encodeMultiLineString(multiLineString, options) {
309
258
  } finally {
310
259
  _iterator7.f();
311
260
  }
312
-
313
261
  return writer.arrayBuffer;
314
262
  }
315
263
 
316
264
  function getMultiLineStringSize(multiLineString, options) {
317
265
  var size = 1 + 4 + 4;
318
266
  var lineStrings = multiLineString.coordinates;
319
-
320
267
  var _iterator8 = _createForOfIteratorHelper(lineStrings),
321
- _step8;
322
-
268
+ _step8;
323
269
  try {
324
270
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
325
271
  var lineString = _step8.value;
@@ -330,20 +276,16 @@ function getMultiLineStringSize(multiLineString, options) {
330
276
  } finally {
331
277
  _iterator8.f();
332
278
  }
333
-
334
279
  return size;
335
280
  }
336
-
337
281
  function encodeMultiPolygon(multiPolygon, options) {
338
282
  var writer = new _binaryWriter.default(getMultiPolygonSize(multiPolygon, options));
339
283
  var polygons = multiPolygon.coordinates;
340
284
  writer.writeInt8(1);
341
285
  writeWkbType(writer, WKB.MultiPolygon, options);
342
286
  writer.writeUInt32LE(polygons.length);
343
-
344
287
  var _iterator9 = _createForOfIteratorHelper(polygons),
345
- _step9;
346
-
288
+ _step9;
347
289
  try {
348
290
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
349
291
  var polygon = _step9.value;
@@ -355,17 +297,13 @@ function encodeMultiPolygon(multiPolygon, options) {
355
297
  } finally {
356
298
  _iterator9.f();
357
299
  }
358
-
359
300
  return writer.arrayBuffer;
360
301
  }
361
-
362
302
  function getMultiPolygonSize(multiPolygon, options) {
363
303
  var size = 1 + 4 + 4;
364
304
  var polygons = multiPolygon.coordinates;
365
-
366
305
  var _iterator10 = _createForOfIteratorHelper(polygons),
367
- _step10;
368
-
306
+ _step10;
369
307
  try {
370
308
  for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
371
309
  var polygon = _step10.value;
@@ -376,19 +314,15 @@ function getMultiPolygonSize(multiPolygon, options) {
376
314
  } finally {
377
315
  _iterator10.f();
378
316
  }
379
-
380
317
  return size;
381
318
  }
382
-
383
319
  function encodeGeometryCollection(collection, options) {
384
320
  var writer = new _binaryWriter.default(getGeometryCollectionSize(collection, options));
385
321
  writer.writeInt8(1);
386
322
  writeWkbType(writer, WKB.GeometryCollection, options);
387
323
  writer.writeUInt32LE(collection.geometries.length);
388
-
389
324
  var _iterator11 = _createForOfIteratorHelper(collection.geometries),
390
- _step11;
391
-
325
+ _step11;
392
326
  try {
393
327
  for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
394
328
  var geometry = _step11.value;
@@ -400,16 +334,12 @@ function encodeGeometryCollection(collection, options) {
400
334
  } finally {
401
335
  _iterator11.f();
402
336
  }
403
-
404
337
  return writer.arrayBuffer;
405
338
  }
406
-
407
339
  function getGeometryCollectionSize(collection, options) {
408
340
  var size = 1 + 4 + 4;
409
-
410
341
  var _iterator12 = _createForOfIteratorHelper(collection.geometries),
411
- _step12;
412
-
342
+ _step12;
413
343
  try {
414
344
  for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
415
345
  var geometry = _step12.value;
@@ -420,16 +350,14 @@ function getGeometryCollectionSize(collection, options) {
420
350
  } finally {
421
351
  _iterator12.f();
422
352
  }
423
-
424
353
  return size;
425
354
  }
426
355
 
427
356
  function writeWkbType(writer, geometryType, options) {
428
357
  var hasZ = options.hasZ,
429
- hasM = options.hasM,
430
- srid = options.srid;
358
+ hasM = options.hasM,
359
+ srid = options.srid;
431
360
  var dimensionType = 0;
432
-
433
361
  if (!srid) {
434
362
  if (hasZ && hasM) {
435
363
  dimensionType += 3000;
@@ -442,26 +370,21 @@ function writeWkbType(writer, geometryType, options) {
442
370
  if (hasZ) {
443
371
  dimensionType |= 0x80000000;
444
372
  }
445
-
446
373
  if (hasM) {
447
374
  dimensionType |= 0x40000000;
448
375
  }
449
376
  }
450
-
451
377
  writer.writeUInt32LE(dimensionType + geometryType >>> 0);
452
378
  }
453
379
 
454
380
  function getCoordinateSize(options) {
455
381
  var coordinateSize = 16;
456
-
457
382
  if (options.hasZ) {
458
383
  coordinateSize += 8;
459
384
  }
460
-
461
385
  if (options.hasM) {
462
386
  coordinateSize += 8;
463
387
  }
464
-
465
388
  return coordinateSize;
466
389
  }
467
390
  //# sourceMappingURL=encode-wkb.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/encode-wkb.ts"],"names":["WKB","encodeWKB","geometry","options","type","wkb","encodePoint","coordinates","encodeLineString","encodePolygon","encodeMultiPoint","encodeMultiPolygon","encodeMultiLineString","encodeGeometryCollection","exhaustiveCheck","Error","getGeometrySize","getPointSize","getLineStringSize","getPolygonSize","getMultiPointSize","getMultiPolygonSize","getMultiLineStringSize","getGeometryCollectionSize","writer","BinaryWriter","writeInt8","writeWkbType","Point","writeDoubleLE","NaN","hasZ","hasM","writeCoordinate","arrayBuffer","coordinate","coordinateSize","getCoordinateSize","size","LineString","writeUInt32LE","length","Polygon","exteriorRing","interiorRings","interiorRing","multiPoint","points","MultiPoint","point","writeBuffer","multiLineString","lineStrings","MultiLineString","lineString","encodedLineString","multiPolygon","polygons","MultiPolygon","polygon","encodedPolygon","collection","GeometryCollection","geometries","geometryType","srid","dimensionType"],"mappings":"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","sourcesContent":["// loaders.gl, MIT license\n// Forked from https://github.com/cschwarz/wkx under MIT license, Copyright (c) 2013 Christian Schwarz\n// Reference: https://www.ogc.org/standards/sfa\n\nimport type {\n Feature,\n Geometry,\n Point,\n MultiPoint,\n LineString,\n MultiLineString,\n Polygon,\n MultiPolygon,\n GeometryCollection\n} from '@loaders.gl/schema';\n\nimport BinaryWriter from './utils/binary-writer';\n\n/**\n * Integer code for geometry type\n * Reference: https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary\n */\nenum WKB {\n Point = 1,\n LineString = 2,\n Polygon = 3,\n MultiPoint = 4,\n MultiLineString = 5,\n MultiPolygon = 6,\n GeometryCollection = 7\n}\n\n/**\n * Options for encodeWKB\n */\ninterface WKBOptions {\n /** Does the GeoJSON input have Z values? */\n hasZ?: boolean;\n\n /** Does the GeoJSON input have M values? */\n hasM?: boolean;\n\n /** Spatial reference for input GeoJSON */\n srid?: any;\n}\n\n/**\n * Encodes a GeoJSON object into WKB\n * @param geojson A GeoJSON Feature or Geometry\n * @returns string\n */\nexport default function encodeWKB(\n geometry: Geometry | Feature,\n options: WKBOptions | {wkb: WKBOptions}\n): ArrayBuffer {\n if (geometry.type === 'Feature') {\n geometry = geometry.geometry;\n }\n\n // Options should be wrapped in a `wkb` key, but we allow top-level options here for backwards\n // compatibility\n if ('wkb' in options) {\n options = options.wkb;\n }\n\n switch (geometry.type) {\n case 'Point':\n return encodePoint(geometry.coordinates, options);\n case 'LineString':\n return encodeLineString(geometry.coordinates, options);\n case 'Polygon':\n return encodePolygon(geometry.coordinates, options);\n case 'MultiPoint':\n return encodeMultiPoint(geometry, options);\n case 'MultiPolygon':\n return encodeMultiPolygon(geometry, options);\n case 'MultiLineString':\n return encodeMultiLineString(geometry, options);\n case 'GeometryCollection':\n return encodeGeometryCollection(geometry, options);\n default:\n const exhaustiveCheck: never = geometry;\n throw new Error(`Unhandled case: ${exhaustiveCheck}`);\n }\n}\n\n/** Calculate the binary size (in the WKB encoding) of a specific GeoJSON geometry */\nfunction getGeometrySize(geometry: Geometry, options: WKBOptions): number {\n switch (geometry.type) {\n case 'Point':\n return getPointSize(options);\n case 'LineString':\n return getLineStringSize(geometry.coordinates, options);\n case 'Polygon':\n return getPolygonSize(geometry.coordinates, options);\n case 'MultiPoint':\n return getMultiPointSize(geometry, options);\n case 'MultiPolygon':\n return getMultiPolygonSize(geometry, options);\n case 'MultiLineString':\n return getMultiLineStringSize(geometry, options);\n case 'GeometryCollection':\n return getGeometryCollectionSize(geometry, options);\n default:\n const exhaustiveCheck: never = geometry;\n throw new Error(`Unhandled case: ${exhaustiveCheck}`);\n }\n}\n\n/** Encode Point geometry as WKB ArrayBuffer */\nfunction encodePoint(coordinates: Point['coordinates'], options: WKBOptions): ArrayBuffer {\n const writer = new BinaryWriter(getPointSize(options));\n\n writer.writeInt8(1);\n writeWkbType(writer, WKB.Point, options);\n\n // I believe this special case is to handle writing Point(NaN, NaN) correctly\n if (typeof coordinates[0] === 'undefined' && typeof coordinates[1] === 'undefined') {\n writer.writeDoubleLE(NaN);\n writer.writeDoubleLE(NaN);\n\n if (options.hasZ) {\n writer.writeDoubleLE(NaN);\n }\n if (options.hasM) {\n writer.writeDoubleLE(NaN);\n }\n } else {\n writeCoordinate(writer, coordinates, options);\n }\n\n return writer.arrayBuffer;\n}\n\n/** Write coordinate to buffer */\nfunction writeCoordinate(\n writer: BinaryWriter,\n coordinate: Point['coordinates'],\n options: WKBOptions\n): void {\n writer.writeDoubleLE(coordinate[0]);\n writer.writeDoubleLE(coordinate[1]);\n\n if (options.hasZ) {\n writer.writeDoubleLE(coordinate[2]);\n }\n if (options.hasM) {\n writer.writeDoubleLE(coordinate[3]);\n }\n}\n\n/** Get encoded size of Point geometry */\nfunction getPointSize(options: WKBOptions): number {\n const coordinateSize = getCoordinateSize(options);\n return 1 + 4 + coordinateSize;\n}\n\n/** Encode LineString geometry as WKB ArrayBuffer */\nfunction encodeLineString(\n coordinates: LineString['coordinates'],\n options: WKBOptions\n): ArrayBuffer {\n const size = getLineStringSize(coordinates, options);\n\n const writer = new BinaryWriter(size);\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.LineString, options);\n writer.writeUInt32LE(coordinates.length);\n\n for (const coordinate of coordinates) {\n writeCoordinate(writer, coordinate, options);\n }\n\n return writer.arrayBuffer;\n}\n\n/** Get encoded size of LineString geometry */\nfunction getLineStringSize(coordinates: LineString['coordinates'], options: WKBOptions): number {\n const coordinateSize = getCoordinateSize(options);\n\n return 1 + 4 + 4 + coordinates.length * coordinateSize;\n}\n\n/** Encode Polygon geometry as WKB ArrayBuffer */\nfunction encodePolygon(coordinates: Polygon['coordinates'], options: WKBOptions): ArrayBuffer {\n const writer = new BinaryWriter(getPolygonSize(coordinates, options));\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.Polygon, options);\n const [exteriorRing, ...interiorRings] = coordinates;\n\n if (exteriorRing.length > 0) {\n writer.writeUInt32LE(1 + interiorRings.length);\n writer.writeUInt32LE(exteriorRing.length);\n } else {\n writer.writeUInt32LE(0);\n }\n\n for (const coordinate of exteriorRing) {\n writeCoordinate(writer, coordinate, options);\n }\n\n for (const interiorRing of interiorRings) {\n writer.writeUInt32LE(interiorRing.length);\n\n for (const coordinate of interiorRing) {\n writeCoordinate(writer, coordinate, options);\n }\n }\n\n return writer.arrayBuffer;\n}\n\n/** Get encoded size of Polygon geometry */\nfunction getPolygonSize(coordinates: Polygon['coordinates'], options: WKBOptions): number {\n const coordinateSize = getCoordinateSize(options);\n const [exteriorRing, ...interiorRings] = coordinates;\n\n let size = 1 + 4 + 4;\n\n if (exteriorRing.length > 0) {\n size += 4 + exteriorRing.length * coordinateSize;\n }\n\n for (const interiorRing of interiorRings) {\n size += 4 + interiorRing.length * coordinateSize;\n }\n\n return size;\n}\n\n/** Encode MultiPoint geometry as WKB ArrayBufer */\nfunction encodeMultiPoint(multiPoint: MultiPoint, options: WKBOptions) {\n const writer = new BinaryWriter(getMultiPointSize(multiPoint, options));\n const points = multiPoint.coordinates;\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.MultiPoint, options);\n writer.writeUInt32LE(points.length);\n\n for (const point of points) {\n // TODO: add srid to this options object? {srid: multiPoint.srid}\n const arrayBuffer = encodePoint(point, options);\n writer.writeBuffer(arrayBuffer);\n }\n\n return writer.arrayBuffer;\n}\n\n/** Get encoded size of MultiPoint geometry */\nfunction getMultiPointSize(multiPoint: MultiPoint, options: WKBOptions) {\n let coordinateSize = getCoordinateSize(options);\n const points = multiPoint.coordinates;\n\n // This is because each point has a 5-byte header?\n coordinateSize += 5;\n\n return 1 + 4 + 4 + points.length * coordinateSize;\n}\n\n/** Encode MultiLineString geometry as WKB ArrayBufer */\nfunction encodeMultiLineString(multiLineString: MultiLineString, options: WKBOptions) {\n const writer = new BinaryWriter(getMultiLineStringSize(multiLineString, options));\n const lineStrings = multiLineString.coordinates;\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.MultiLineString, options);\n writer.writeUInt32LE(lineStrings.length);\n\n for (const lineString of lineStrings) {\n // TODO: Handle srid?\n const encodedLineString = encodeLineString(lineString, options);\n writer.writeBuffer(encodedLineString);\n }\n\n return writer.arrayBuffer;\n}\n\n/** Get encoded size of MultiLineString geometry */\nfunction getMultiLineStringSize(multiLineString: MultiLineString, options: WKBOptions): number {\n let size = 1 + 4 + 4;\n const lineStrings = multiLineString.coordinates;\n\n for (const lineString of lineStrings) {\n size += getLineStringSize(lineString, options);\n }\n\n return size;\n}\n\nfunction encodeMultiPolygon(multiPolygon: MultiPolygon, options: WKBOptions): ArrayBuffer {\n const writer = new BinaryWriter(getMultiPolygonSize(multiPolygon, options));\n const polygons = multiPolygon.coordinates;\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.MultiPolygon, options);\n writer.writeUInt32LE(polygons.length);\n\n for (const polygon of polygons) {\n const encodedPolygon = encodePolygon(polygon, options);\n writer.writeBuffer(encodedPolygon);\n }\n\n return writer.arrayBuffer;\n}\n\nfunction getMultiPolygonSize(multiPolygon: MultiPolygon, options: WKBOptions): number {\n let size = 1 + 4 + 4;\n const polygons = multiPolygon.coordinates;\n\n for (const polygon of polygons) {\n size += getPolygonSize(polygon, options);\n }\n\n return size;\n}\n\nfunction encodeGeometryCollection(\n collection: GeometryCollection,\n options: WKBOptions\n): ArrayBuffer {\n const writer = new BinaryWriter(getGeometryCollectionSize(collection, options));\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.GeometryCollection, options);\n writer.writeUInt32LE(collection.geometries.length);\n\n for (const geometry of collection.geometries) {\n // TODO: handle srid? {srid: collection.srid}\n const arrayBuffer = encodeWKB(geometry, options);\n writer.writeBuffer(arrayBuffer);\n }\n\n return writer.arrayBuffer;\n}\n\nfunction getGeometryCollectionSize(collection: GeometryCollection, options: WKBOptions): number {\n let size = 1 + 4 + 4;\n\n for (const geometry of collection.geometries) {\n size += getGeometrySize(geometry, options);\n }\n\n return size;\n}\n\n// HELPERS\n\n/**\n * Construct and write WKB integer code\n * Reference: https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary\n */\nfunction writeWkbType(writer: BinaryWriter, geometryType: number, options: WKBOptions): void {\n const {hasZ, hasM, srid} = options;\n\n let dimensionType = 0;\n\n if (!srid) {\n if (hasZ && hasM) {\n dimensionType += 3000;\n } else if (hasZ) {\n dimensionType += 1000;\n } else if (hasM) {\n dimensionType += 2000;\n }\n } else {\n if (hasZ) {\n dimensionType |= 0x80000000;\n }\n if (hasM) {\n dimensionType |= 0x40000000;\n }\n }\n\n writer.writeUInt32LE((dimensionType + geometryType) >>> 0);\n}\n\n/** Get coordinate size given Z/M dimensions */\nfunction getCoordinateSize(options: WKBOptions): number {\n let coordinateSize = 16;\n\n if (options.hasZ) {\n coordinateSize += 8;\n }\n if (options.hasM) {\n coordinateSize += 8;\n }\n\n return coordinateSize;\n}\n"],"file":"encode-wkb.js"}
1
+ {"version":3,"file":"encode-wkb.js","names":["WKB","encodeWKB","geometry","options","type","wkb","encodePoint","coordinates","encodeLineString","encodePolygon","encodeMultiPoint","encodeMultiPolygon","encodeMultiLineString","encodeGeometryCollection","exhaustiveCheck","Error","getGeometrySize","getPointSize","getLineStringSize","getPolygonSize","getMultiPointSize","getMultiPolygonSize","getMultiLineStringSize","getGeometryCollectionSize","writer","BinaryWriter","writeInt8","writeWkbType","Point","writeDoubleLE","NaN","hasZ","hasM","writeCoordinate","arrayBuffer","coordinate","coordinateSize","getCoordinateSize","size","LineString","writeUInt32LE","length","Polygon","exteriorRing","interiorRings","interiorRing","multiPoint","points","MultiPoint","point","writeBuffer","multiLineString","lineStrings","MultiLineString","lineString","encodedLineString","multiPolygon","polygons","MultiPolygon","polygon","encodedPolygon","collection","GeometryCollection","geometries","geometryType","srid","dimensionType"],"sources":["../../../src/lib/encode-wkb.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Forked from https://github.com/cschwarz/wkx under MIT license, Copyright (c) 2013 Christian Schwarz\n// Reference: https://www.ogc.org/standards/sfa\n\nimport type {\n Feature,\n Geometry,\n Point,\n MultiPoint,\n LineString,\n MultiLineString,\n Polygon,\n MultiPolygon,\n GeometryCollection\n} from '@loaders.gl/schema';\n\nimport BinaryWriter from './utils/binary-writer';\n\n/**\n * Integer code for geometry type\n * Reference: https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary\n */\nenum WKB {\n Point = 1,\n LineString = 2,\n Polygon = 3,\n MultiPoint = 4,\n MultiLineString = 5,\n MultiPolygon = 6,\n GeometryCollection = 7\n}\n\n/**\n * Options for encodeWKB\n */\ninterface WKBOptions {\n /** Does the GeoJSON input have Z values? */\n hasZ?: boolean;\n\n /** Does the GeoJSON input have M values? */\n hasM?: boolean;\n\n /** Spatial reference for input GeoJSON */\n srid?: any;\n}\n\n/**\n * Encodes a GeoJSON object into WKB\n * @param geojson A GeoJSON Feature or Geometry\n * @returns string\n */\nexport default function encodeWKB(\n geometry: Geometry | Feature,\n options: WKBOptions | {wkb: WKBOptions}\n): ArrayBuffer {\n if (geometry.type === 'Feature') {\n geometry = geometry.geometry;\n }\n\n // Options should be wrapped in a `wkb` key, but we allow top-level options here for backwards\n // compatibility\n if ('wkb' in options) {\n options = options.wkb;\n }\n\n switch (geometry.type) {\n case 'Point':\n return encodePoint(geometry.coordinates, options);\n case 'LineString':\n return encodeLineString(geometry.coordinates, options);\n case 'Polygon':\n return encodePolygon(geometry.coordinates, options);\n case 'MultiPoint':\n return encodeMultiPoint(geometry, options);\n case 'MultiPolygon':\n return encodeMultiPolygon(geometry, options);\n case 'MultiLineString':\n return encodeMultiLineString(geometry, options);\n case 'GeometryCollection':\n return encodeGeometryCollection(geometry, options);\n default:\n const exhaustiveCheck: never = geometry;\n throw new Error(`Unhandled case: ${exhaustiveCheck}`);\n }\n}\n\n/** Calculate the binary size (in the WKB encoding) of a specific GeoJSON geometry */\nfunction getGeometrySize(geometry: Geometry, options: WKBOptions): number {\n switch (geometry.type) {\n case 'Point':\n return getPointSize(options);\n case 'LineString':\n return getLineStringSize(geometry.coordinates, options);\n case 'Polygon':\n return getPolygonSize(geometry.coordinates, options);\n case 'MultiPoint':\n return getMultiPointSize(geometry, options);\n case 'MultiPolygon':\n return getMultiPolygonSize(geometry, options);\n case 'MultiLineString':\n return getMultiLineStringSize(geometry, options);\n case 'GeometryCollection':\n return getGeometryCollectionSize(geometry, options);\n default:\n const exhaustiveCheck: never = geometry;\n throw new Error(`Unhandled case: ${exhaustiveCheck}`);\n }\n}\n\n/** Encode Point geometry as WKB ArrayBuffer */\nfunction encodePoint(coordinates: Point['coordinates'], options: WKBOptions): ArrayBuffer {\n const writer = new BinaryWriter(getPointSize(options));\n\n writer.writeInt8(1);\n writeWkbType(writer, WKB.Point, options);\n\n // I believe this special case is to handle writing Point(NaN, NaN) correctly\n if (typeof coordinates[0] === 'undefined' && typeof coordinates[1] === 'undefined') {\n writer.writeDoubleLE(NaN);\n writer.writeDoubleLE(NaN);\n\n if (options.hasZ) {\n writer.writeDoubleLE(NaN);\n }\n if (options.hasM) {\n writer.writeDoubleLE(NaN);\n }\n } else {\n writeCoordinate(writer, coordinates, options);\n }\n\n return writer.arrayBuffer;\n}\n\n/** Write coordinate to buffer */\nfunction writeCoordinate(\n writer: BinaryWriter,\n coordinate: Point['coordinates'],\n options: WKBOptions\n): void {\n writer.writeDoubleLE(coordinate[0]);\n writer.writeDoubleLE(coordinate[1]);\n\n if (options.hasZ) {\n writer.writeDoubleLE(coordinate[2]);\n }\n if (options.hasM) {\n writer.writeDoubleLE(coordinate[3]);\n }\n}\n\n/** Get encoded size of Point geometry */\nfunction getPointSize(options: WKBOptions): number {\n const coordinateSize = getCoordinateSize(options);\n return 1 + 4 + coordinateSize;\n}\n\n/** Encode LineString geometry as WKB ArrayBuffer */\nfunction encodeLineString(\n coordinates: LineString['coordinates'],\n options: WKBOptions\n): ArrayBuffer {\n const size = getLineStringSize(coordinates, options);\n\n const writer = new BinaryWriter(size);\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.LineString, options);\n writer.writeUInt32LE(coordinates.length);\n\n for (const coordinate of coordinates) {\n writeCoordinate(writer, coordinate, options);\n }\n\n return writer.arrayBuffer;\n}\n\n/** Get encoded size of LineString geometry */\nfunction getLineStringSize(coordinates: LineString['coordinates'], options: WKBOptions): number {\n const coordinateSize = getCoordinateSize(options);\n\n return 1 + 4 + 4 + coordinates.length * coordinateSize;\n}\n\n/** Encode Polygon geometry as WKB ArrayBuffer */\nfunction encodePolygon(coordinates: Polygon['coordinates'], options: WKBOptions): ArrayBuffer {\n const writer = new BinaryWriter(getPolygonSize(coordinates, options));\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.Polygon, options);\n const [exteriorRing, ...interiorRings] = coordinates;\n\n if (exteriorRing.length > 0) {\n writer.writeUInt32LE(1 + interiorRings.length);\n writer.writeUInt32LE(exteriorRing.length);\n } else {\n writer.writeUInt32LE(0);\n }\n\n for (const coordinate of exteriorRing) {\n writeCoordinate(writer, coordinate, options);\n }\n\n for (const interiorRing of interiorRings) {\n writer.writeUInt32LE(interiorRing.length);\n\n for (const coordinate of interiorRing) {\n writeCoordinate(writer, coordinate, options);\n }\n }\n\n return writer.arrayBuffer;\n}\n\n/** Get encoded size of Polygon geometry */\nfunction getPolygonSize(coordinates: Polygon['coordinates'], options: WKBOptions): number {\n const coordinateSize = getCoordinateSize(options);\n const [exteriorRing, ...interiorRings] = coordinates;\n\n let size = 1 + 4 + 4;\n\n if (exteriorRing.length > 0) {\n size += 4 + exteriorRing.length * coordinateSize;\n }\n\n for (const interiorRing of interiorRings) {\n size += 4 + interiorRing.length * coordinateSize;\n }\n\n return size;\n}\n\n/** Encode MultiPoint geometry as WKB ArrayBufer */\nfunction encodeMultiPoint(multiPoint: MultiPoint, options: WKBOptions) {\n const writer = new BinaryWriter(getMultiPointSize(multiPoint, options));\n const points = multiPoint.coordinates;\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.MultiPoint, options);\n writer.writeUInt32LE(points.length);\n\n for (const point of points) {\n // TODO: add srid to this options object? {srid: multiPoint.srid}\n const arrayBuffer = encodePoint(point, options);\n writer.writeBuffer(arrayBuffer);\n }\n\n return writer.arrayBuffer;\n}\n\n/** Get encoded size of MultiPoint geometry */\nfunction getMultiPointSize(multiPoint: MultiPoint, options: WKBOptions) {\n let coordinateSize = getCoordinateSize(options);\n const points = multiPoint.coordinates;\n\n // This is because each point has a 5-byte header?\n coordinateSize += 5;\n\n return 1 + 4 + 4 + points.length * coordinateSize;\n}\n\n/** Encode MultiLineString geometry as WKB ArrayBufer */\nfunction encodeMultiLineString(multiLineString: MultiLineString, options: WKBOptions) {\n const writer = new BinaryWriter(getMultiLineStringSize(multiLineString, options));\n const lineStrings = multiLineString.coordinates;\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.MultiLineString, options);\n writer.writeUInt32LE(lineStrings.length);\n\n for (const lineString of lineStrings) {\n // TODO: Handle srid?\n const encodedLineString = encodeLineString(lineString, options);\n writer.writeBuffer(encodedLineString);\n }\n\n return writer.arrayBuffer;\n}\n\n/** Get encoded size of MultiLineString geometry */\nfunction getMultiLineStringSize(multiLineString: MultiLineString, options: WKBOptions): number {\n let size = 1 + 4 + 4;\n const lineStrings = multiLineString.coordinates;\n\n for (const lineString of lineStrings) {\n size += getLineStringSize(lineString, options);\n }\n\n return size;\n}\n\nfunction encodeMultiPolygon(multiPolygon: MultiPolygon, options: WKBOptions): ArrayBuffer {\n const writer = new BinaryWriter(getMultiPolygonSize(multiPolygon, options));\n const polygons = multiPolygon.coordinates;\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.MultiPolygon, options);\n writer.writeUInt32LE(polygons.length);\n\n for (const polygon of polygons) {\n const encodedPolygon = encodePolygon(polygon, options);\n writer.writeBuffer(encodedPolygon);\n }\n\n return writer.arrayBuffer;\n}\n\nfunction getMultiPolygonSize(multiPolygon: MultiPolygon, options: WKBOptions): number {\n let size = 1 + 4 + 4;\n const polygons = multiPolygon.coordinates;\n\n for (const polygon of polygons) {\n size += getPolygonSize(polygon, options);\n }\n\n return size;\n}\n\nfunction encodeGeometryCollection(\n collection: GeometryCollection,\n options: WKBOptions\n): ArrayBuffer {\n const writer = new BinaryWriter(getGeometryCollectionSize(collection, options));\n\n writer.writeInt8(1);\n\n writeWkbType(writer, WKB.GeometryCollection, options);\n writer.writeUInt32LE(collection.geometries.length);\n\n for (const geometry of collection.geometries) {\n // TODO: handle srid? {srid: collection.srid}\n const arrayBuffer = encodeWKB(geometry, options);\n writer.writeBuffer(arrayBuffer);\n }\n\n return writer.arrayBuffer;\n}\n\nfunction getGeometryCollectionSize(collection: GeometryCollection, options: WKBOptions): number {\n let size = 1 + 4 + 4;\n\n for (const geometry of collection.geometries) {\n size += getGeometrySize(geometry, options);\n }\n\n return size;\n}\n\n// HELPERS\n\n/**\n * Construct and write WKB integer code\n * Reference: https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary\n */\nfunction writeWkbType(writer: BinaryWriter, geometryType: number, options: WKBOptions): void {\n const {hasZ, hasM, srid} = options;\n\n let dimensionType = 0;\n\n if (!srid) {\n if (hasZ && hasM) {\n dimensionType += 3000;\n } else if (hasZ) {\n dimensionType += 1000;\n } else if (hasM) {\n dimensionType += 2000;\n }\n } else {\n if (hasZ) {\n dimensionType |= 0x80000000;\n }\n if (hasM) {\n dimensionType |= 0x40000000;\n }\n }\n\n writer.writeUInt32LE((dimensionType + geometryType) >>> 0);\n}\n\n/** Get coordinate size given Z/M dimensions */\nfunction getCoordinateSize(options: WKBOptions): number {\n let coordinateSize = 16;\n\n if (options.hasZ) {\n coordinateSize += 8;\n }\n if (options.hasM) {\n coordinateSize += 8;\n }\n\n return coordinateSize;\n}\n"],"mappings":"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"}
@@ -9,50 +9,37 @@ function encodeWKT(geometry) {
9
9
  if (geometry.type === 'Feature') {
10
10
  geometry = geometry.geometry;
11
11
  }
12
-
13
12
  switch (geometry.type) {
14
13
  case 'Point':
15
14
  return "POINT ".concat(wrapParens(pairWKT(geometry.coordinates)));
16
-
17
15
  case 'LineString':
18
16
  return "LINESTRING ".concat(wrapParens(ringWKT(geometry.coordinates)));
19
-
20
17
  case 'Polygon':
21
18
  return "POLYGON ".concat(wrapParens(ringsWKT(geometry.coordinates)));
22
-
23
19
  case 'MultiPoint':
24
20
  return "MULTIPOINT ".concat(wrapParens(ringWKT(geometry.coordinates)));
25
-
26
21
  case 'MultiPolygon':
27
22
  return "MULTIPOLYGON ".concat(wrapParens(multiRingsWKT(geometry.coordinates)));
28
-
29
23
  case 'MultiLineString':
30
24
  return "MULTILINESTRING ".concat(wrapParens(ringsWKT(geometry.coordinates)));
31
-
32
25
  case 'GeometryCollection':
33
26
  return "GEOMETRYCOLLECTION ".concat(wrapParens(geometry.geometries.map(encodeWKT).join(', ')));
34
-
35
27
  default:
36
28
  throw new Error('stringify requires a valid GeoJSON Feature or geometry object as input');
37
29
  }
38
30
  }
39
-
40
31
  function pairWKT(c) {
41
32
  return c.join(' ');
42
33
  }
43
-
44
34
  function ringWKT(r) {
45
35
  return r.map(pairWKT).join(', ');
46
36
  }
47
-
48
37
  function ringsWKT(r) {
49
38
  return r.map(ringWKT).map(wrapParens).join(', ');
50
39
  }
51
-
52
40
  function multiRingsWKT(r) {
53
41
  return r.map(ringsWKT).map(wrapParens).join(', ');
54
42
  }
55
-
56
43
  function wrapParens(s) {
57
44
  return "(".concat(s, ")");
58
45
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/encode-wkt.ts"],"names":["encodeWKT","geometry","type","wrapParens","pairWKT","coordinates","ringWKT","ringsWKT","multiRingsWKT","geometries","map","join","Error","c","r","s"],"mappings":";;;;;;;AASe,SAASA,SAAT,CAAmBC,QAAnB,EAAyD;AACtE,MAAIA,QAAQ,CAACC,IAAT,KAAkB,SAAtB,EAAiC;AAC/BD,IAAAA,QAAQ,GAAGA,QAAQ,CAACA,QAApB;AACD;;AAED,UAAQA,QAAQ,CAACC,IAAjB;AACE,SAAK,OAAL;AACE,6BAAgBC,UAAU,CAACC,OAAO,CAACH,QAAQ,CAACI,WAAV,CAAR,CAA1B;;AACF,SAAK,YAAL;AACE,kCAAqBF,UAAU,CAACG,OAAO,CAACL,QAAQ,CAACI,WAAV,CAAR,CAA/B;;AACF,SAAK,SAAL;AACE,+BAAkBF,UAAU,CAACI,QAAQ,CAACN,QAAQ,CAACI,WAAV,CAAT,CAA5B;;AACF,SAAK,YAAL;AACE,kCAAqBF,UAAU,CAACG,OAAO,CAACL,QAAQ,CAACI,WAAV,CAAR,CAA/B;;AACF,SAAK,cAAL;AACE,oCAAuBF,UAAU,CAACK,aAAa,CAACP,QAAQ,CAACI,WAAV,CAAd,CAAjC;;AACF,SAAK,iBAAL;AACE,uCAA0BF,UAAU,CAACI,QAAQ,CAACN,QAAQ,CAACI,WAAV,CAAT,CAApC;;AACF,SAAK,oBAAL;AACE,0CAA6BF,UAAU,CAACF,QAAQ,CAACQ,UAAT,CAAoBC,GAApB,CAAwBV,SAAxB,EAAmCW,IAAnC,CAAwC,IAAxC,CAAD,CAAvC;;AACF;AACE,YAAM,IAAIC,KAAJ,CAAU,wEAAV,CAAN;AAhBJ;AAkBD;;AAED,SAASR,OAAT,CAAiBS,CAAjB,EAAsC;AACpC,SAAOA,CAAC,CAACF,IAAF,CAAO,GAAP,CAAP;AACD;;AAED,SAASL,OAAT,CAAiBQ,CAAjB,EAAwC;AACtC,SAAOA,CAAC,CAACJ,GAAF,CAAMN,OAAN,EAAeO,IAAf,CAAoB,IAApB,CAAP;AACD;;AAED,SAASJ,QAAT,CAAkBO,CAAlB,EAA2C;AACzC,SAAOA,CAAC,CAACJ,GAAF,CAAMJ,OAAN,EAAeI,GAAf,CAAmBP,UAAnB,EAA+BQ,IAA/B,CAAoC,IAApC,CAAP;AACD;;AAED,SAASH,aAAT,CAAuBM,CAAvB,EAAkD;AAChD,SAAOA,CAAC,CAACJ,GAAF,CAAMH,QAAN,EAAgBG,GAAhB,CAAoBP,UAApB,EAAgCQ,IAAhC,CAAqC,IAArC,CAAP;AACD;;AAED,SAASR,UAAT,CAAoBY,CAApB,EAAuC;AACrC,oBAAWA,CAAX;AACD","sourcesContent":["// Fork of https://github.com/mapbox/wellknown under ISC license (MIT/BSD-2-clause equivalent)\n// eslint-disable-next-line import/no-unresolved\nimport type {Feature, Geometry} from '@loaders.gl/schema';\n\n/**\n * Stringifies a GeoJSON object into WKT\n * @param geojson\n * @returns string\n */\nexport default function encodeWKT(geometry: Geometry | Feature): string {\n if (geometry.type === 'Feature') {\n geometry = geometry.geometry;\n }\n\n switch (geometry.type) {\n case 'Point':\n return `POINT ${wrapParens(pairWKT(geometry.coordinates))}`;\n case 'LineString':\n return `LINESTRING ${wrapParens(ringWKT(geometry.coordinates))}`;\n case 'Polygon':\n return `POLYGON ${wrapParens(ringsWKT(geometry.coordinates))}`;\n case 'MultiPoint':\n return `MULTIPOINT ${wrapParens(ringWKT(geometry.coordinates))}`;\n case 'MultiPolygon':\n return `MULTIPOLYGON ${wrapParens(multiRingsWKT(geometry.coordinates))}`;\n case 'MultiLineString':\n return `MULTILINESTRING ${wrapParens(ringsWKT(geometry.coordinates))}`;\n case 'GeometryCollection':\n return `GEOMETRYCOLLECTION ${wrapParens(geometry.geometries.map(encodeWKT).join(', '))}`;\n default:\n throw new Error('stringify requires a valid GeoJSON Feature or geometry object as input');\n }\n}\n\nfunction pairWKT(c: number[]): string {\n return c.join(' ');\n}\n\nfunction ringWKT(r: number[][]): string {\n return r.map(pairWKT).join(', ');\n}\n\nfunction ringsWKT(r: number[][][]): string {\n return r.map(ringWKT).map(wrapParens).join(', ');\n}\n\nfunction multiRingsWKT(r: number[][][][]): string {\n return r.map(ringsWKT).map(wrapParens).join(', ');\n}\n\nfunction wrapParens(s: string): string {\n return `(${s})`;\n}\n"],"file":"encode-wkt.js"}
1
+ {"version":3,"file":"encode-wkt.js","names":["encodeWKT","geometry","type","wrapParens","pairWKT","coordinates","ringWKT","ringsWKT","multiRingsWKT","geometries","map","join","Error","c","r","s"],"sources":["../../../src/lib/encode-wkt.ts"],"sourcesContent":["// Fork of https://github.com/mapbox/wellknown under ISC license (MIT/BSD-2-clause equivalent)\n// eslint-disable-next-line import/no-unresolved\nimport type {Feature, Geometry} from '@loaders.gl/schema';\n\n/**\n * Stringifies a GeoJSON object into WKT\n * @param geojson\n * @returns string\n */\nexport default function encodeWKT(geometry: Geometry | Feature): string {\n if (geometry.type === 'Feature') {\n geometry = geometry.geometry;\n }\n\n switch (geometry.type) {\n case 'Point':\n return `POINT ${wrapParens(pairWKT(geometry.coordinates))}`;\n case 'LineString':\n return `LINESTRING ${wrapParens(ringWKT(geometry.coordinates))}`;\n case 'Polygon':\n return `POLYGON ${wrapParens(ringsWKT(geometry.coordinates))}`;\n case 'MultiPoint':\n return `MULTIPOINT ${wrapParens(ringWKT(geometry.coordinates))}`;\n case 'MultiPolygon':\n return `MULTIPOLYGON ${wrapParens(multiRingsWKT(geometry.coordinates))}`;\n case 'MultiLineString':\n return `MULTILINESTRING ${wrapParens(ringsWKT(geometry.coordinates))}`;\n case 'GeometryCollection':\n return `GEOMETRYCOLLECTION ${wrapParens(geometry.geometries.map(encodeWKT).join(', '))}`;\n default:\n throw new Error('stringify requires a valid GeoJSON Feature or geometry object as input');\n }\n}\n\nfunction pairWKT(c: number[]): string {\n return c.join(' ');\n}\n\nfunction ringWKT(r: number[][]): string {\n return r.map(pairWKT).join(', ');\n}\n\nfunction ringsWKT(r: number[][][]): string {\n return r.map(ringWKT).map(wrapParens).join(', ');\n}\n\nfunction multiRingsWKT(r: number[][][][]): string {\n return r.map(ringsWKT).map(wrapParens).join(', ');\n}\n\nfunction wrapParens(s: string): string {\n return `(${s})`;\n}\n"],"mappings":";;;;;;;AASe,SAASA,SAAS,CAACC,QAA4B,EAAU;EACtE,IAAIA,QAAQ,CAACC,IAAI,KAAK,SAAS,EAAE;IAC/BD,QAAQ,GAAGA,QAAQ,CAACA,QAAQ;EAC9B;EAEA,QAAQA,QAAQ,CAACC,IAAI;IACnB,KAAK,OAAO;MACV,uBAAgBC,UAAU,CAACC,OAAO,CAACH,QAAQ,CAACI,WAAW,CAAC,CAAC;IAC3D,KAAK,YAAY;MACf,4BAAqBF,UAAU,CAACG,OAAO,CAACL,QAAQ,CAACI,WAAW,CAAC,CAAC;IAChE,KAAK,SAAS;MACZ,yBAAkBF,UAAU,CAACI,QAAQ,CAACN,QAAQ,CAACI,WAAW,CAAC,CAAC;IAC9D,KAAK,YAAY;MACf,4BAAqBF,UAAU,CAACG,OAAO,CAACL,QAAQ,CAACI,WAAW,CAAC,CAAC;IAChE,KAAK,cAAc;MACjB,8BAAuBF,UAAU,CAACK,aAAa,CAACP,QAAQ,CAACI,WAAW,CAAC,CAAC;IACxE,KAAK,iBAAiB;MACpB,iCAA0BF,UAAU,CAACI,QAAQ,CAACN,QAAQ,CAACI,WAAW,CAAC,CAAC;IACtE,KAAK,oBAAoB;MACvB,oCAA6BF,UAAU,CAACF,QAAQ,CAACQ,UAAU,CAACC,GAAG,CAACV,SAAS,CAAC,CAACW,IAAI,CAAC,IAAI,CAAC,CAAC;IACxF;MACE,MAAM,IAAIC,KAAK,CAAC,wEAAwE,CAAC;EAAC;AAEhG;AAEA,SAASR,OAAO,CAACS,CAAW,EAAU;EACpC,OAAOA,CAAC,CAACF,IAAI,CAAC,GAAG,CAAC;AACpB;AAEA,SAASL,OAAO,CAACQ,CAAa,EAAU;EACtC,OAAOA,CAAC,CAACJ,GAAG,CAACN,OAAO,CAAC,CAACO,IAAI,CAAC,IAAI,CAAC;AAClC;AAEA,SAASJ,QAAQ,CAACO,CAAe,EAAU;EACzC,OAAOA,CAAC,CAACJ,GAAG,CAACJ,OAAO,CAAC,CAACI,GAAG,CAACP,UAAU,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;AAClD;AAEA,SAASH,aAAa,CAACM,CAAiB,EAAU;EAChD,OAAOA,CAAC,CAACJ,GAAG,CAACH,QAAQ,CAAC,CAACG,GAAG,CAACP,UAAU,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;AACnD;AAEA,SAASR,UAAU,CAACY,CAAS,EAAU;EACrC,kBAAWA,CAAC;AACd"}