@loaders.gl/flatgeobuf 3.4.0-alpha.2 → 3.4.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.
package/dist/dist.min.js CHANGED
@@ -52,8 +52,54 @@
52
52
  }
53
53
  });
54
54
 
55
+ // ../../node_modules/@babel/runtime/helpers/esm/typeof.js
56
+ function _typeof(obj) {
57
+ "@babel/helpers - typeof";
58
+ return _typeof = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(obj2) {
59
+ return typeof obj2;
60
+ } : function(obj2) {
61
+ return obj2 && typeof Symbol == "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
62
+ }, _typeof(obj);
63
+ }
64
+ var init_typeof = __esm({
65
+ "../../node_modules/@babel/runtime/helpers/esm/typeof.js"() {
66
+ }
67
+ });
68
+
69
+ // ../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js
70
+ function _toPrimitive(input, hint) {
71
+ if (_typeof(input) !== "object" || input === null)
72
+ return input;
73
+ var prim = input[Symbol.toPrimitive];
74
+ if (prim !== void 0) {
75
+ var res = prim.call(input, hint || "default");
76
+ if (_typeof(res) !== "object")
77
+ return res;
78
+ throw new TypeError("@@toPrimitive must return a primitive value.");
79
+ }
80
+ return (hint === "string" ? String : Number)(input);
81
+ }
82
+ var init_toPrimitive = __esm({
83
+ "../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js"() {
84
+ init_typeof();
85
+ }
86
+ });
87
+
88
+ // ../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
89
+ function _toPropertyKey(arg) {
90
+ var key = _toPrimitive(arg, "string");
91
+ return _typeof(key) === "symbol" ? key : String(key);
92
+ }
93
+ var init_toPropertyKey = __esm({
94
+ "../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"() {
95
+ init_typeof();
96
+ init_toPrimitive();
97
+ }
98
+ });
99
+
55
100
  // ../../node_modules/@babel/runtime/helpers/esm/defineProperty.js
