@loaders.gl/flatgeobuf 4.0.0-beta.2 → 4.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{dist.min.js → dist.dev.js} +8496 -9115
- package/dist/flatgeobuf-loader.d.ts +1 -1
- package/dist/flatgeobuf-loader.d.ts.map +1 -1
- package/dist/{esm/flatgeobuf-loader.js → flatgeobuf-loader.js} +1 -1
- package/dist/flatgeobuf-loader.js.map +1 -0
- package/dist/flatgeobuf-worker.js +63 -29
- package/dist/index.cjs +265 -0
- package/dist/{esm/index.js → index.js} +2 -2
- package/dist/index.js.map +1 -0
- package/dist/{esm/lib → lib}/binary-geometries.js +1 -1
- package/dist/lib/binary-geometries.js.map +1 -0
- package/dist/{esm/lib → lib}/parse-flatgeobuf.js +1 -1
- package/dist/lib/parse-flatgeobuf.js.map +1 -0
- package/dist/{esm/workers → workers}/flatgeobuf-worker.js +1 -1
- package/dist/workers/flatgeobuf-worker.js.map +1 -0
- package/package.json +17 -9
- package/src/flatgeobuf-loader.ts +1 -1
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/es5/bundle.js +0 -6
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/flatgeobuf-loader.js +0 -27
- package/dist/es5/flatgeobuf-loader.js.map +0 -1
- package/dist/es5/index.js +0 -44
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/binary-geometries.js +0 -137
- package/dist/es5/lib/binary-geometries.js.map +0 -1
- package/dist/es5/lib/parse-flatgeobuf.js +0 -193
- package/dist/es5/lib/parse-flatgeobuf.js.map +0 -1
- package/dist/es5/workers/flatgeobuf-worker.js +0 -6
- package/dist/es5/workers/flatgeobuf-worker.js.map +0 -1
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/flatgeobuf-loader.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/binary-geometries.js.map +0 -1
- package/dist/esm/lib/parse-flatgeobuf.js.map +0 -1
- package/dist/esm/workers/flatgeobuf-worker.js.map +0 -1
- package/src/bundle.ts +0 -4
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/flatgeobuf",
|
|
3
3
|
"description": "Loader for FlatGeobuf",
|
|
4
|
-
"version": "4.0.0-beta.
|
|
4
|
+
"version": "4.0.0-beta.4",
|
|
5
5
|
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
6
7
|
"publishConfig": {
|
|
7
8
|
"access": "public"
|
|
8
9
|
},
|
|
@@ -18,8 +19,15 @@
|
|
|
18
19
|
"Mapbox Vector Tiles"
|
|
19
20
|
],
|
|
20
21
|
"types": "dist/index.d.ts",
|
|
21
|
-
"main": "dist/
|
|
22
|
-
"module": "dist/
|
|
22
|
+
"main": "dist/index.cjs",
|
|
23
|
+
"module": "dist/index.js",
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"import": "./dist/index.js",
|
|
27
|
+
"require": "./dist/index.cjs",
|
|
28
|
+
"types": "./dist/index.d.ts"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
23
31
|
"sideEffects": false,
|
|
24
32
|
"files": [
|
|
25
33
|
"src",
|
|
@@ -27,15 +35,15 @@
|
|
|
27
35
|
"README.md"
|
|
28
36
|
],
|
|
29
37
|
"scripts": {
|
|
30
|
-
"pre-build": "npm run build-worker && npm run build-worker --env.dev && npm run build-bundle",
|
|
31
|
-
"build-bundle": "
|
|
38
|
+
"pre-build": "npm run build-worker && npm run build-worker --env.dev && npm run build-bundle && npm run build-bundle -- --env=dev",
|
|
39
|
+
"build-bundle": "ocular-bundle ./src/index.ts",
|
|
32
40
|
"build-worker": "esbuild src/workers/flatgeobuf-worker.ts --bundle --outfile=dist/flatgeobuf-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
|
|
33
41
|
},
|
|
34
42
|
"dependencies": {
|
|
35
|
-
"@loaders.gl/gis": "4.0.0-beta.
|
|
36
|
-
"@loaders.gl/loader-utils": "4.0.0-beta.
|
|
37
|
-
"@math.gl/proj4": "^
|
|
43
|
+
"@loaders.gl/gis": "4.0.0-beta.4",
|
|
44
|
+
"@loaders.gl/loader-utils": "4.0.0-beta.4",
|
|
45
|
+
"@math.gl/proj4": "^4.0.0",
|
|
38
46
|
"flatgeobuf": "3.6.5"
|
|
39
47
|
},
|
|
40
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "848c20b474532d301f2c3f8d4e1fb9bf262b86d4"
|
|
41
49
|
}
|
package/src/flatgeobuf-loader.ts
CHANGED
|
@@ -6,7 +6,7 @@ const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
|
6
6
|
|
|
7
7
|
export type FlatGeobufLoaderOptions = LoaderOptions & {
|
|
8
8
|
flatgeobuf?: {
|
|
9
|
-
shape?: 'geojson-table' | 'columnar-table' | 'geojson
|
|
9
|
+
shape?: 'geojson-table' | 'columnar-table' | 'geojson' | 'binary';
|
|
10
10
|
};
|
|
11
11
|
gis?: {
|
|
12
12
|
reproject?: boolean;
|
package/dist/bundle.d.ts
DELETED
package/dist/bundle.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,aAAa,KAAqB,CAAC"}
|
package/dist/es5/bundle.js
DELETED
package/dist/es5/bundle.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.FlatGeobufLoader = void 0;
|
|
7
|
-
var VERSION = typeof "4.0.0-beta.2" !== 'undefined' ? "4.0.0-beta.2" : 'latest';
|
|
8
|
-
var FlatGeobufLoader = {
|
|
9
|
-
id: 'flatgeobuf',
|
|
10
|
-
name: 'FlatGeobuf',
|
|
11
|
-
module: 'flatgeobuf',
|
|
12
|
-
version: VERSION,
|
|
13
|
-
worker: true,
|
|
14
|
-
extensions: ['fgb'],
|
|
15
|
-
mimeTypes: ['application/octet-stream'],
|
|
16
|
-
category: 'geometry',
|
|
17
|
-
options: {
|
|
18
|
-
flatgeobuf: {
|
|
19
|
-
shape: 'geojson-table'
|
|
20
|
-
},
|
|
21
|
-
gis: {
|
|
22
|
-
reproject: false
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
exports.FlatGeobufLoader = FlatGeobufLoader;
|
|
27
|
-
//# sourceMappingURL=flatgeobuf-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flatgeobuf-loader.js","names":["VERSION","FlatGeobufLoader","id","name","module","version","worker","extensions","mimeTypes","category","options","flatgeobuf","shape","gis","reproject","exports"],"sources":["../../src/flatgeobuf-loader.ts"],"sourcesContent":["import type {Loader, LoaderOptions} 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 type FlatGeobufLoaderOptions = LoaderOptions & {\n flatgeobuf?: {\n shape?: 'geojson-table' | 'columnar-table' | 'geojson-table' | 'geojson' | 'binary';\n };\n gis?: {\n reproject?: boolean;\n _targetCrs?: string;\n /** @deprecated Use options.flatgeobuf.shape */\n format?: never;\n };\n};\n\nexport const FlatGeobufLoader: Loader<any, any, FlatGeobufLoaderOptions> = {\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 shape: 'geojson-table'\n },\n gis: {\n reproject: false\n }\n }\n};\n"],"mappings":";;;;;;AAIA,IAAMA,OAAO,GAAG,qBAAkB,KAAK,WAAW,oBAAiB,QAAQ;AAcpE,IAAMC,gBAA2D,GAAG;EACzEC,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;MACVC,KAAK,EAAE;IACT,CAAC;IACDC,GAAG,EAAE;MACHC,SAAS,EAAE;IACb;EACF;AACF,CAAC;AAACC,OAAA,CAAAd,gBAAA,GAAAA,gBAAA"}
|
package/dist/es5/index.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.FlatGeobufLoader = void 0;
|
|
8
|
-
Object.defineProperty(exports, "FlatGeobufWorkerLoader", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
get: function get() {
|
|
11
|
-
return _flatgeobufLoader.FlatGeobufLoader;
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
var _flatgeobufLoader = require("./flatgeobuf-loader");
|
|
18
|
-
var _parseFlatgeobuf = require("./lib/parse-flatgeobuf");
|
|
19
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
20
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
21
|
-
var FlatGeobufLoader = _objectSpread(_objectSpread({}, _flatgeobufLoader.FlatGeobufLoader), {}, {
|
|
22
|
-
parse: function () {
|
|
23
|
-
var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
|
|
24
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
25
|
-
while (1) switch (_context.prev = _context.next) {
|
|
26
|
-
case 0:
|
|
27
|
-
return _context.abrupt("return", (0, _parseFlatgeobuf.parseFlatGeobuf)(arrayBuffer, options));
|
|
28
|
-
case 1:
|
|
29
|
-
case "end":
|
|
30
|
-
return _context.stop();
|
|
31
|
-
}
|
|
32
|
-
}, _callee);
|
|
33
|
-
}));
|
|
34
|
-
function parse(_x, _x2) {
|
|
35
|
-
return _parse.apply(this, arguments);
|
|
36
|
-
}
|
|
37
|
-
return parse;
|
|
38
|
-
}(),
|
|
39
|
-
parseSync: _parseFlatgeobuf.parseFlatGeobuf,
|
|
40
|
-
parseInBatchesFromStream: _parseFlatgeobuf.parseFlatGeobufInBatches,
|
|
41
|
-
binary: true
|
|
42
|
-
});
|
|
43
|
-
exports.FlatGeobufLoader = FlatGeobufLoader;
|
|
44
|
-
//# sourceMappingURL=index.js.map
|
package/dist/es5/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"],"sources":["../../src/index.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {FlatGeobufLoaderOptions} from './flatgeobuf-loader';\nimport {FlatGeobufLoader as FlatGeobufWorkerLoader} from './flatgeobuf-loader';\nimport {parseFlatGeobuf, parseFlatGeobufInBatches} from './lib/parse-flatgeobuf';\n\nexport {FlatGeobufWorkerLoader};\n\nexport const FlatGeobufLoader: LoaderWithParser<any, any, FlatGeobufLoaderOptions> = {\n ...FlatGeobufWorkerLoader,\n parse: async (arrayBuffer, options) => parseFlatGeobuf(arrayBuffer, options),\n parseSync: parseFlatGeobuf,\n // @ts-expect-error this is a stream parser not an async iterator parser\n parseInBatchesFromStream: parseFlatGeobufInBatches,\n binary: true\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAEA,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,gBAAqE,GAAAb,aAAA,CAAAA,aAAA,KAC7Ec,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;EAE1BK,wBAAwB,EAAEC,yCAAwB;EAClDC,MAAM,EAAE;AAAI,EACb;AAACC,OAAA,CAAAxB,gBAAA,GAAAA,gBAAA"}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.fromGeometry = fromGeometry;
|
|
7
|
-
var _header_generated = require("flatgeobuf/lib/cjs/header_generated");
|
|
8
|
-
function parsePoint(geometry) {
|
|
9
|
-
var xy = geometry.xyArray();
|
|
10
|
-
var z = geometry.zArray();
|
|
11
|
-
var positions = blitArrays(xy, z);
|
|
12
|
-
return {
|
|
13
|
-
positions: positions
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
function parseLines(geometry) {
|
|
17
|
-
var xy = geometry.xyArray();
|
|
18
|
-
var z = geometry.zArray();
|
|
19
|
-
var positions = blitArrays(xy, z);
|
|
20
|
-
var ends = geometry.endsArray() && Array.from(geometry.endsArray()) || [xy.length / 2];
|
|
21
|
-
ends.unshift(0);
|
|
22
|
-
var pathIndices = {
|
|
23
|
-
value: new Uint16Array(ends),
|
|
24
|
-
size: 1
|
|
25
|
-
};
|
|
26
|
-
return {
|
|
27
|
-
positions: positions,
|
|
28
|
-
pathIndices: pathIndices
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
function parsePolygons(geometry) {
|
|
32
|
-
var xy = geometry.xyArray();
|
|
33
|
-
var z = geometry.zArray();
|
|
34
|
-
var positions = blitArrays(xy, z);
|
|
35
|
-
var ends = geometry.endsArray() && Array.from(geometry.endsArray()) || [xy.length / 2];
|
|
36
|
-
ends.unshift(0);
|
|
37
|
-
var primitivePolygonIndices = {
|
|
38
|
-
value: new Uint16Array(ends),
|
|
39
|
-
size: 1
|
|
40
|
-
};
|
|
41
|
-
var polygonIndices = {
|
|
42
|
-
value: new Uint16Array([0, xy.length / 2]),
|
|
43
|
-
size: 1
|
|
44
|
-
};
|
|
45
|
-
return {
|
|
46
|
-
positions: positions,
|
|
47
|
-
primitivePolygonIndices: primitivePolygonIndices,
|
|
48
|
-
polygonIndices: polygonIndices
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
function parseMultiPolygons(geometry) {
|
|
52
|
-
var parsedParts = [];
|
|
53
|
-
var nPositions = 0;
|
|
54
|
-
var nPrimitivePolygonIndices = 1;
|
|
55
|
-
var nPolygonIndices = 1;
|
|
56
|
-
for (var i = 0; i < geometry.partsLength(); i++) {
|
|
57
|
-
var part = geometry.parts(i);
|
|
58
|
-
var polygon = parsePolygons(part);
|
|
59
|
-
nPositions += polygon.positions.value.length;
|
|
60
|
-
nPrimitivePolygonIndices += polygon.primitivePolygonIndices.value.length - 1;
|
|
61
|
-
nPolygonIndices += polygon.polygonIndices.value.length - 1;
|
|
62
|
-
parsedParts.push(polygon);
|
|
63
|
-
}
|
|
64
|
-
var concatPositions = new Float64Array(nPositions);
|
|
65
|
-
var concatPrimitivePolygonIndices = new Uint32Array(nPrimitivePolygonIndices);
|
|
66
|
-
var concatPolygonIndices = new Uint32Array(nPolygonIndices);
|
|
67
|
-
var positionCounter = 0;
|
|
68
|
-
var primitivePolygonIndicesCounter = 1;
|
|
69
|
-
var polygonIndicesCounter = 1;
|
|
70
|
-
var positionSize = parsedParts[0].positions.size;
|
|
71
|
-
for (var _i = 0, _parsedParts = parsedParts; _i < _parsedParts.length; _i++) {
|
|
72
|
-
var parsedPart = _parsedParts[_i];
|
|
73
|
-
concatPositions.set(parsedPart.positions.value, positionCounter * positionSize);
|
|
74
|
-
concatPrimitivePolygonIndices.set(parsedPart.primitivePolygonIndices.value.subarray(1).map(function (x) {
|
|
75
|
-
return x + positionCounter;
|
|
76
|
-
}), primitivePolygonIndicesCounter);
|
|
77
|
-
concatPolygonIndices.set(parsedPart.polygonIndices.value.subarray(1).map(function (x) {
|
|
78
|
-
return x + positionCounter;
|
|
79
|
-
}), polygonIndicesCounter);
|
|
80
|
-
positionCounter += parsedPart.positions.value.length / positionSize;
|
|
81
|
-
primitivePolygonIndicesCounter += parsedPart.primitivePolygonIndices.value.length - 1;
|
|
82
|
-
polygonIndicesCounter += parsedPart.polygonIndices.value.length - 1;
|
|
83
|
-
}
|
|
84
|
-
return {
|
|
85
|
-
positions: {
|
|
86
|
-
value: concatPositions,
|
|
87
|
-
size: positionSize
|
|
88
|
-
},
|
|
89
|
-
primitivePolygonIndices: {
|
|
90
|
-
value: concatPrimitivePolygonIndices,
|
|
91
|
-
size: 1
|
|
92
|
-
},
|
|
93
|
-
polygonIndices: {
|
|
94
|
-
value: concatPolygonIndices,
|
|
95
|
-
size: 1
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
function blitArrays(xy, z) {
|
|
100
|
-
if (!z) {
|
|
101
|
-
return {
|
|
102
|
-
value: xy,
|
|
103
|
-
size: 2
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
if (z.length * 2 !== xy.length) {
|
|
107
|
-
throw new Error('Z array must be half XY array\'s length');
|
|
108
|
-
}
|
|
109
|
-
var totalLength = xy.length + z.length;
|
|
110
|
-
var xyz = new Float64Array(totalLength);
|
|
111
|
-
for (var i = 0; i < xy.length / 2; i++) {
|
|
112
|
-
xyz[i * 3 + 0] = xy[i * 2 + 0];
|
|
113
|
-
xyz[i * 3 + 1] = xy[i * 2 + 1];
|
|
114
|
-
xyz[i * 3 + 2] = z[i];
|
|
115
|
-
}
|
|
116
|
-
return {
|
|
117
|
-
value: xyz,
|
|
118
|
-
size: 3
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
function fromGeometry(geometry, type) {
|
|
122
|
-
switch (type) {
|
|
123
|
-
case _header_generated.GeometryType.Point:
|
|
124
|
-
case _header_generated.GeometryType.MultiPoint:
|
|
125
|
-
return parsePoint(geometry);
|
|
126
|
-
case _header_generated.GeometryType.LineString:
|
|
127
|
-
case _header_generated.GeometryType.MultiLineString:
|
|
128
|
-
return parseLines(geometry);
|
|
129
|
-
case _header_generated.GeometryType.Polygon:
|
|
130
|
-
return parsePolygons(geometry);
|
|
131
|
-
case _header_generated.GeometryType.MultiPolygon:
|
|
132
|
-
return parseMultiPolygons(geometry);
|
|
133
|
-
default:
|
|
134
|
-
throw new Error("Unimplemented geometry type: ".concat(type));
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
//# sourceMappingURL=binary-geometries.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.parseFlatGeobuf = parseFlatGeobuf;
|
|
8
|
-
exports.parseFlatGeobufInBatches = parseFlatGeobufInBatches;
|
|
9
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
-
var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
|
|
11
|
-
var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
|
|
12
|
-
var _proj = require("@math.gl/proj4");
|
|
13
|
-
var _gis = require("@loaders.gl/gis");
|
|
14
|
-
var _geojson = require("flatgeobuf/lib/cjs/geojson");
|
|
15
|
-
var _generic = require("flatgeobuf/lib/cjs/generic");
|
|
16
|
-
var _feature = require("flatgeobuf/lib/cjs/generic/feature");
|
|
17
|
-
var _binaryGeometries = require("./binary-geometries");
|
|
18
|
-
function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
|
|
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
|
-
function binaryFromFeature(feature, header) {
|
|
21
|
-
var geometry = feature.geometry();
|
|
22
|
-
var geometryType = header.geometryType || geometry.type();
|
|
23
|
-
var parsedGeometry = (0, _binaryGeometries.fromGeometry)(geometry, geometryType);
|
|
24
|
-
parsedGeometry.properties = (0, _feature.parseProperties)(feature, header.columns);
|
|
25
|
-
return parsedGeometry;
|
|
26
|
-
}
|
|
27
|
-
function parseFlatGeobuf(arrayBuffer, options) {
|
|
28
|
-
var _options$gis, _options$flatgeobuf;
|
|
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);
|
|
30
|
-
switch (shape) {
|
|
31
|
-
case 'geojson':
|
|
32
|
-
case 'geojson-table':
|
|
33
|
-
{
|
|
34
|
-
var features = parseFlatGeobufToGeoJSON(arrayBuffer, options);
|
|
35
|
-
var table = {
|
|
36
|
-
shape: 'geojson-table',
|
|
37
|
-
type: 'FeatureCollection',
|
|
38
|
-
features: features
|
|
39
|
-
};
|
|
40
|
-
return table;
|
|
41
|
-
}
|
|
42
|
-
case 'columnar-table':
|
|
43
|
-
var binary = parseFlatGeobufToBinary(arrayBuffer, options);
|
|
44
|
-
return {
|
|
45
|
-
shape: 'columnar-table',
|
|
46
|
-
data: binary
|
|
47
|
-
};
|
|
48
|
-
case 'binary':
|
|
49
|
-
return parseFlatGeobufToBinary(arrayBuffer, options);
|
|
50
|
-
default:
|
|
51
|
-
throw new Error(shape);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function parseFlatGeobufToBinary(arrayBuffer) {
|
|
55
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
56
|
-
var array = new Uint8Array(arrayBuffer);
|
|
57
|
-
return (0, _generic.deserialize)(array, binaryFromFeature);
|
|
58
|
-
}
|
|
59
|
-
function parseFlatGeobufToGeoJSON(arrayBuffer) {
|
|
60
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
61
|
-
if (arrayBuffer.byteLength === 0) {
|
|
62
|
-
return [];
|
|
63
|
-
}
|
|
64
|
-
var _ref = options && options.gis || {},
|
|
65
|
-
_ref$reproject = _ref.reproject,
|
|
66
|
-
reproject = _ref$reproject === void 0 ? false : _ref$reproject,
|
|
67
|
-
_ref$_targetCrs = _ref._targetCrs,
|
|
68
|
-
_targetCrs = _ref$_targetCrs === void 0 ? 'WGS84' : _ref$_targetCrs;
|
|
69
|
-
var arr = new Uint8Array(arrayBuffer);
|
|
70
|
-
var headerMeta;
|
|
71
|
-
var _deserializeGeoJson = (0, _geojson.deserialize)(arr, undefined, function (header) {
|
|
72
|
-
headerMeta = header;
|
|
73
|
-
}),
|
|
74
|
-
features = _deserializeGeoJson.features;
|
|
75
|
-
var crs = headerMeta && headerMeta.crs;
|
|
76
|
-
var projection;
|
|
77
|
-
if (reproject && crs) {
|
|
78
|
-
try {
|
|
79
|
-
projection = new _proj.Proj4Projection({
|
|
80
|
-
from: crs.wkt,
|
|
81
|
-
to: _targetCrs
|
|
82
|
-
});
|
|
83
|
-
} catch (e) {}
|
|
84
|
-
}
|
|
85
|
-
if (projection) {
|
|
86
|
-
return (0, _gis.transformGeoJsonCoords)(features, function (coords) {
|
|
87
|
-
return projection.project(coords);
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
return features;
|
|
91
|
-
}
|
|
92
|
-
function parseFlatGeobufInBatches(stream, options) {
|
|
93
|
-
if (options && options.gis && options.gis.format === 'binary') {
|
|
94
|
-
return parseFlatGeobufInBatchesToBinary(stream, options);
|
|
95
|
-
}
|
|
96
|
-
return parseFlatGeobufInBatchesToGeoJSON(stream, options);
|
|
97
|
-
}
|
|
98
|
-
function parseFlatGeobufInBatchesToBinary(stream, options) {
|
|
99
|
-
var iterator = (0, _generic.deserialize)(stream, binaryFromFeature);
|
|
100
|
-
return iterator;
|
|
101
|
-
}
|
|
102
|
-
function parseFlatGeobufInBatchesToGeoJSON(_x, _x2) {
|
|
103
|
-
return _parseFlatGeobufInBatchesToGeoJSON.apply(this, arguments);
|
|
104
|
-
}
|
|
105
|
-
function _parseFlatGeobufInBatchesToGeoJSON() {
|
|
106
|
-
_parseFlatGeobufInBatchesToGeoJSON = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee(stream, options) {
|
|
107
|
-
var _ref2, _ref2$reproject, reproject, _ref2$_targetCrs, _targetCrs, headerMeta, iterator, projection, firstRecord, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, feature, crs;
|
|
108
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
109
|
-
while (1) switch (_context.prev = _context.next) {
|
|
110
|
-
case 0:
|
|
111
|
-
_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;
|
|
112
|
-
iterator = (0, _geojson.deserialize)(stream, undefined, function (header) {
|
|
113
|
-
headerMeta = header;
|
|
114
|
-
});
|
|
115
|
-
firstRecord = true;
|
|
116
|
-
_iteratorAbruptCompletion = false;
|
|
117
|
-
_didIteratorError = false;
|
|
118
|
-
_context.prev = 5;
|
|
119
|
-
_iterator = _asyncIterator(iterator);
|
|
120
|
-
case 7:
|
|
121
|
-
_context.next = 9;
|
|
122
|
-
return (0, _awaitAsyncGenerator2.default)(_iterator.next());
|
|
123
|
-
case 9:
|
|
124
|
-
if (!(_iteratorAbruptCompletion = !(_step = _context.sent).done)) {
|
|
125
|
-
_context.next = 22;
|
|
126
|
-
break;
|
|
127
|
-
}
|
|
128
|
-
feature = _step.value;
|
|
129
|
-
if (firstRecord) {
|
|
130
|
-
crs = headerMeta && headerMeta.crs;
|
|
131
|
-
if (reproject && crs) {
|
|
132
|
-
projection = new _proj.Proj4Projection({
|
|
133
|
-
from: crs.wkt,
|
|
134
|
-
to: _targetCrs
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
firstRecord = false;
|
|
138
|
-
}
|
|
139
|
-
if (!(reproject && projection)) {
|
|
140
|
-
_context.next = 17;
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
_context.next = 15;
|
|
144
|
-
return (0, _gis.transformGeoJsonCoords)([feature], function (coords) {
|
|
145
|
-
return projection.project(coords);
|
|
146
|
-
});
|
|
147
|
-
case 15:
|
|
148
|
-
_context.next = 19;
|
|
149
|
-
break;
|
|
150
|
-
case 17:
|
|
151
|
-
_context.next = 19;
|
|
152
|
-
return feature;
|
|
153
|
-
case 19:
|
|
154
|
-
_iteratorAbruptCompletion = false;
|
|
155
|
-
_context.next = 7;
|
|
156
|
-
break;
|
|
157
|
-
case 22:
|
|
158
|
-
_context.next = 28;
|
|
159
|
-
break;
|
|
160
|
-
case 24:
|
|
161
|
-
_context.prev = 24;
|
|
162
|
-
_context.t0 = _context["catch"](5);
|
|
163
|
-
_didIteratorError = true;
|
|
164
|
-
_iteratorError = _context.t0;
|
|
165
|
-
case 28:
|
|
166
|
-
_context.prev = 28;
|
|
167
|
-
_context.prev = 29;
|
|
168
|
-
if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
|
|
169
|
-
_context.next = 33;
|
|
170
|
-
break;
|
|
171
|
-
}
|
|
172
|
-
_context.next = 33;
|
|
173
|
-
return (0, _awaitAsyncGenerator2.default)(_iterator.return());
|
|
174
|
-
case 33:
|
|
175
|
-
_context.prev = 33;
|
|
176
|
-
if (!_didIteratorError) {
|
|
177
|
-
_context.next = 36;
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
throw _iteratorError;
|
|
181
|
-
case 36:
|
|
182
|
-
return _context.finish(33);
|
|
183
|
-
case 37:
|
|
184
|
-
return _context.finish(28);
|
|
185
|
-
case 38:
|
|
186
|
-
case "end":
|
|
187
|
-
return _context.stop();
|
|
188
|
-
}
|
|
189
|
-
}, _callee, null, [[5, 24, 28, 38], [29,, 33, 37]]);
|
|
190
|
-
}));
|
|
191
|
-
return _parseFlatGeobufInBatchesToGeoJSON.apply(this, arguments);
|
|
192
|
-
}
|
|
193
|
-
//# sourceMappingURL=parse-flatgeobuf.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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","features","parseFlatGeobufToGeoJSON","table","binary","parseFlatGeobufToBinary","data","Error","length","undefined","array","Uint8Array","deserializeGeneric","byteLength","_ref","_ref$reproject","reproject","_ref$_targetCrs","_targetCrs","arr","headerMeta","_deserializeGeoJson","deserializeGeoJson","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":["import {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 type {FlatGeobufLoaderOptions} from '../flatgeobuf-loader';\nimport type {GeoJSONTable, Feature, Table} from '@loaders.gl/schema';\nimport {fromGeometry as binaryFromGeometry} from './binary-geometries';\n// import {Feature} from 'flatgeobuf/lib/cjs/feature_generated';\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 // @ts-expect-error this looks wrong\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(\n arrayBuffer: ArrayBuffer,\n options?: FlatGeobufLoaderOptions\n): Table {\n const shape = options?.gis?.format || options?.flatgeobuf?.shape;\n\n switch (shape) {\n case 'geojson':\n case 'geojson-table': {\n const features = parseFlatGeobufToGeoJSON(arrayBuffer, options);\n const table: GeoJSONTable = {\n shape: 'geojson-table',\n type: 'FeatureCollection',\n features\n };\n return table;\n }\n\n case 'columnar-table': // binary + some JS arrays\n const binary = parseFlatGeobufToBinary(arrayBuffer, options);\n // @ts-expect-error\n return {shape: 'columnar-table', data: binary};\n\n case 'binary':\n // @ts-expect-error\n return parseFlatGeobufToBinary(arrayBuffer, options);\n\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 // @ts-expect-error this looks wrong\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 // @ts-expect-error this looks wrong\n const {features} = deserializeGeoJson(arr, undefined, (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 // @ts-expect-error\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, undefined, (header) => {\n headerMeta = header;\n });\n\n let projection;\n let firstRecord = true;\n // @ts-expect-error this looks wrong\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 +0,0 @@
|
|
|
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"}
|
package/dist/esm/bundle.js
DELETED
package/dist/esm/bundle.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flatgeobuf-loader.js","names":["VERSION","FlatGeobufLoader","id","name","module","version","worker","extensions","mimeTypes","category","options","flatgeobuf","shape","gis","reproject"],"sources":["../../src/flatgeobuf-loader.ts"],"sourcesContent":["import type {Loader, LoaderOptions} 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 type FlatGeobufLoaderOptions = LoaderOptions & {\n flatgeobuf?: {\n shape?: 'geojson-table' | 'columnar-table' | 'geojson-table' | 'geojson' | 'binary';\n };\n gis?: {\n reproject?: boolean;\n _targetCrs?: string;\n /** @deprecated Use options.flatgeobuf.shape */\n format?: never;\n };\n};\n\nexport const FlatGeobufLoader: Loader<any, any, FlatGeobufLoaderOptions> = {\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 shape: 'geojson-table'\n },\n gis: {\n reproject: false\n }\n }\n};\n"],"mappings":"AAIA,MAAMA,OAAO,GAAG,qBAAkB,KAAK,WAAW,oBAAiB,QAAQ;AAc3E,OAAO,MAAMC,gBAA2D,GAAG;EACzEC,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;MACVC,KAAK,EAAE;IACT,CAAC;IACDC,GAAG,EAAE;MACHC,SAAS,EAAE;IACb;EACF;AACF,CAAC"}
|
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["FlatGeobufLoader","FlatGeobufWorkerLoader","parseFlatGeobuf","parseFlatGeobufInBatches","parse","arrayBuffer","options","parseSync","parseInBatchesFromStream","binary"],"sources":["../../src/index.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {FlatGeobufLoaderOptions} from './flatgeobuf-loader';\nimport {FlatGeobufLoader as FlatGeobufWorkerLoader} from './flatgeobuf-loader';\nimport {parseFlatGeobuf, parseFlatGeobufInBatches} from './lib/parse-flatgeobuf';\n\nexport {FlatGeobufWorkerLoader};\n\nexport const FlatGeobufLoader: LoaderWithParser<any, any, FlatGeobufLoaderOptions> = {\n ...FlatGeobufWorkerLoader,\n parse: async (arrayBuffer, options) => parseFlatGeobuf(arrayBuffer, options),\n parseSync: parseFlatGeobuf,\n // @ts-expect-error this is a stream parser not an async iterator parser\n parseInBatchesFromStream: parseFlatGeobufInBatches,\n binary: true\n};\n"],"mappings":"AAEA,SAAQA,gBAAgB,IAAIC,sBAAsB,QAAO,qBAAqB;AAC9E,SAAQC,eAAe,EAAEC,wBAAwB,QAAO,wBAAwB;AAEhF,SAAQF,sBAAsB;AAE9B,OAAO,MAAMD,gBAAqE,GAAG;EACnF,GAAGC,sBAAsB;EACzBG,KAAK,EAAE,MAAAA,CAAOC,WAAW,EAAEC,OAAO,KAAKJ,eAAe,CAACG,WAAW,EAAEC,OAAO,CAAC;EAC5EC,SAAS,EAAEL,eAAe;EAE1BM,wBAAwB,EAAEL,wBAAwB;EAClDM,MAAM,EAAE;AACV,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|