56
101
  function _defineProperty(obj, key, value) {
102
+ key = _toPropertyKey(key);
57
103
  if (key in obj) {
58
104
  Object.defineProperty(obj, key, {
59
105
  value,
@@ -68,6 +114,7 @@
68
114
  }
69
115
  var init_defineProperty = __esm({
70
116
  "../../node_modules/@babel/runtime/helpers/esm/defineProperty.js"() {
117
+ init_toPropertyKey();
71
118
  }
72
119
  });
73
120
 
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports._typecheckFlatGeobufLoader = exports.FlatGeobufLoader = void 0;
7
- var VERSION = typeof "3.4.0-alpha.2" !== 'undefined' ? "3.4.0-alpha.2" : 'latest';
7
+ var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
8
8
  var FlatGeobufLoader = {
9
9
  id: 'flatgeobuf',
10
10
  name: 'FlatGeobuf',
@@ -1 +1 @@
1
- {"version":3,"file":"flatgeobuf-loader.js","names":["VERSION","FlatGeobufLoader","id","name","module","version","worker","extensions","mimeTypes","category","options","flatgeobuf","shape","_typecheckFlatGeobufLoader"],"sources":["../../src/flatgeobuf-loader.ts"],"sourcesContent":["import type {Loader} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport const FlatGeobufLoader = {\n id: 'flatgeobuf',\n name: 'FlatGeobuf',\n module: 'flatgeobuf',\n version: VERSION,\n worker: true,\n extensions: ['fgb'],\n mimeTypes: ['application/octet-stream'],\n category: 'geometry',\n options: {\n flatgeobuf: {\n // Set to GeoJSON for backwards compatibility\n shape: 'geojson'\n }\n }\n};\n\nexport const _typecheckFlatGeobufLoader: Loader = FlatGeobufLoader;\n"],"mappings":";;;;;;AAIA,IAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAEpE,IAAMC,gBAAgB,GAAG;EAC9BC,EAAE,EAAE,YAAY;EAChBC,IAAI,EAAE,YAAY;EAClBC,MAAM,EAAE,YAAY;EACpBC,OAAO,EAAEL,OAAO;EAChBM,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE;IACPC,UAAU,EAAE;MAEVC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAAC;AAEK,IAAMC,0BAAkC,GAAGZ,gBAAgB;AAAC"}
1
+ {"version":3,"file":"flatgeobuf-loader.js","names":["VERSION","FlatGeobufLoader","id","name","module","version","worker","extensions","mimeTypes","category","options","flatgeobuf","shape","exports","_typecheckFlatGeobufLoader"],"sources":["../../src/flatgeobuf-loader.ts"],"sourcesContent":["import type {Loader} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport const FlatGeobufLoader = {\n id: 'flatgeobuf',\n name: 'FlatGeobuf',\n module: 'flatgeobuf',\n version: VERSION,\n worker: true,\n extensions: ['fgb'],\n mimeTypes: ['application/octet-stream'],\n category: 'geometry',\n options: {\n flatgeobuf: {\n // Set to GeoJSON for backwards compatibility\n shape: 'geojson'\n }\n }\n};\n\nexport const _typecheckFlatGeobufLoader: Loader = FlatGeobufLoader;\n"],"mappings":";;;;;;AAIA,IAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAEpE,IAAMC,gBAAgB,GAAG;EAC9BC,EAAE,EAAE,YAAY;EAChBC,IAAI,EAAE,YAAY;EAClBC,MAAM,EAAE,YAAY;EACpBC,OAAO,EAAEL,OAAO;EAChBM,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE;IACPC,UAAU,EAAE;MAEVC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAACC,OAAA,CAAAZ,gBAAA,GAAAA,gBAAA;AAEK,IAAMa,0BAAkC,GAAGb,gBAAgB;AAACY,OAAA,CAAAC,0BAAA,GAAAA,0BAAA"}
package/dist/es5/index.js CHANGED
@@ -23,14 +23,12 @@ var FlatGeobufLoader = _objectSpread(_objectSpread({}, _flatgeobufLoader.FlatGeo
23
23
  parse: function () {
24
24
  var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
25
25
  return _regenerator.default.wrap(function _callee$(_context) {
26
- while (1) {
27
- switch (_context.prev = _context.next) {
28
- case 0:
29
- return _context.abrupt("return", (0, _parseFlatgeobuf.parseFlatGeobuf)(arrayBuffer, options));
30
- case 1:
31
- case "end":
32
- return _context.stop();
33
- }
26
+ while (1) switch (_context.prev = _context.next) {
27
+ case 0:
28
+ return _context.abrupt("return", (0, _parseFlatgeobuf.parseFlatGeobuf)(arrayBuffer, options));
29
+ case 1:
30
+ case "end":
31
+ return _context.stop();
34
32
  }
35
33
  }, _callee);
36
34
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["FlatGeobufLoader","FlatGeobufWorkerLoader","parse","arrayBuffer","options","parseFlatGeobuf","parseSync","parseInBatchesFromStream","parseFlatGeobufInBatches","binary","_typecheckFlatGeobufLoader"],"sources":["../../src/index.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {FlatGeobufLoader as FlatGeobufWorkerLoader} from './flatgeobuf-loader';\nimport {parseFlatGeobuf, parseFlatGeobufInBatches} from './lib/parse-flatgeobuf';\n\nexport {FlatGeobufWorkerLoader};\n\nexport const FlatGeobufLoader = {\n ...FlatGeobufWorkerLoader,\n parse: async (arrayBuffer, options) => parseFlatGeobuf(arrayBuffer, options),\n parseSync: parseFlatGeobuf,\n parseInBatchesFromStream: parseFlatGeobufInBatches,\n binary: true\n};\n\nexport const _typecheckFlatGeobufLoader: LoaderWithParser = FlatGeobufLoader;\n"],"mappings":";;;;;;;;;;;;;;;;;AACA;AACA;AAAiF;AAAA;AAI1E,IAAMA,gBAAgB,mCACxBC,kCAAsB;EACzBC,KAAK;IAAA,uEAAE,iBAAOC,WAAW,EAAEC,OAAO;MAAA;QAAA;UAAA;YAAA;cAAA,iCAAK,IAAAC,gCAAe,EAACF,WAAW,EAAEC,OAAO,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA;IAAA;IAAA;EAAA;EAC5EE,SAAS,EAAED,gCAAe;EAC1BE,wBAAwB,EAAEC,yCAAwB;EAClDC,MAAM,EAAE;AAAI,EACb;AAAC;AAEK,IAAMC,0BAA4C,GAAGV,gBAAgB;AAAC"}
1
+ {"version":3,"file":"index.js","names":["_flatgeobufLoader","require","_parseFlatgeobuf","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","FlatGeobufLoader","FlatGeobufWorkerLoader","parse","_parse","_asyncToGenerator2","_regenerator","mark","_callee","arrayBuffer","options","wrap","_callee$","_context","prev","next","abrupt","parseFlatGeobuf","stop","_x","_x2","parseSync","parseInBatchesFromStream","parseFlatGeobufInBatches","binary","exports","_typecheckFlatGeobufLoader"],"sources":["../../src/index.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {FlatGeobufLoader as FlatGeobufWorkerLoader} from './flatgeobuf-loader';\nimport {parseFlatGeobuf, parseFlatGeobufInBatches} from './lib/parse-flatgeobuf';\n\nexport {FlatGeobufWorkerLoader};\n\nexport const FlatGeobufLoader = {\n ...FlatGeobufWorkerLoader,\n parse: async (arrayBuffer, options) => parseFlatGeobuf(arrayBuffer, options),\n parseSync: parseFlatGeobuf,\n parseInBatchesFromStream: parseFlatGeobufInBatches,\n binary: true\n};\n\nexport const _typecheckFlatGeobufLoader: LoaderWithParser = FlatGeobufLoader;\n"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAAiF,SAAAE,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAI1E,IAAMY,gBAAgB,GAAAb,aAAA,CAAAA,aAAA,KACxBc,kCAAsB;EACzBC,KAAK;IAAA,IAAAC,MAAA,OAAAC,kBAAA,CAAAR,OAAA,EAAAS,YAAA,CAAAT,OAAA,CAAAU,IAAA,CAAE,SAAAC,QAAOC,WAAW,EAAEC,OAAO;MAAA,OAAAJ,YAAA,CAAAT,OAAA,CAAAc,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WAAK,IAAAC,gCAAe,EAACR,WAAW,EAAEC,OAAO,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAK,IAAA;QAAA;MAAA,GAAAV,OAAA;IAAA;IAAA,SAAAL,MAAAgB,EAAA,EAAAC,GAAA;MAAA,OAAAhB,MAAA,CAAAjB,KAAA,OAAAI,SAAA;IAAA;IAAA,OAAAY,KAAA;EAAA;EAC5EkB,SAAS,EAAEJ,gCAAe;EAC1BK,wBAAwB,EAAEC,yCAAwB;EAClDC,MAAM,EAAE;AAAI,EACb;AAACC,OAAA,CAAAxB,gBAAA,GAAAA,gBAAA;AAEK,IAAMyB,0BAA4C,GAAGzB,gBAAgB;AAACwB,OAAA,CAAAC,0BAAA,GAAAA,0BAAA"}
@@ -17,7 +17,6 @@ function parseLines(geometry) {
17
17
  var xy = geometry.xyArray();
18
18
  var z = geometry.zArray();
19
19
  var positions = blitArrays(xy, z);
20
-
21
20
  var ends = geometry.endsArray() && Array.from(geometry.endsArray()) || [xy.length / 2];
22
21
  ends.unshift(0);
23
22
  var pathIndices = {
@@ -33,7 +32,6 @@ function parsePolygons(geometry) {
33
32
  var xy = geometry.xyArray();
34
33
  var z = geometry.zArray();
35
34
  var positions = blitArrays(xy, z);
36
-
37
35
  var ends = geometry.endsArray() && Array.from(geometry.endsArray()) || [xy.length / 2];
38
36
  ends.unshift(0);
39
37
  var primitivePolygonIndices = {
@@ -50,7 +48,6 @@ function parsePolygons(geometry) {
50
48
  polygonIndices: polygonIndices
51
49
  };
52
50
  }
53
-
54
51
  function parseMultiPolygons(geometry) {
55
52
  var parsedParts = [];
56
53
  var nPositions = 0;
@@ -70,18 +67,14 @@ function parseMultiPolygons(geometry) {
70
67
  var positionCounter = 0;
71
68
  var primitivePolygonIndicesCounter = 1;
72
69
  var polygonIndicesCounter = 1;
73
-
74
70
  var positionSize = parsedParts[0].positions.size;
75
71
  for (var _i = 0, _parsedParts = parsedParts; _i < _parsedParts.length; _i++) {
76
72
  var parsedPart = _parsedParts[_i];
77
73
  concatPositions.set(parsedPart.positions.value, positionCounter * positionSize);
78
-
79
- concatPrimitivePolygonIndices.set(
80
- parsedPart.primitivePolygonIndices.value.subarray(1).map(function (x) {
74
+ concatPrimitivePolygonIndices.set(parsedPart.primitivePolygonIndices.value.subarray(1).map(function (x) {
81
75
  return x + positionCounter;
82
76
  }), primitivePolygonIndicesCounter);
83
- concatPolygonIndices.set(
84
- parsedPart.polygonIndices.value.subarray(1).map(function (x) {
77
+ concatPolygonIndices.set(parsedPart.polygonIndices.value.subarray(1).map(function (x) {
85
78
  return x + positionCounter;
86
79
  }), polygonIndicesCounter);
87
80
  positionCounter += parsedPart.positions.value.length / positionSize;
@@ -103,7 +96,6 @@ function parseMultiPolygons(geometry) {
103
96
  }
104
97
  };
105
98
  }
106
-
107
99
  function blitArrays(xy, z) {
108
100
  if (!z) {
109
101
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"binary-geometries.js","names":["parsePoint","geometry","xy","xyArray","z","zArray","positions","blitArrays","parseLines","ends","endsArray","Array","from","length","unshift","pathIndices","value","Uint16Array","size","parsePolygons","primitivePolygonIndices","polygonIndices","parseMultiPolygons","parsedParts","nPositions","nPrimitivePolygonIndices","nPolygonIndices","i","partsLength","part","parts","polygon","push","concatPositions","Float64Array","concatPrimitivePolygonIndices","Uint32Array","concatPolygonIndices","positionCounter","primitivePolygonIndicesCounter","polygonIndicesCounter","positionSize","parsedPart","set","subarray","map","x","Error","totalLength","xyz","fromGeometry","type","GeometryType","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"],"sources":["../../../src/lib/binary-geometries.ts"],"sourcesContent":["import {GeometryType} from 'flatgeobuf/lib/cjs/header_generated';\n\n// Parse Point to flat array\nfunction parsePoint(geometry) {\n const xy = geometry.xyArray();\n const z = geometry.zArray();\n const positions = blitArrays(xy, z);\n return {positions};\n}\n\nfunction parseLines(geometry) {\n const xy = geometry.xyArray();\n const z = geometry.zArray();\n const positions = blitArrays(xy, z);\n\n // If endsArray is null, a single LineString. Otherwise, contains the end\n // indices of each part of the MultiLineString. geometry.endsArray() omits the\n // initial 0 that we have in our internal format.\n const ends = (geometry.endsArray() && Array.from(geometry.endsArray())) || [xy.length / 2];\n ends.unshift(0);\n\n const pathIndices = {value: new Uint16Array(ends), size: 1};\n\n return {\n positions,\n pathIndices\n };\n}\n\nfunction parsePolygons(geometry) {\n const xy = geometry.xyArray();\n const z = geometry.zArray();\n const positions = blitArrays(xy, z);\n\n // If endsArray is null, a simple Polygon with no inner rings. Otherwise,\n // contains the end indices of each ring of the Polygon. geometry.endsArray()\n // omits the initial 0 that we have in our internal format.\n const ends = (geometry.endsArray() && Array.from(geometry.endsArray())) || [xy.length / 2];\n ends.unshift(0);\n\n const primitivePolygonIndices = {value: new Uint16Array(ends), size: 1};\n const polygonIndices = {value: new Uint16Array([0, xy.length / 2]), size: 1};\n\n return {\n positions,\n primitivePolygonIndices,\n polygonIndices\n };\n}\n\n// eslint-disable-next-line max-statements\nfunction parseMultiPolygons(geometry) {\n // Create arrays for each geometry part, then concatenate\n const parsedParts: any[] = [];\n let nPositions = 0;\n let nPrimitivePolygonIndices = 1;\n let nPolygonIndices = 1;\n\n for (let i = 0; i < geometry.partsLength(); i++) {\n const part = geometry.parts(i);\n const polygon = parsePolygons(part);\n\n nPositions += polygon.positions.value.length;\n nPrimitivePolygonIndices += polygon.primitivePolygonIndices.value.length - 1;\n nPolygonIndices += polygon.polygonIndices.value.length - 1;\n\n parsedParts.push(polygon);\n }\n\n const concatPositions = new Float64Array(nPositions);\n const concatPrimitivePolygonIndices = new Uint32Array(nPrimitivePolygonIndices);\n const concatPolygonIndices = new Uint32Array(nPolygonIndices);\n\n let positionCounter = 0;\n let primitivePolygonIndicesCounter = 1;\n let polygonIndicesCounter = 1;\n\n // Assumes all parts of the multipolygon have the same size\n const positionSize = parsedParts[0].positions.size;\n\n for (const parsedPart of parsedParts) {\n concatPositions.set(parsedPart.positions.value, positionCounter * positionSize);\n\n // For indices, need to add positionCounter so that position indices are\n // correct in the concatenated positions\n concatPrimitivePolygonIndices.set(\n // eslint-disable-next-line\n parsedPart.primitivePolygonIndices.value.subarray(1).map((x) => x + positionCounter),\n primitivePolygonIndicesCounter\n );\n concatPolygonIndices.set(\n // eslint-disable-next-line\n parsedPart.polygonIndices.value.subarray(1).map((x) => x + positionCounter),\n polygonIndicesCounter\n );\n\n positionCounter += parsedPart.positions.value.length / positionSize;\n primitivePolygonIndicesCounter += parsedPart.primitivePolygonIndices.value.length - 1;\n polygonIndicesCounter += parsedPart.polygonIndices.value.length - 1;\n }\n\n return {\n positions: {value: concatPositions, size: positionSize},\n primitivePolygonIndices: {value: concatPrimitivePolygonIndices, size: 1},\n polygonIndices: {value: concatPolygonIndices, size: 1}\n };\n}\n\n// Combine xy and z arrays\nfunction blitArrays(xy, z) {\n if (!z) {\n return {value: xy, size: 2};\n }\n\n if (z.length * 2 !== xy.length) {\n throw new Error('Z array must be half XY array\\'s length');\n }\n const totalLength = xy.length + z.length;\n\n const xyz = new Float64Array(totalLength);\n for (let i = 0; i < xy.length / 2; i++) {\n xyz[i * 3 + 0] = xy[i * 2 + 0];\n xyz[i * 3 + 1] = xy[i * 2 + 1];\n xyz[i * 3 + 2] = z[i];\n }\n return {value: xyz, size: 3};\n}\n\nexport function fromGeometry(geometry, type) {\n switch (type) {\n case GeometryType.Point:\n case GeometryType.MultiPoint:\n return parsePoint(geometry);\n case GeometryType.LineString:\n case GeometryType.MultiLineString:\n return parseLines(geometry);\n case GeometryType.Polygon:\n return parsePolygons(geometry);\n case GeometryType.MultiPolygon:\n return parseMultiPolygons(geometry);\n default:\n throw new Error(`Unimplemented geometry type: ${type}`);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"binary-geometries.js","names":["_header_generated","require","parsePoint","geometry","xy","xyArray","z","zArray","positions","blitArrays","parseLines","ends","endsArray","Array","from","length","unshift","pathIndices","value","Uint16Array","size","parsePolygons","primitivePolygonIndices","polygonIndices","parseMultiPolygons","parsedParts","nPositions","nPrimitivePolygonIndices","nPolygonIndices","i","partsLength","part","parts","polygon","push","concatPositions","Float64Array","concatPrimitivePolygonIndices","Uint32Array","concatPolygonIndices","positionCounter","primitivePolygonIndicesCounter","polygonIndicesCounter","positionSize","_i","_parsedParts","parsedPart","set","subarray","map","x","Error","totalLength","xyz","fromGeometry","type","GeometryType","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","concat"],"sources":["../../../src/lib/binary-geometries.ts"],"sourcesContent":["import {GeometryType} from 'flatgeobuf/lib/cjs/header_generated';\n\n// Parse Point to flat array\nfunction parsePoint(geometry) {\n const xy = geometry.xyArray();\n const z = geometry.zArray();\n const positions = blitArrays(xy, z);\n return {positions};\n}\n\nfunction parseLines(geometry) {\n const xy = geometry.xyArray();\n const z = geometry.zArray();\n const positions = blitArrays(xy, z);\n\n // If endsArray is null, a single LineString. Otherwise, contains the end\n // indices of each part of the MultiLineString. geometry.endsArray() omits the\n // initial 0 that we have in our internal format.\n const ends = (geometry.endsArray() && Array.from(geometry.endsArray())) || [xy.length / 2];\n ends.unshift(0);\n\n const pathIndices = {value: new Uint16Array(ends), size: 1};\n\n return {\n positions,\n pathIndices\n };\n}\n\nfunction parsePolygons(geometry) {\n const xy = geometry.xyArray();\n const z = geometry.zArray();\n const positions = blitArrays(xy, z);\n\n // If endsArray is null, a simple Polygon with no inner rings. Otherwise,\n // contains the end indices of each ring of the Polygon. geometry.endsArray()\n // omits the initial 0 that we have in our internal format.\n const ends = (geometry.endsArray() && Array.from(geometry.endsArray())) || [xy.length / 2];\n ends.unshift(0);\n\n const primitivePolygonIndices = {value: new Uint16Array(ends), size: 1};\n const polygonIndices = {value: new Uint16Array([0, xy.length / 2]), size: 1};\n\n return {\n positions,\n primitivePolygonIndices,\n polygonIndices\n };\n}\n\n// eslint-disable-next-line max-statements\nfunction parseMultiPolygons(geometry) {\n // Create arrays for each geometry part, then concatenate\n const parsedParts: any[] = [];\n let nPositions = 0;\n let nPrimitivePolygonIndices = 1;\n let nPolygonIndices = 1;\n\n for (let i = 0; i < geometry.partsLength(); i++) {\n const part = geometry.parts(i);\n const polygon = parsePolygons(part);\n\n nPositions += polygon.positions.value.length;\n nPrimitivePolygonIndices += polygon.primitivePolygonIndices.value.length - 1;\n nPolygonIndices += polygon.polygonIndices.value.length - 1;\n\n parsedParts.push(polygon);\n }\n\n const concatPositions = new Float64Array(nPositions);\n const concatPrimitivePolygonIndices = new Uint32Array(nPrimitivePolygonIndices);\n const concatPolygonIndices = new Uint32Array(nPolygonIndices);\n\n let positionCounter = 0;\n let primitivePolygonIndicesCounter = 1;\n let polygonIndicesCounter = 1;\n\n // Assumes all parts of the multipolygon have the same size\n const positionSize = parsedParts[0].positions.size;\n\n for (const parsedPart of parsedParts) {\n concatPositions.set(parsedPart.positions.value, positionCounter * positionSize);\n\n // For indices, need to add positionCounter so that position indices are\n // correct in the concatenated positions\n concatPrimitivePolygonIndices.set(\n // eslint-disable-next-line\n parsedPart.primitivePolygonIndices.value.subarray(1).map((x) => x + positionCounter),\n primitivePolygonIndicesCounter\n );\n concatPolygonIndices.set(\n // eslint-disable-next-line\n parsedPart.polygonIndices.value.subarray(1).map((x) => x + positionCounter),\n polygonIndicesCounter\n );\n\n positionCounter += parsedPart.positions.value.length / positionSize;\n primitivePolygonIndicesCounter += parsedPart.primitivePolygonIndices.value.length - 1;\n polygonIndicesCounter += parsedPart.polygonIndices.value.length - 1;\n }\n\n return {\n positions: {value: concatPositions, size: positionSize},\n primitivePolygonIndices: {value: concatPrimitivePolygonIndices, size: 1},\n polygonIndices: {value: concatPolygonIndices, size: 1}\n };\n}\n\n// Combine xy and z arrays\nfunction blitArrays(xy, z) {\n if (!z) {\n return {value: xy, size: 2};\n }\n\n if (z.length * 2 !== xy.length) {\n throw new Error('Z array must be half XY array\\'s length');\n }\n const totalLength = xy.length + z.length;\n\n const xyz = new Float64Array(totalLength);\n for (let i = 0; i < xy.length / 2; i++) {\n xyz[i * 3 + 0] = xy[i * 2 + 0];\n xyz[i * 3 + 1] = xy[i * 2 + 1];\n xyz[i * 3 + 2] = z[i];\n }\n return {value: xyz, size: 3};\n}\n\nexport function fromGeometry(geometry, type) {\n switch (type) {\n case GeometryType.Point:\n case GeometryType.MultiPoint:\n return parsePoint(geometry);\n case GeometryType.LineString:\n case GeometryType.MultiLineString:\n return parseLines(geometry);\n case GeometryType.Polygon:\n return parsePolygons(geometry);\n case GeometryType.MultiPolygon:\n return parseMultiPolygons(geometry);\n default:\n throw new Error(`Unimplemented geometry type: ${type}`);\n }\n}\n"],"mappings":"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"}
@@ -19,14 +19,11 @@ function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("un
19
19
  function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
20
20
  function binaryFromFeature(feature, header) {
21
21
  var geometry = feature.geometry();
22
-
23
22
  var geometryType = header.geometryType || geometry.type();
24
23
  var parsedGeometry = (0, _binaryGeometries.fromGeometry)(geometry, geometryType);
25
24
  parsedGeometry.properties = (0, _feature.parseProperties)(feature, header.columns);
26
-
27
25
  return parsedGeometry;
28
26
  }
29
-
30
27
  function parseFlatGeobuf(arrayBuffer, options) {
31
28
  var _options$gis, _options$flatgeobuf;
32
29
  var shape = (options === null || options === void 0 ? void 0 : (_options$gis = options.gis) === null || _options$gis === void 0 ? void 0 : _options$gis.format) || (options === null || options === void 0 ? void 0 : (_options$flatgeobuf = options.flatgeobuf) === null || _options$flatgeobuf === void 0 ? void 0 : _options$flatgeobuf.shape);
@@ -53,7 +50,6 @@ function parseFlatGeobuf(arrayBuffer, options) {
53
50
  }
54
51
  }
55
52
  function parseFlatGeobufToBinary(arrayBuffer, options) {
56
-
57
53
  var array = new Uint8Array(arrayBuffer);
58
54
  return (0, _generic.deserialize)(array, binaryFromFeature);
59
55
  }
@@ -80,8 +76,7 @@ function parseFlatGeobufToGeoJSON(arrayBuffer, options) {
80
76
  from: crs.wkt,
81
77
  to: _targetCrs
82
78
  });
83
- } catch (e) {
84
- }
79
+ } catch (e) {}
85
80
  }
86
81
  if (projection) {
87
82
  return (0, _gis.transformGeoJsonCoords)(features, function (coords) {
@@ -90,7 +85,6 @@ function parseFlatGeobufToGeoJSON(arrayBuffer, options) {
90
85
  }
91
86
  return features;
92
87
  }
93
-
94
88
  function parseFlatGeobufInBatches(stream, options) {
95
89
  if (options && options.gis && options.gis.format === 'binary') {
96
90
  return parseFlatGeobufInBatchesToBinary(stream, options);
@@ -98,11 +92,9 @@ function parseFlatGeobufInBatches(stream, options) {
98
92
  return parseFlatGeobufInBatchesToGeoJSON(stream, options);
99
93
  }
100
94
  function parseFlatGeobufInBatchesToBinary(stream, options) {
101
-
102
95
  var iterator = (0, _generic.deserialize)(stream, binaryFromFeature);
103
96
  return iterator;
104
97
  }
105
-
106
98
  function parseFlatGeobufInBatchesToGeoJSON(_x, _x2) {
107
99
  return _parseFlatGeobufInBatchesToGeoJSON.apply(this, arguments);
108
100
  }
@@ -110,87 +102,85 @@ function _parseFlatGeobufInBatchesToGeoJSON() {
110
102
  _parseFlatGeobufInBatchesToGeoJSON = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee(stream, options) {
111
103
  var _ref2, _ref2$reproject, reproject, _ref2$_targetCrs, _targetCrs, headerMeta, iterator, projection, firstRecord, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, feature, crs;
112
104
  return _regenerator.default.wrap(function _callee$(_context) {
113
- while (1) {
114
- switch (_context.prev = _context.next) {
115
- case 0:
116
- _ref2 = options && options.gis || {}, _ref2$reproject = _ref2.reproject, reproject = _ref2$reproject === void 0 ? false : _ref2$reproject, _ref2$_targetCrs = _ref2._targetCrs, _targetCrs = _ref2$_targetCrs === void 0 ? 'WGS84' : _ref2$_targetCrs;
117
- iterator = (0, _geojson.deserialize)(stream, false, function (header) {
118
- headerMeta = header;
119
- });
120
- firstRecord = true;
121
- _iteratorAbruptCompletion = false;
122
- _didIteratorError = false;
123
- _context.prev = 5;
124
- _iterator = _asyncIterator(iterator);
125
- case 7:
126
- _context.next = 9;
127
- return (0, _awaitAsyncGenerator2.default)(_iterator.next());
128
- case 9:
129
- if (!(_iteratorAbruptCompletion = !(_step = _context.sent).done)) {
130
- _context.next = 22;
131
- break;
132
- }
133
- feature = _step.value;
134
- if (firstRecord) {
135
- crs = headerMeta && headerMeta.crs;
136
- if (reproject && crs) {
137
- projection = new _proj.Proj4Projection({
138
- from: crs.wkt,
139
- to: _targetCrs
140
- });
141
- }
142
- firstRecord = false;
143
- }
144
- if (!(reproject && projection)) {
145
- _context.next = 17;
146
- break;
105
+ while (1) switch (_context.prev = _context.next) {
106
+ case 0:
107
+ _ref2 = options && options.gis || {}, _ref2$reproject = _ref2.reproject, reproject = _ref2$reproject === void 0 ? false : _ref2$reproject, _ref2$_targetCrs = _ref2._targetCrs, _targetCrs = _ref2$_targetCrs === void 0 ? 'WGS84' : _ref2$_targetCrs;
108
+ iterator = (0, _geojson.deserialize)(stream, false, function (header) {
109
+ headerMeta = header;
110
+ });
111
+ firstRecord = true;
112
+ _iteratorAbruptCompletion = false;
113
+ _didIteratorError = false;
114
+ _context.prev = 5;
115
+ _iterator = _asyncIterator(iterator);
116
+ case 7:
117
+ _context.next = 9;
118
+ return (0, _awaitAsyncGenerator2.default)(_iterator.next());
119
+ case 9:
120
+ if (!(_iteratorAbruptCompletion = !(_step = _context.sent).done)) {
121
+ _context.next = 22;
122
+ break;
123
+ }
124
+ feature = _step.value;
125
+ if (firstRecord) {
126
+ crs = headerMeta && headerMeta.crs;
127
+ if (reproject && crs) {
128
+ projection = new _proj.Proj4Projection({
129
+ from: crs.wkt,
130
+ to: _targetCrs
131
+ });
147
132
  }
148
- _context.next = 15;
149
- return (0, _gis.transformGeoJsonCoords)([feature], function (coords) {
150
- return projection.project(coords);
151
- });
152
- case 15:
153
- _context.next = 19;
133
+ firstRecord = false;
134
+ }
135
+ if (!(reproject && projection)) {
136
+ _context.next = 17;
154
137
  break;
155
- case 17:
156
- _context.next = 19;
157
- return feature;
158
- case 19:
159
- _iteratorAbruptCompletion = false;
160
- _context.next = 7;
138
+ }
139
+ _context.next = 15;
140
+ return (0, _gis.transformGeoJsonCoords)([feature], function (coords) {
141
+ return projection.project(coords);
142
+ });
143
+ case 15:
144
+ _context.next = 19;
145
+ break;
146
+ case 17:
147
+ _context.next = 19;
148
+ return feature;
149
+ case 19:
150
+ _iteratorAbruptCompletion = false;
151
+ _context.next = 7;
152
+ break;
153
+ case 22:
154
+ _context.next = 28;
155
+ break;
156
+ case 24:
157
+ _context.prev = 24;
158
+ _context.t0 = _context["catch"](5);
159
+ _didIteratorError = true;
160
+ _iteratorError = _context.t0;
161
+ case 28:
162
+ _context.prev = 28;
163
+ _context.prev = 29;
164
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
165
+ _context.next = 33;
161
166
  break;
162
- case 22:
163
- _context.next = 28;
167
+ }
168
+ _context.next = 33;
169
+ return (0, _awaitAsyncGenerator2.default)(_iterator.return());
170
+ case 33:
171
+ _context.prev = 33;
172
+ if (!_didIteratorError) {
173
+ _context.next = 36;
164
174
  break;
165
- case 24:
166
- _context.prev = 24;
167
- _context.t0 = _context["catch"](5);
168
- _didIteratorError = true;
169
- _iteratorError = _context.t0;
170
- case 28:
171
- _context.prev = 28;
172
- _context.prev = 29;
173
- if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
174
- _context.next = 33;
175
- break;
176
- }
177
- _context.next = 33;
178
- return (0, _awaitAsyncGenerator2.default)(_iterator.return());
179
- case 33:
180
- _context.prev = 33;
181
- if (!_didIteratorError) {
182
- _context.next = 36;
183
- break;
184
- }
185
- throw _iteratorError;
186
- case 36:
187
- return _context.finish(33);
188
- case 37:
189
- return _context.finish(28);
190
- case 38:
191
- case "end":
192
- return _context.stop();
193
- }
175
+ }
176
+ throw _iteratorError;
177
+ case 36:
178
+ return _context.finish(33);
179
+ case 37:
180
+ return _context.finish(28);
181
+ case 38:
182
+ case "end":
183
+ return _context.stop();
194
184
  }
195
185
  }, _callee, null, [[5, 24, 28, 38], [29,, 33, 37]]);
196
186
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"parse-flatgeobuf.js","names":["binaryFromFeature","feature","header","geometry","geometryType","type","parsedGeometry","binaryFromGeometry","properties","parsePropertiesBinary","columns","parseFlatGeobuf","arrayBuffer","options","shape","gis","format","flatgeobuf","table","data","parseFlatGeobufToGeoJSON","parseFlatGeobufToBinary","Error","array","Uint8Array","deserializeGeneric","byteLength","reproject","_targetCrs","arr","headerMeta","deserializeGeoJson","features","crs","projection","Proj4Projection","from","wkt","to","e","transformGeoJsonCoords","coords","project","parseFlatGeobufInBatches","stream","parseFlatGeobufInBatchesToBinary","parseFlatGeobufInBatchesToGeoJSON","iterator","firstRecord"],"sources":["../../../src/lib/parse-flatgeobuf.ts"],"sourcesContent":["// @ts-nocheck\nimport {Proj4Projection} from '@math.gl/proj4';\nimport {transformGeoJsonCoords} from '@loaders.gl/gis';\n\nimport {deserialize as deserializeGeoJson} from 'flatgeobuf/lib/cjs/geojson';\nimport {deserialize as deserializeGeneric} from 'flatgeobuf/lib/cjs/generic';\nimport {parseProperties as parsePropertiesBinary} from 'flatgeobuf/lib/cjs/generic/feature';\n\nimport {fromGeometry as binaryFromGeometry} from './binary-geometries';\nimport {FlatGeobufLoaderOptions} from './types';\nimport {GeoJSONRowTable, Feature} from '@loaders.gl/schema';\n\n// TODO: reproject binary features\nfunction binaryFromFeature(feature, header) {\n const geometry = feature.geometry();\n\n // FlatGeobuf files can only hold a single geometry type per file, otherwise\n // GeometryType is GeometryCollection\n // I believe geometry.type() is null (0) except when the geometry type isn't\n // known in the header?\n const geometryType = header.geometryType || geometry.type();\n const parsedGeometry = binaryFromGeometry(geometry, geometryType);\n parsedGeometry.properties = parsePropertiesBinary(feature, header.columns);\n\n // TODO: wrap binary data either in points, lines, or polygons key\n return parsedGeometry;\n}\n\n/*\n * Parse FlatGeobuf arrayBuffer and return GeoJSON.\n *\n * @param arrayBuffer A FlatGeobuf arrayBuffer\n * @return A GeoJSON geometry object\n */\nexport function parseFlatGeobuf(arrayBuffer: ArrayBuffer, options?: FlatGeobufLoaderOptions) {\n const shape = options?.gis?.format || options?.flatgeobuf?.shape;\n\n switch (shape) {\n case 'geojson-row-table': {\n const table: GeoJSONRowTable = {\n shape: 'geojson-row-table',\n data: parseFlatGeobufToGeoJSON(arrayBuffer, options)\n };\n return table;\n }\n case 'columnar-table': // binary + some JS arrays\n return {shape: 'columnar-table', data: parseFlatGeobufToBinary(arrayBuffer, options)};\n case 'geojson':\n return parseFlatGeobufToGeoJSON(arrayBuffer, options);\n case 'binary':\n return parseFlatGeobufToBinary(arrayBuffer, options);\n default:\n throw new Error(shape);\n }\n}\n\nfunction parseFlatGeobufToBinary(arrayBuffer: ArrayBuffer, options: FlatGeobufLoaderOptions) {\n // TODO: reproject binary features\n // const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const array = new Uint8Array(arrayBuffer);\n return deserializeGeneric(array, binaryFromFeature);\n}\n\nfunction parseFlatGeobufToGeoJSON(\n arrayBuffer: ArrayBuffer,\n options: FlatGeobufLoaderOptions\n): Feature[] {\n if (arrayBuffer.byteLength === 0) {\n return [];\n }\n\n const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const arr = new Uint8Array(arrayBuffer);\n\n let headerMeta;\n const {features} = deserializeGeoJson(arr, false, (header) => {\n headerMeta = header;\n });\n\n const crs = headerMeta && headerMeta.crs;\n let projection;\n if (reproject && crs) {\n // Constructing the projection may fail for some invalid WKT strings\n try {\n projection = new Proj4Projection({from: crs.wkt, to: _targetCrs});\n } catch (e) {\n // no op\n }\n }\n\n if (projection) {\n return transformGeoJsonCoords(features, (coords) => projection.project(coords));\n }\n\n return features;\n}\n\n/*\n * Parse FlatGeobuf arrayBuffer and return GeoJSON.\n *\n * @param {ReadableStream} _ A FlatGeobuf arrayBuffer\n * @return A GeoJSON geometry object iterator\n */\n// eslint-disable-next-line complexity\nexport function parseFlatGeobufInBatches(stream, options: FlatGeobufLoaderOptions) {\n if (options && options.gis && options.gis.format === 'binary') {\n return parseFlatGeobufInBatchesToBinary(stream, options);\n }\n\n return parseFlatGeobufInBatchesToGeoJSON(stream, options);\n}\n\nfunction parseFlatGeobufInBatchesToBinary(stream, options: FlatGeobufLoaderOptions) {\n // TODO: reproject binary streaming features\n // const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const iterator = deserializeGeneric(stream, binaryFromFeature);\n return iterator;\n}\n\n// eslint-disable-next-line complexity\nasync function* parseFlatGeobufInBatchesToGeoJSON(stream, options: FlatGeobufLoaderOptions) {\n const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n let headerMeta;\n const iterator = deserializeGeoJson(stream, false, (header) => {\n headerMeta = header;\n });\n\n let projection;\n let firstRecord = true;\n for await (const feature of iterator) {\n if (firstRecord) {\n const crs = headerMeta && headerMeta.crs;\n if (reproject && crs) {\n projection = new Proj4Projection({from: crs.wkt, to: _targetCrs});\n }\n\n firstRecord = false;\n }\n\n if (reproject && projection) {\n // eslint-disable-next-line\n yield transformGeoJsonCoords([feature], (coords) => projection.project(coords));\n } else {\n yield feature;\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-flatgeobuf.js","names":["_proj","require","_gis","_geojson","_generic","_feature","_binaryGeometries","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","_return","ret","throw","_throw","thr","binaryFromFeature","feature","header","geometry","geometryType","type","parsedGeometry","binaryFromGeometry","properties","parsePropertiesBinary","columns","parseFlatGeobuf","arrayBuffer","options","_options$gis","_options$flatgeobuf","shape","gis","format","flatgeobuf","table","data","parseFlatGeobufToGeoJSON","parseFlatGeobufToBinary","Error","array","Uint8Array","deserializeGeneric","byteLength","_ref","_ref$reproject","reproject","_ref$_targetCrs","_targetCrs","arr","headerMeta","_deserializeGeoJson","deserializeGeoJson","features","crs","projection","Proj4Projection","from","wkt","to","e","transformGeoJsonCoords","coords","project","parseFlatGeobufInBatches","stream","parseFlatGeobufInBatchesToBinary","parseFlatGeobufInBatchesToGeoJSON","_x","_x2","_parseFlatGeobufInBatchesToGeoJSON","_wrapAsyncGenerator2","default","_regenerator","mark","_callee","_ref2","_ref2$reproject","_ref2$_targetCrs","firstRecord","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","wrap","_callee$","_context","prev","_awaitAsyncGenerator2","sent","t0","finish","stop"],"sources":["../../../src/lib/parse-flatgeobuf.ts"],"sourcesContent":["// @ts-nocheck\nimport {Proj4Projection} from '@math.gl/proj4';\nimport {transformGeoJsonCoords} from '@loaders.gl/gis';\n\nimport {deserialize as deserializeGeoJson} from 'flatgeobuf/lib/cjs/geojson';\nimport {deserialize as deserializeGeneric} from 'flatgeobuf/lib/cjs/generic';\nimport {parseProperties as parsePropertiesBinary} from 'flatgeobuf/lib/cjs/generic/feature';\n\nimport {fromGeometry as binaryFromGeometry} from './binary-geometries';\nimport {FlatGeobufLoaderOptions} from './types';\nimport {GeoJSONRowTable, Feature} from '@loaders.gl/schema';\n\n// TODO: reproject binary features\nfunction binaryFromFeature(feature, header) {\n const geometry = feature.geometry();\n\n // FlatGeobuf files can only hold a single geometry type per file, otherwise\n // GeometryType is GeometryCollection\n // I believe geometry.type() is null (0) except when the geometry type isn't\n // known in the header?\n const geometryType = header.geometryType || geometry.type();\n const parsedGeometry = binaryFromGeometry(geometry, geometryType);\n parsedGeometry.properties = parsePropertiesBinary(feature, header.columns);\n\n // TODO: wrap binary data either in points, lines, or polygons key\n return parsedGeometry;\n}\n\n/*\n * Parse FlatGeobuf arrayBuffer and return GeoJSON.\n *\n * @param arrayBuffer A FlatGeobuf arrayBuffer\n * @return A GeoJSON geometry object\n */\nexport function parseFlatGeobuf(arrayBuffer: ArrayBuffer, options?: FlatGeobufLoaderOptions) {\n const shape = options?.gis?.format || options?.flatgeobuf?.shape;\n\n switch (shape) {\n case 'geojson-row-table': {\n const table: GeoJSONRowTable = {\n shape: 'geojson-row-table',\n data: parseFlatGeobufToGeoJSON(arrayBuffer, options)\n };\n return table;\n }\n case 'columnar-table': // binary + some JS arrays\n return {shape: 'columnar-table', data: parseFlatGeobufToBinary(arrayBuffer, options)};\n case 'geojson':\n return parseFlatGeobufToGeoJSON(arrayBuffer, options);\n case 'binary':\n return parseFlatGeobufToBinary(arrayBuffer, options);\n default:\n throw new Error(shape);\n }\n}\n\nfunction parseFlatGeobufToBinary(arrayBuffer: ArrayBuffer, options: FlatGeobufLoaderOptions) {\n // TODO: reproject binary features\n // const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const array = new Uint8Array(arrayBuffer);\n return deserializeGeneric(array, binaryFromFeature);\n}\n\nfunction parseFlatGeobufToGeoJSON(\n arrayBuffer: ArrayBuffer,\n options: FlatGeobufLoaderOptions\n): Feature[] {\n if (arrayBuffer.byteLength === 0) {\n return [];\n }\n\n const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const arr = new Uint8Array(arrayBuffer);\n\n let headerMeta;\n const {features} = deserializeGeoJson(arr, false, (header) => {\n headerMeta = header;\n });\n\n const crs = headerMeta && headerMeta.crs;\n let projection;\n if (reproject && crs) {\n // Constructing the projection may fail for some invalid WKT strings\n try {\n projection = new Proj4Projection({from: crs.wkt, to: _targetCrs});\n } catch (e) {\n // no op\n }\n }\n\n if (projection) {\n return transformGeoJsonCoords(features, (coords) => projection.project(coords));\n }\n\n return features;\n}\n\n/*\n * Parse FlatGeobuf arrayBuffer and return GeoJSON.\n *\n * @param {ReadableStream} _ A FlatGeobuf arrayBuffer\n * @return A GeoJSON geometry object iterator\n */\n// eslint-disable-next-line complexity\nexport function parseFlatGeobufInBatches(stream, options: FlatGeobufLoaderOptions) {\n if (options && options.gis && options.gis.format === 'binary') {\n return parseFlatGeobufInBatchesToBinary(stream, options);\n }\n\n return parseFlatGeobufInBatchesToGeoJSON(stream, options);\n}\n\nfunction parseFlatGeobufInBatchesToBinary(stream, options: FlatGeobufLoaderOptions) {\n // TODO: reproject binary streaming features\n // const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const iterator = deserializeGeneric(stream, binaryFromFeature);\n return iterator;\n}\n\n// eslint-disable-next-line complexity\nasync function* parseFlatGeobufInBatchesToGeoJSON(stream, options: FlatGeobufLoaderOptions) {\n const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n let headerMeta;\n const iterator = deserializeGeoJson(stream, false, (header) => {\n headerMeta = header;\n });\n\n let projection;\n let firstRecord = true;\n for await (const feature of iterator) {\n if (firstRecord) {\n const crs = headerMeta && headerMeta.crs;\n if (reproject && crs) {\n projection = new Proj4Projection({from: crs.wkt, to: _targetCrs});\n }\n\n firstRecord = false;\n }\n\n if (reproject && projection) {\n // eslint-disable-next-line\n yield transformGeoJsonCoords([feature], (coords) => projection.project(coords));\n } else {\n yield feature;\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"flatgeobuf-worker.js","names":["createLoaderWorker","FlatGeobufLoader"],"sources":["../../../src/workers/flatgeobuf-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {FlatGeobufLoader} from '../index';\n\ncreateLoaderWorker(FlatGeobufLoader);\n"],"mappings":";;AAAA;AACA;AAEA,IAAAA,+BAAkB,EAACC,uBAAgB,CAAC"}
1
+ {"version":3,"file":"flatgeobuf-worker.js","names":["_loaderUtils","require","_index","createLoaderWorker","FlatGeobufLoader"],"sources":["../../../src/workers/flatgeobuf-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {FlatGeobufLoader} from '../index';\n\ncreateLoaderWorker(FlatGeobufLoader);\n"],"mappings":";;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,+BAAkB,EAACC,uBAAgB,CAAC"}
@@ -1,4 +1,3 @@
1
-
2
1
  const moduleExports = require('./index');
3
2
  globalThis.loaders = globalThis.loaders || {};
4
3
  module.exports = Object.assign(globalThis.loaders, moduleExports);
@@ -1 +1 @@
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,MAAMA,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"}
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,MAAMA,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"}
@@ -1,5 +1,4 @@
1
-
2
- const VERSION = typeof "3.4.0-alpha.2" !== 'undefined' ? "3.4.0-alpha.2" : 'latest';
1
+ const VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
3
2
  export const FlatGeobufLoader = {
4
3
  id: 'flatgeobuf',
5
4
  name: 'FlatGeobuf',
@@ -1 +1 @@
1
- {"version":3,"file":"flatgeobuf-loader.js","names":["VERSION","FlatGeobufLoader","id","name","module","version","worker","extensions","mimeTypes","category","options","flatgeobuf","shape","_typecheckFlatGeobufLoader"],"sources":["../../src/flatgeobuf-loader.ts"],"sourcesContent":["import type {Loader} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport const FlatGeobufLoader = {\n id: 'flatgeobuf',\n name: 'FlatGeobuf',\n module: 'flatgeobuf',\n version: VERSION,\n worker: true,\n extensions: ['fgb'],\n mimeTypes: ['application/octet-stream'],\n category: 'geometry',\n options: {\n flatgeobuf: {\n // Set to GeoJSON for backwards compatibility\n shape: 'geojson'\n }\n }\n};\n\nexport const _typecheckFlatGeobufLoader: Loader = FlatGeobufLoader;\n"],"mappings":";AAIA,MAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAE3E,OAAO,MAAMC,gBAAgB,GAAG;EAC9BC,EAAE,EAAE,YAAY;EAChBC,IAAI,EAAE,YAAY;EAClBC,MAAM,EAAE,YAAY;EACpBC,OAAO,EAAEL,OAAO;EAChBM,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE;IACPC,UAAU,EAAE;MAEVC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAED,OAAO,MAAMC,0BAAkC,GAAGZ,gBAAgB"}
1
+ {"version":3,"file":"flatgeobuf-loader.js","names":["VERSION","FlatGeobufLoader","id","name","module","version","worker","extensions","mimeTypes","category","options","flatgeobuf","shape","_typecheckFlatGeobufLoader"],"sources":["../../src/flatgeobuf-loader.ts"],"sourcesContent":["import type {Loader} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport const FlatGeobufLoader = {\n id: 'flatgeobuf',\n name: 'FlatGeobuf',\n module: 'flatgeobuf',\n version: VERSION,\n worker: true,\n extensions: ['fgb'],\n mimeTypes: ['application/octet-stream'],\n category: 'geometry',\n options: {\n flatgeobuf: {\n // Set to GeoJSON for backwards compatibility\n shape: 'geojson'\n }\n }\n};\n\nexport const _typecheckFlatGeobufLoader: Loader = FlatGeobufLoader;\n"],"mappings":"AAIA,MAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAE3E,OAAO,MAAMC,gBAAgB,GAAG;EAC9BC,EAAE,EAAE,YAAY;EAChBC,IAAI,EAAE,YAAY;EAClBC,MAAM,EAAE,YAAY;EACpBC,OAAO,EAAEL,OAAO;EAChBM,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE;IACPC,UAAU,EAAE;MAEVC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAED,OAAO,MAAMC,0BAAkC,GAAGZ,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["FlatGeobufLoader","FlatGeobufWorkerLoader","parseFlatGeobuf","parseFlatGeobufInBatches","parse","arrayBuffer","options","parseSync","parseInBatchesFromStream","binary","_typecheckFlatGeobufLoader"],"sources":["../../src/index.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {FlatGeobufLoader as FlatGeobufWorkerLoader} from './flatgeobuf-loader';\nimport {parseFlatGeobuf, parseFlatGeobufInBatches} from './lib/parse-flatgeobuf';\n\nexport {FlatGeobufWorkerLoader};\n\nexport const FlatGeobufLoader = {\n ...FlatGeobufWorkerLoader,\n parse: async (arrayBuffer, options) => parseFlatGeobuf(arrayBuffer, options),\n parseSync: parseFlatGeobuf,\n parseInBatchesFromStream: parseFlatGeobufInBatches,\n binary: true\n};\n\nexport const _typecheckFlatGeobufLoader: LoaderWithParser = FlatGeobufLoader;\n"],"mappings":"AACA,SAAQA,gBAAgB,IAAIC,sBAAsB,QAAO,qBAAqB;AAC9E,SAAQC,eAAe,EAAEC,wBAAwB,QAAO,wBAAwB;AAEhF,SAAQF,sBAAsB;AAE9B,OAAO,MAAMD,gBAAgB,GAAG;EAC9B,GAAGC,sBAAsB;EACzBG,KAAK,EAAE,OAAOC,WAAW,EAAEC,OAAO,KAAKJ,eAAe,CAACG,WAAW,EAAEC,OAAO,CAAC;EAC5EC,SAAS,EAAEL,eAAe;EAC1BM,wBAAwB,EAAEL,wBAAwB;EAClDM,MAAM,EAAE;AACV,CAAC;AAED,OAAO,MAAMC,0BAA4C,GAAGV,gBAAgB"}
1
+ {"version":3,"file":"index.js","names":["FlatGeobufLoader","FlatGeobufWorkerLoader","parseFlatGeobuf","parseFlatGeobufInBatches","parse","arrayBuffer","options","parseSync","parseInBatchesFromStream","binary","_typecheckFlatGeobufLoader"],"sources":["../../src/index.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {FlatGeobufLoader as FlatGeobufWorkerLoader} from './flatgeobuf-loader';\nimport {parseFlatGeobuf, parseFlatGeobufInBatches} from './lib/parse-flatgeobuf';\n\nexport {FlatGeobufWorkerLoader};\n\nexport const FlatGeobufLoader = {\n ...FlatGeobufWorkerLoader,\n parse: async (arrayBuffer, options) => parseFlatGeobuf(arrayBuffer, options),\n parseSync: parseFlatGeobuf,\n parseInBatchesFromStream: parseFlatGeobufInBatches,\n binary: true\n};\n\nexport const _typecheckFlatGeobufLoader: LoaderWithParser = FlatGeobufLoader;\n"],"mappings":"AACA,SAAQA,gBAAgB,IAAIC,sBAAsB,QAAO,qBAAqB;AAC9E,SAAQC,eAAe,EAAEC,wBAAwB,QAAO,wBAAwB;AAEhF,SAAQF,sBAAsB;AAE9B,OAAO,MAAMD,gBAAgB,GAAG;EAC9B,GAAGC,sBAAsB;EACzBG,KAAK,EAAE,MAAAA,CAAOC,WAAW,EAAEC,OAAO,KAAKJ,eAAe,CAACG,WAAW,EAAEC,OAAO,CAAC;EAC5EC,SAAS,EAAEL,eAAe;EAC1BM,wBAAwB,EAAEL,wBAAwB;EAClDM,MAAM,EAAE;AACV,CAAC;AAED,OAAO,MAAMC,0BAA4C,GAAGV,gBAAgB"}
@@ -1,5 +1,4 @@
1
1
  import { GeometryType } from 'flatgeobuf/lib/cjs/header_generated';
2
-
3
2
  function parsePoint(geometry) {
4
3
  const xy = geometry.xyArray();
5
4
  const z = geometry.zArray();
@@ -12,7 +11,6 @@ function parseLines(geometry) {
12
11
  const xy = geometry.xyArray();
13
12
  const z = geometry.zArray();
14
13
  const positions = blitArrays(xy, z);
15
-
16
14
  const ends = geometry.endsArray() && Array.from(geometry.endsArray()) || [xy.length / 2];
17
15
  ends.unshift(0);
18
16
  const pathIndices = {
@@ -28,7 +26,6 @@ function parsePolygons(geometry) {
28
26
  const xy = geometry.xyArray();
29
27
  const z = geometry.zArray();
30
28
  const positions = blitArrays(xy, z);
31
-
32
29
  const ends = geometry.endsArray() && Array.from(geometry.endsArray()) || [xy.length / 2];
33
30
  ends.unshift(0);
34
31
  const primitivePolygonIndices = {
@@ -45,7 +42,6 @@ function parsePolygons(geometry) {
45
42
  polygonIndices
46
43
  };
47
44
  }
48
-
49
45
  function parseMultiPolygons(geometry) {
50
46
  const parsedParts = [];
51
47
  let nPositions = 0;
@@ -65,15 +61,11 @@ function parseMultiPolygons(geometry) {
65
61
  let positionCounter = 0;
66
62
  let primitivePolygonIndicesCounter = 1;
67
63
  let polygonIndicesCounter = 1;
68
-
69
64
  const positionSize = parsedParts[0].positions.size;
70
65
  for (const parsedPart of parsedParts) {
71
66
  concatPositions.set(parsedPart.positions.value, positionCounter * positionSize);
72
-
73
- concatPrimitivePolygonIndices.set(
74
- parsedPart.primitivePolygonIndices.value.subarray(1).map(x => x + positionCounter), primitivePolygonIndicesCounter);
75
- concatPolygonIndices.set(
76
- parsedPart.polygonIndices.value.subarray(1).map(x => x + positionCounter), polygonIndicesCounter);
67
+ concatPrimitivePolygonIndices.set(parsedPart.primitivePolygonIndices.value.subarray(1).map(x => x + positionCounter), primitivePolygonIndicesCounter);
68
+ concatPolygonIndices.set(parsedPart.polygonIndices.value.subarray(1).map(x => x + positionCounter), polygonIndicesCounter);
77
69
  positionCounter += parsedPart.positions.value.length / positionSize;
78
70
  primitivePolygonIndicesCounter += parsedPart.primitivePolygonIndices.value.length - 1;
79
71
  polygonIndicesCounter += parsedPart.polygonIndices.value.length - 1;
@@ -93,7 +85,6 @@ function parseMultiPolygons(geometry) {
93
85
  }
94
86
  };
95
87
  }
96
-
97
88
  function blitArrays(xy, z) {
98
89
  if (!z) {
99
90
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"binary-geometries.js","names":["GeometryType","parsePoint","geometry","xy","xyArray","z","zArray","positions","blitArrays","parseLines","ends","endsArray","Array","from","length","unshift","pathIndices","value","Uint16Array","size","parsePolygons","primitivePolygonIndices","polygonIndices","parseMultiPolygons","parsedParts","nPositions","nPrimitivePolygonIndices","nPolygonIndices","i","partsLength","part","parts","polygon","push","concatPositions","Float64Array","concatPrimitivePolygonIndices","Uint32Array","concatPolygonIndices","positionCounter","primitivePolygonIndicesCounter","polygonIndicesCounter","positionSize","parsedPart","set","subarray","map","x","Error","totalLength","xyz","fromGeometry","type","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"],"sources":["../../../src/lib/binary-geometries.ts"],"sourcesContent":["import {GeometryType} from 'flatgeobuf/lib/cjs/header_generated';\n\n// Parse Point to flat array\nfunction parsePoint(geometry) {\n const xy = geometry.xyArray();\n const z = geometry.zArray();\n const positions = blitArrays(xy, z);\n return {positions};\n}\n\nfunction parseLines(geometry) {\n const xy = geometry.xyArray();\n const z = geometry.zArray();\n const positions = blitArrays(xy, z);\n\n // If endsArray is null, a single LineString. Otherwise, contains the end\n // indices of each part of the MultiLineString. geometry.endsArray() omits the\n // initial 0 that we have in our internal format.\n const ends = (geometry.endsArray() && Array.from(geometry.endsArray())) || [xy.length / 2];\n ends.unshift(0);\n\n const pathIndices = {value: new Uint16Array(ends), size: 1};\n\n return {\n positions,\n pathIndices\n };\n}\n\nfunction parsePolygons(geometry) {\n const xy = geometry.xyArray();\n const z = geometry.zArray();\n const positions = blitArrays(xy, z);\n\n // If endsArray is null, a simple Polygon with no inner rings. Otherwise,\n // contains the end indices of each ring of the Polygon. geometry.endsArray()\n // omits the initial 0 that we have in our internal format.\n const ends = (geometry.endsArray() && Array.from(geometry.endsArray())) || [xy.length / 2];\n ends.unshift(0);\n\n const primitivePolygonIndices = {value: new Uint16Array(ends), size: 1};\n const polygonIndices = {value: new Uint16Array([0, xy.length / 2]), size: 1};\n\n return {\n positions,\n primitivePolygonIndices,\n polygonIndices\n };\n}\n\n// eslint-disable-next-line max-statements\nfunction parseMultiPolygons(geometry) {\n // Create arrays for each geometry part, then concatenate\n const parsedParts: any[] = [];\n let nPositions = 0;\n let nPrimitivePolygonIndices = 1;\n let nPolygonIndices = 1;\n\n for (let i = 0; i < geometry.partsLength(); i++) {\n const part = geometry.parts(i);\n const polygon = parsePolygons(part);\n\n nPositions += polygon.positions.value.length;\n nPrimitivePolygonIndices += polygon.primitivePolygonIndices.value.length - 1;\n nPolygonIndices += polygon.polygonIndices.value.length - 1;\n\n parsedParts.push(polygon);\n }\n\n const concatPositions = new Float64Array(nPositions);\n const concatPrimitivePolygonIndices = new Uint32Array(nPrimitivePolygonIndices);\n const concatPolygonIndices = new Uint32Array(nPolygonIndices);\n\n let positionCounter = 0;\n let primitivePolygonIndicesCounter = 1;\n let polygonIndicesCounter = 1;\n\n // Assumes all parts of the multipolygon have the same size\n const positionSize = parsedParts[0].positions.size;\n\n for (const parsedPart of parsedParts) {\n concatPositions.set(parsedPart.positions.value, positionCounter * positionSize);\n\n // For indices, need to add positionCounter so that position indices are\n // correct in the concatenated positions\n concatPrimitivePolygonIndices.set(\n // eslint-disable-next-line\n parsedPart.primitivePolygonIndices.value.subarray(1).map((x) => x + positionCounter),\n primitivePolygonIndicesCounter\n );\n concatPolygonIndices.set(\n // eslint-disable-next-line\n parsedPart.polygonIndices.value.subarray(1).map((x) => x + positionCounter),\n polygonIndicesCounter\n );\n\n positionCounter += parsedPart.positions.value.length / positionSize;\n primitivePolygonIndicesCounter += parsedPart.primitivePolygonIndices.value.length - 1;\n polygonIndicesCounter += parsedPart.polygonIndices.value.length - 1;\n }\n\n return {\n positions: {value: concatPositions, size: positionSize},\n primitivePolygonIndices: {value: concatPrimitivePolygonIndices, size: 1},\n polygonIndices: {value: concatPolygonIndices, size: 1}\n };\n}\n\n// Combine xy and z arrays\nfunction blitArrays(xy, z) {\n if (!z) {\n return {value: xy, size: 2};\n }\n\n if (z.length * 2 !== xy.length) {\n throw new Error('Z array must be half XY array\\'s length');\n }\n const totalLength = xy.length + z.length;\n\n const xyz = new Float64Array(totalLength);\n for (let i = 0; i < xy.length / 2; i++) {\n xyz[i * 3 + 0] = xy[i * 2 + 0];\n xyz[i * 3 + 1] = xy[i * 2 + 1];\n xyz[i * 3 + 2] = z[i];\n }\n return {value: xyz, size: 3};\n}\n\nexport function fromGeometry(geometry, type) {\n switch (type) {\n case GeometryType.Point:\n case GeometryType.MultiPoint:\n return parsePoint(geometry);\n case GeometryType.LineString:\n case GeometryType.MultiLineString:\n return parseLines(geometry);\n case GeometryType.Polygon:\n return parsePolygons(geometry);\n case GeometryType.MultiPolygon:\n return parseMultiPolygons(geometry);\n default:\n throw new Error(`Unimplemented geometry type: ${type}`);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"binary-geometries.js","names":["GeometryType","parsePoint","geometry","xy","xyArray","z","zArray","positions","blitArrays","parseLines","ends","endsArray","Array","from","length","unshift","pathIndices","value","Uint16Array","size","parsePolygons","primitivePolygonIndices","polygonIndices","parseMultiPolygons","parsedParts","nPositions","nPrimitivePolygonIndices","nPolygonIndices","i","partsLength","part","parts","polygon","push","concatPositions","Float64Array","concatPrimitivePolygonIndices","Uint32Array","concatPolygonIndices","positionCounter","primitivePolygonIndicesCounter","polygonIndicesCounter","positionSize","parsedPart","set","subarray","map","x","Error","totalLength","xyz","fromGeometry","type","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","concat"],"sources":["../../../src/lib/binary-geometries.ts"],"sourcesContent":["import {GeometryType} from 'flatgeobuf/lib/cjs/header_generated';\n\n// Parse Point to flat array\nfunction parsePoint(geometry) {\n const xy = geometry.xyArray();\n const z = geometry.zArray();\n const positions = blitArrays(xy, z);\n return {positions};\n}\n\nfunction parseLines(geometry) {\n const xy = geometry.xyArray();\n const z = geometry.zArray();\n const positions = blitArrays(xy, z);\n\n // If endsArray is null, a single LineString. Otherwise, contains the end\n // indices of each part of the MultiLineString. geometry.endsArray() omits the\n // initial 0 that we have in our internal format.\n const ends = (geometry.endsArray() && Array.from(geometry.endsArray())) || [xy.length / 2];\n ends.unshift(0);\n\n const pathIndices = {value: new Uint16Array(ends), size: 1};\n\n return {\n positions,\n pathIndices\n };\n}\n\nfunction parsePolygons(geometry) {\n const xy = geometry.xyArray();\n const z = geometry.zArray();\n const positions = blitArrays(xy, z);\n\n // If endsArray is null, a simple Polygon with no inner rings. Otherwise,\n // contains the end indices of each ring of the Polygon. geometry.endsArray()\n // omits the initial 0 that we have in our internal format.\n const ends = (geometry.endsArray() && Array.from(geometry.endsArray())) || [xy.length / 2];\n ends.unshift(0);\n\n const primitivePolygonIndices = {value: new Uint16Array(ends), size: 1};\n const polygonIndices = {value: new Uint16Array([0, xy.length / 2]), size: 1};\n\n return {\n positions,\n primitivePolygonIndices,\n polygonIndices\n };\n}\n\n// eslint-disable-next-line max-statements\nfunction parseMultiPolygons(geometry) {\n // Create arrays for each geometry part, then concatenate\n const parsedParts: any[] = [];\n let nPositions = 0;\n let nPrimitivePolygonIndices = 1;\n let nPolygonIndices = 1;\n\n for (let i = 0; i < geometry.partsLength(); i++) {\n const part = geometry.parts(i);\n const polygon = parsePolygons(part);\n\n nPositions += polygon.positions.value.length;\n nPrimitivePolygonIndices += polygon.primitivePolygonIndices.value.length - 1;\n nPolygonIndices += polygon.polygonIndices.value.length - 1;\n\n parsedParts.push(polygon);\n }\n\n const concatPositions = new Float64Array(nPositions);\n const concatPrimitivePolygonIndices = new Uint32Array(nPrimitivePolygonIndices);\n const concatPolygonIndices = new Uint32Array(nPolygonIndices);\n\n let positionCounter = 0;\n let primitivePolygonIndicesCounter = 1;\n let polygonIndicesCounter = 1;\n\n // Assumes all parts of the multipolygon have the same size\n const positionSize = parsedParts[0].positions.size;\n\n for (const parsedPart of parsedParts) {\n concatPositions.set(parsedPart.positions.value, positionCounter * positionSize);\n\n // For indices, need to add positionCounter so that position indices are\n // correct in the concatenated positions\n concatPrimitivePolygonIndices.set(\n // eslint-disable-next-line\n parsedPart.primitivePolygonIndices.value.subarray(1).map((x) => x + positionCounter),\n primitivePolygonIndicesCounter\n );\n concatPolygonIndices.set(\n // eslint-disable-next-line\n parsedPart.polygonIndices.value.subarray(1).map((x) => x + positionCounter),\n polygonIndicesCounter\n );\n\n positionCounter += parsedPart.positions.value.length / positionSize;\n primitivePolygonIndicesCounter += parsedPart.primitivePolygonIndices.value.length - 1;\n polygonIndicesCounter += parsedPart.polygonIndices.value.length - 1;\n }\n\n return {\n positions: {value: concatPositions, size: positionSize},\n primitivePolygonIndices: {value: concatPrimitivePolygonIndices, size: 1},\n polygonIndices: {value: concatPolygonIndices, size: 1}\n };\n}\n\n// Combine xy and z arrays\nfunction blitArrays(xy, z) {\n if (!z) {\n return {value: xy, size: 2};\n }\n\n if (z.length * 2 !== xy.length) {\n throw new Error('Z array must be half XY array\\'s length');\n }\n const totalLength = xy.length + z.length;\n\n const xyz = new Float64Array(totalLength);\n for (let i = 0; i < xy.length / 2; i++) {\n xyz[i * 3 + 0] = xy[i * 2 + 0];\n xyz[i * 3 + 1] = xy[i * 2 + 1];\n xyz[i * 3 + 2] = z[i];\n }\n return {value: xyz, size: 3};\n}\n\nexport function fromGeometry(geometry, type) {\n switch (type) {\n case GeometryType.Point:\n case GeometryType.MultiPoint:\n return parsePoint(geometry);\n case GeometryType.LineString:\n case GeometryType.MultiLineString:\n return parseLines(geometry);\n case GeometryType.Polygon:\n return parsePolygons(geometry);\n case GeometryType.MultiPolygon:\n return parseMultiPolygons(geometry);\n default:\n throw new Error(`Unimplemented geometry type: ${type}`);\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
-
2
1
  import { Proj4Projection } from '@math.gl/proj4';
3
2
  import { transformGeoJsonCoords } from '@loaders.gl/gis';
4
3
  import { deserialize as deserializeGeoJson } from 'flatgeobuf/lib/cjs/geojson';
@@ -7,14 +6,11 @@ import { parseProperties as parsePropertiesBinary } from 'flatgeobuf/lib/cjs/gen
7
6
  import { fromGeometry as binaryFromGeometry } from './binary-geometries';
8
7
  function binaryFromFeature(feature, header) {
9
8
  const geometry = feature.geometry();
10
-
11
9
  const geometryType = header.geometryType || geometry.type();
12
10
  const parsedGeometry = binaryFromGeometry(geometry, geometryType);
13
11
  parsedGeometry.properties = parsePropertiesBinary(feature, header.columns);
14
-
15
12
  return parsedGeometry;
16
13
  }
17
-
18
14
  export function parseFlatGeobuf(arrayBuffer, options) {
19
15
  var _options$gis, _options$flatgeobuf;
20
16
  const shape = (options === null || options === void 0 ? void 0 : (_options$gis = options.gis) === null || _options$gis === void 0 ? void 0 : _options$gis.format) || (options === null || options === void 0 ? void 0 : (_options$flatgeobuf = options.flatgeobuf) === null || _options$flatgeobuf === void 0 ? void 0 : _options$flatgeobuf.shape);
@@ -41,7 +37,6 @@ export function parseFlatGeobuf(arrayBuffer, options) {
41
37
  }
42
38
  }
43
39
  function parseFlatGeobufToBinary(arrayBuffer, options) {
44
-
45
40
  const array = new Uint8Array(arrayBuffer);
46
41
  return deserializeGeneric(array, binaryFromFeature);
47
42
  }
@@ -68,15 +63,13 @@ function parseFlatGeobufToGeoJSON(arrayBuffer, options) {
68
63
  from: crs.wkt,
69
64
  to: _targetCrs
70
65
  });
71
- } catch (e) {
72
- }
66
+ } catch (e) {}
73
67
  }
74
68
  if (projection) {
75
69
  return transformGeoJsonCoords(features, coords => projection.project(coords));
76
70
  }
77
71
  return features;
78
72
  }
79
-
80
73
  export function parseFlatGeobufInBatches(stream, options) {
81
74
  if (options && options.gis && options.gis.format === 'binary') {
82
75
  return parseFlatGeobufInBatchesToBinary(stream, options);
@@ -84,11 +77,9 @@ export function parseFlatGeobufInBatches(stream, options) {
84
77
  return parseFlatGeobufInBatchesToGeoJSON(stream, options);
85
78
  }
86
79
  function parseFlatGeobufInBatchesToBinary(stream, options) {
87
-
88
80
  const iterator = deserializeGeneric(stream, binaryFromFeature);
89
81
  return iterator;
90
82
  }
91
-
92
83
  async function* parseFlatGeobufInBatchesToGeoJSON(stream, options) {
93
84
  const {
94
85
  reproject = false,
@@ -1 +1 @@
1
- {"version":3,"file":"parse-flatgeobuf.js","names":["Proj4Projection","transformGeoJsonCoords","deserialize","deserializeGeoJson","deserializeGeneric","parseProperties","parsePropertiesBinary","fromGeometry","binaryFromGeometry","binaryFromFeature","feature","header","geometry","geometryType","type","parsedGeometry","properties","columns","parseFlatGeobuf","arrayBuffer","options","shape","gis","format","flatgeobuf","table","data","parseFlatGeobufToGeoJSON","parseFlatGeobufToBinary","Error","array","Uint8Array","byteLength","reproject","_targetCrs","arr","headerMeta","features","crs","projection","from","wkt","to","e","coords","project","parseFlatGeobufInBatches","stream","parseFlatGeobufInBatchesToBinary","parseFlatGeobufInBatchesToGeoJSON","iterator","firstRecord"],"sources":["../../../src/lib/parse-flatgeobuf.ts"],"sourcesContent":["// @ts-nocheck\nimport {Proj4Projection} from '@math.gl/proj4';\nimport {transformGeoJsonCoords} from '@loaders.gl/gis';\n\nimport {deserialize as deserializeGeoJson} from 'flatgeobuf/lib/cjs/geojson';\nimport {deserialize as deserializeGeneric} from 'flatgeobuf/lib/cjs/generic';\nimport {parseProperties as parsePropertiesBinary} from 'flatgeobuf/lib/cjs/generic/feature';\n\nimport {fromGeometry as binaryFromGeometry} from './binary-geometries';\nimport {FlatGeobufLoaderOptions} from './types';\nimport {GeoJSONRowTable, Feature} from '@loaders.gl/schema';\n\n// TODO: reproject binary features\nfunction binaryFromFeature(feature, header) {\n const geometry = feature.geometry();\n\n // FlatGeobuf files can only hold a single geometry type per file, otherwise\n // GeometryType is GeometryCollection\n // I believe geometry.type() is null (0) except when the geometry type isn't\n // known in the header?\n const geometryType = header.geometryType || geometry.type();\n const parsedGeometry = binaryFromGeometry(geometry, geometryType);\n parsedGeometry.properties = parsePropertiesBinary(feature, header.columns);\n\n // TODO: wrap binary data either in points, lines, or polygons key\n return parsedGeometry;\n}\n\n/*\n * Parse FlatGeobuf arrayBuffer and return GeoJSON.\n *\n * @param arrayBuffer A FlatGeobuf arrayBuffer\n * @return A GeoJSON geometry object\n */\nexport function parseFlatGeobuf(arrayBuffer: ArrayBuffer, options?: FlatGeobufLoaderOptions) {\n const shape = options?.gis?.format || options?.flatgeobuf?.shape;\n\n switch (shape) {\n case 'geojson-row-table': {\n const table: GeoJSONRowTable = {\n shape: 'geojson-row-table',\n data: parseFlatGeobufToGeoJSON(arrayBuffer, options)\n };\n return table;\n }\n case 'columnar-table': // binary + some JS arrays\n return {shape: 'columnar-table', data: parseFlatGeobufToBinary(arrayBuffer, options)};\n case 'geojson':\n return parseFlatGeobufToGeoJSON(arrayBuffer, options);\n case 'binary':\n return parseFlatGeobufToBinary(arrayBuffer, options);\n default:\n throw new Error(shape);\n }\n}\n\nfunction parseFlatGeobufToBinary(arrayBuffer: ArrayBuffer, options: FlatGeobufLoaderOptions) {\n // TODO: reproject binary features\n // const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const array = new Uint8Array(arrayBuffer);\n return deserializeGeneric(array, binaryFromFeature);\n}\n\nfunction parseFlatGeobufToGeoJSON(\n arrayBuffer: ArrayBuffer,\n options: FlatGeobufLoaderOptions\n): Feature[] {\n if (arrayBuffer.byteLength === 0) {\n return [];\n }\n\n const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const arr = new Uint8Array(arrayBuffer);\n\n let headerMeta;\n const {features} = deserializeGeoJson(arr, false, (header) => {\n headerMeta = header;\n });\n\n const crs = headerMeta && headerMeta.crs;\n let projection;\n if (reproject && crs) {\n // Constructing the projection may fail for some invalid WKT strings\n try {\n projection = new Proj4Projection({from: crs.wkt, to: _targetCrs});\n } catch (e) {\n // no op\n }\n }\n\n if (projection) {\n return transformGeoJsonCoords(features, (coords) => projection.project(coords));\n }\n\n return features;\n}\n\n/*\n * Parse FlatGeobuf arrayBuffer and return GeoJSON.\n *\n * @param {ReadableStream} _ A FlatGeobuf arrayBuffer\n * @return A GeoJSON geometry object iterator\n */\n// eslint-disable-next-line complexity\nexport function parseFlatGeobufInBatches(stream, options: FlatGeobufLoaderOptions) {\n if (options && options.gis && options.gis.format === 'binary') {\n return parseFlatGeobufInBatchesToBinary(stream, options);\n }\n\n return parseFlatGeobufInBatchesToGeoJSON(stream, options);\n}\n\nfunction parseFlatGeobufInBatchesToBinary(stream, options: FlatGeobufLoaderOptions) {\n // TODO: reproject binary streaming features\n // const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const iterator = deserializeGeneric(stream, binaryFromFeature);\n return iterator;\n}\n\n// eslint-disable-next-line complexity\nasync function* parseFlatGeobufInBatchesToGeoJSON(stream, options: FlatGeobufLoaderOptions) {\n const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n let headerMeta;\n const iterator = deserializeGeoJson(stream, false, (header) => {\n headerMeta = header;\n });\n\n let projection;\n let firstRecord = true;\n for await (const feature of iterator) {\n if (firstRecord) {\n const crs = headerMeta && headerMeta.crs;\n if (reproject && crs) {\n projection = new Proj4Projection({from: crs.wkt, to: _targetCrs});\n }\n\n firstRecord = false;\n }\n\n if (reproject && projection) {\n // eslint-disable-next-line\n yield transformGeoJsonCoords([feature], (coords) => projection.project(coords));\n } else {\n yield feature;\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-flatgeobuf.js","names":["Proj4Projection","transformGeoJsonCoords","deserialize","deserializeGeoJson","deserializeGeneric","parseProperties","parsePropertiesBinary","fromGeometry","binaryFromGeometry","binaryFromFeature","feature","header","geometry","geometryType","type","parsedGeometry","properties","columns","parseFlatGeobuf","arrayBuffer","options","_options$gis","_options$flatgeobuf","shape","gis","format","flatgeobuf","table","data","parseFlatGeobufToGeoJSON","parseFlatGeobufToBinary","Error","array","Uint8Array","byteLength","reproject","_targetCrs","arr","headerMeta","features","crs","projection","from","wkt","to","e","coords","project","parseFlatGeobufInBatches","stream","parseFlatGeobufInBatchesToBinary","parseFlatGeobufInBatchesToGeoJSON","iterator","firstRecord"],"sources":["../../../src/lib/parse-flatgeobuf.ts"],"sourcesContent":["// @ts-nocheck\nimport {Proj4Projection} from '@math.gl/proj4';\nimport {transformGeoJsonCoords} from '@loaders.gl/gis';\n\nimport {deserialize as deserializeGeoJson} from 'flatgeobuf/lib/cjs/geojson';\nimport {deserialize as deserializeGeneric} from 'flatgeobuf/lib/cjs/generic';\nimport {parseProperties as parsePropertiesBinary} from 'flatgeobuf/lib/cjs/generic/feature';\n\nimport {fromGeometry as binaryFromGeometry} from './binary-geometries';\nimport {FlatGeobufLoaderOptions} from './types';\nimport {GeoJSONRowTable, Feature} from '@loaders.gl/schema';\n\n// TODO: reproject binary features\nfunction binaryFromFeature(feature, header) {\n const geometry = feature.geometry();\n\n // FlatGeobuf files can only hold a single geometry type per file, otherwise\n // GeometryType is GeometryCollection\n // I believe geometry.type() is null (0) except when the geometry type isn't\n // known in the header?\n const geometryType = header.geometryType || geometry.type();\n const parsedGeometry = binaryFromGeometry(geometry, geometryType);\n parsedGeometry.properties = parsePropertiesBinary(feature, header.columns);\n\n // TODO: wrap binary data either in points, lines, or polygons key\n return parsedGeometry;\n}\n\n/*\n * Parse FlatGeobuf arrayBuffer and return GeoJSON.\n *\n * @param arrayBuffer A FlatGeobuf arrayBuffer\n * @return A GeoJSON geometry object\n */\nexport function parseFlatGeobuf(arrayBuffer: ArrayBuffer, options?: FlatGeobufLoaderOptions) {\n const shape = options?.gis?.format || options?.flatgeobuf?.shape;\n\n switch (shape) {\n case 'geojson-row-table': {\n const table: GeoJSONRowTable = {\n shape: 'geojson-row-table',\n data: parseFlatGeobufToGeoJSON(arrayBuffer, options)\n };\n return table;\n }\n case 'columnar-table': // binary + some JS arrays\n return {shape: 'columnar-table', data: parseFlatGeobufToBinary(arrayBuffer, options)};\n case 'geojson':\n return parseFlatGeobufToGeoJSON(arrayBuffer, options);\n case 'binary':\n return parseFlatGeobufToBinary(arrayBuffer, options);\n default:\n throw new Error(shape);\n }\n}\n\nfunction parseFlatGeobufToBinary(arrayBuffer: ArrayBuffer, options: FlatGeobufLoaderOptions) {\n // TODO: reproject binary features\n // const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const array = new Uint8Array(arrayBuffer);\n return deserializeGeneric(array, binaryFromFeature);\n}\n\nfunction parseFlatGeobufToGeoJSON(\n arrayBuffer: ArrayBuffer,\n options: FlatGeobufLoaderOptions\n): Feature[] {\n if (arrayBuffer.byteLength === 0) {\n return [];\n }\n\n const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const arr = new Uint8Array(arrayBuffer);\n\n let headerMeta;\n const {features} = deserializeGeoJson(arr, false, (header) => {\n headerMeta = header;\n });\n\n const crs = headerMeta && headerMeta.crs;\n let projection;\n if (reproject && crs) {\n // Constructing the projection may fail for some invalid WKT strings\n try {\n projection = new Proj4Projection({from: crs.wkt, to: _targetCrs});\n } catch (e) {\n // no op\n }\n }\n\n if (projection) {\n return transformGeoJsonCoords(features, (coords) => projection.project(coords));\n }\n\n return features;\n}\n\n/*\n * Parse FlatGeobuf arrayBuffer and return GeoJSON.\n *\n * @param {ReadableStream} _ A FlatGeobuf arrayBuffer\n * @return A GeoJSON geometry object iterator\n */\n// eslint-disable-next-line complexity\nexport function parseFlatGeobufInBatches(stream, options: FlatGeobufLoaderOptions) {\n if (options && options.gis && options.gis.format === 'binary') {\n return parseFlatGeobufInBatchesToBinary(stream, options);\n }\n\n return parseFlatGeobufInBatchesToGeoJSON(stream, options);\n}\n\nfunction parseFlatGeobufInBatchesToBinary(stream, options: FlatGeobufLoaderOptions) {\n // TODO: reproject binary streaming features\n // const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const iterator = deserializeGeneric(stream, binaryFromFeature);\n return iterator;\n}\n\n// eslint-disable-next-line complexity\nasync function* parseFlatGeobufInBatchesToGeoJSON(stream, options: FlatGeobufLoaderOptions) {\n const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n let headerMeta;\n const iterator = deserializeGeoJson(stream, false, (header) => {\n headerMeta = header;\n });\n\n let projection;\n let firstRecord = true;\n for await (const feature of iterator) {\n if (firstRecord) {\n const crs = headerMeta && headerMeta.crs;\n if (reproject && crs) {\n projection = new Proj4Projection({from: crs.wkt, to: _targetCrs});\n }\n\n firstRecord = false;\n }\n\n if (reproject && projection) {\n // eslint-disable-next-line\n yield transformGeoJsonCoords([feature], (coords) => projection.project(coords));\n } else {\n yield feature;\n }\n }\n}\n"],"mappings":"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"}
@@ -3394,8 +3394,39 @@
3394
3394
  return await parser(data, { ...options }, context, loader);
3395
3395
  }
3396
3396
 
3397
+ // ../../node_modules/@babel/runtime/helpers/esm/typeof.js
3398
+ function _typeof(obj) {
3399
+ "@babel/helpers - typeof";
3400
+ return _typeof = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(obj2) {
3401
+ return typeof obj2;
3402
+ } : function(obj2) {
3403
+ return obj2 && typeof Symbol == "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
3404
+ }, _typeof(obj);
3405
+ }
3406
+
3407
+ // ../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js
3408
+ function _toPrimitive(input, hint) {
3409
+ if (_typeof(input) !== "object" || input === null)
3410
+ return input;
3411
+ var prim = input[Symbol.toPrimitive];
3412
+ if (prim !== void 0) {
3413
+ var res = prim.call(input, hint || "default");
3414
+ if (_typeof(res) !== "object")
3415
+ return res;
3416
+ throw new TypeError("@@toPrimitive must return a primitive value.");
3417
+ }
3418
+ return (hint === "string" ? String : Number)(input);
3419
+ }
3420
+
3421
+ // ../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
3422
+ function _toPropertyKey(arg) {
3423
+ var key = _toPrimitive(arg, "string");
3424
+ return _typeof(key) === "symbol" ? key : String(key);
3425
+ }
3426
+
3397
3427
  // ../../node_modules/@babel/runtime/helpers/esm/defineProperty.js
3398
3428
  function _defineProperty(obj, key, value) {
3429
+ key = _toPropertyKey(key);
3399
3430
  if (key in obj) {
3400
3431
  Object.defineProperty(obj, key, {
3401
3432
  value,
@@ -3410,7 +3441,7 @@
3410
3441
  }
3411
3442
 
3412
3443
  // src/flatgeobuf-loader.ts
3413
- var VERSION = true ? "3.4.0-alpha.2" : "latest";
3444
+ var VERSION = true ? "3.4.0-alpha.3" : "latest";
3414
3445
  var FlatGeobufLoader = {
3415
3446
  id: "flatgeobuf",
3416
3447
  name: "FlatGeobuf",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@loaders.gl/flatgeobuf",
3
3
  "description": "Loader for FlatGeobuf",
4
- "version": "3.4.0-alpha.2",
4
+ "version": "3.4.0-alpha.3",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -32,10 +32,10 @@
32
32
  "build-worker": "esbuild src/workers/flatgeobuf-worker.ts --bundle --outfile=dist/flatgeobuf-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
33
33
  },
34
34
  "dependencies": {
35
- "@loaders.gl/gis": "3.4.0-alpha.2",
36
- "@loaders.gl/loader-utils": "3.4.0-alpha.2",
35
+ "@loaders.gl/gis": "3.4.0-alpha.3",
36
+ "@loaders.gl/loader-utils": "3.4.0-alpha.3",
37
37
  "@math.gl/proj4": "^3.3.1",
38
38
  "flatgeobuf": "3.6.5"
39
39
  },
40
- "gitHead": "f1c00c124d8d0c41a138ff40afb0d1a00711bf2e"
40
+ "gitHead": "a954528dd1d78a1f128d8f6b07e4baeb7a296924"
41
41
  }