@loaders.gl/json 4.0.0-alpha.24 → 4.0.0-alpha.26
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 +96 -56
- package/dist/es5/geojson-loader.js +14 -5
- package/dist/es5/geojson-loader.js.map +1 -1
- package/dist/es5/geojson-writer.js.map +1 -1
- package/dist/es5/json-loader.js +1 -1
- package/dist/es5/json-writer.js +1 -1
- package/dist/es5/json-writer.js.map +1 -1
- package/dist/es5/lib/encoder-utils/encode-table-row.js +54 -0
- package/dist/es5/lib/encoder-utils/encode-table-row.js.map +1 -0
- package/dist/es5/lib/encoder-utils/encode-utils.js.map +1 -0
- package/dist/es5/lib/encoder-utils/utf8-encoder.js.map +1 -0
- package/dist/es5/lib/encoders/geojson-encoder.js +47 -84
- package/dist/es5/lib/encoders/geojson-encoder.js.map +1 -1
- package/dist/es5/lib/encoders/json-encoder.js +3 -3
- package/dist/es5/lib/encoders/json-encoder.js.map +1 -1
- package/dist/es5/ndgeoson-loader.js +1 -1
- package/dist/es5/ndjson-loader.js +1 -1
- package/dist/esm/geojson-loader.js +14 -5
- package/dist/esm/geojson-loader.js.map +1 -1
- package/dist/esm/geojson-writer.js.map +1 -1
- package/dist/esm/json-loader.js +1 -1
- package/dist/esm/json-writer.js +1 -1
- package/dist/esm/json-writer.js.map +1 -1
- package/dist/esm/lib/encoder-utils/encode-table-row.js +44 -0
- package/dist/esm/lib/encoder-utils/encode-table-row.js.map +1 -0
- package/dist/esm/lib/encoder-utils/encode-utils.js.map +1 -0
- package/dist/esm/lib/encoder-utils/utf8-encoder.js.map +1 -0
- package/dist/esm/lib/encoders/geojson-encoder.js +9 -52
- package/dist/esm/lib/encoders/geojson-encoder.js.map +1 -1
- package/dist/esm/lib/encoders/json-encoder.js +3 -3
- package/dist/esm/lib/encoders/json-encoder.js.map +1 -1
- package/dist/esm/ndgeoson-loader.js +1 -1
- package/dist/esm/ndjson-loader.js +1 -1
- package/dist/geojson-loader.d.ts.map +1 -1
- package/dist/geojson-worker.js +13 -182
- package/dist/geojson-writer.d.ts +8 -3
- package/dist/geojson-writer.d.ts.map +1 -1
- package/dist/json-writer.d.ts +13 -3
- package/dist/json-writer.d.ts.map +1 -1
- package/dist/lib/encoder-utils/encode-table-row.d.ts +7 -0
- package/dist/lib/encoder-utils/encode-table-row.d.ts.map +1 -0
- package/dist/lib/encoder-utils/encode-utils.d.ts.map +1 -0
- package/dist/lib/encoder-utils/utf8-encoder.d.ts.map +1 -0
- package/dist/lib/encoders/geojson-encoder.d.ts +2 -8
- package/dist/lib/encoders/geojson-encoder.d.ts.map +1 -1
- package/dist/lib/encoders/json-encoder.d.ts +1 -10
- package/dist/lib/encoders/json-encoder.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/geojson-loader.ts +19 -5
- package/src/geojson-writer.ts +8 -3
- package/src/json-writer.ts +12 -4
- package/src/lib/encoder-utils/encode-table-row.ts +69 -0
- package/src/lib/encoders/geojson-encoder.ts +15 -78
- package/src/lib/encoders/json-encoder.ts +3 -11
- package/dist/es5/lib/encoders/encode-utils.js.map +0 -1
- package/dist/es5/lib/encoders/utf8-encoder.js.map +0 -1
- package/dist/esm/lib/encoders/encode-utils.js.map +0 -1
- package/dist/esm/lib/encoders/utf8-encoder.js.map +0 -1
- package/dist/lib/encoders/encode-utils.d.ts.map +0 -1
- package/dist/lib/encoders/utf8-encoder.d.ts.map +0 -1
- /package/dist/es5/lib/{encoders → encoder-utils}/encode-utils.js +0 -0
- /package/dist/es5/lib/{encoders → encoder-utils}/utf8-encoder.js +0 -0
- /package/dist/esm/lib/{encoders → encoder-utils}/encode-utils.js +0 -0
- /package/dist/esm/lib/{encoders → encoder-utils}/utf8-encoder.js +0 -0
- /package/dist/lib/{encoders → encoder-utils}/encode-utils.d.ts +0 -0
- /package/dist/lib/{encoders → encoder-utils}/utf8-encoder.d.ts +0 -0
- /package/src/lib/{encoders → encoder-utils}/encode-utils.ts +0 -0
- /package/src/lib/{encoders → encoder-utils}/utf8-encoder.ts +0 -0
package/dist/dist.min.js
CHANGED
|
@@ -406,10 +406,12 @@
|
|
|
406
406
|
switch (table.shape) {
|
|
407
407
|
case "array-row-table":
|
|
408
408
|
case "object-row-table":
|
|
409
|
-
case "geojson-row-table":
|
|
410
409
|
return table.data.length;
|
|
410
|
+
case "geojson-table":
|
|
411
|
+
return table.features.length;
|
|
411
412
|
case "arrow-table":
|
|
412
|
-
|
|
413
|
+
const arrowTable = table.data;
|
|
414
|
+
return arrowTable.numRows;
|
|
413
415
|
case "columnar-table":
|
|
414
416
|
for (const column of Object.values(table.data)) {
|
|
415
417
|
return column.length || 0;
|
|
@@ -430,12 +432,14 @@
|
|
|
430
432
|
case "array-row-table":
|
|
431
433
|
return table.data[0].length;
|
|
432
434
|
case "object-row-table":
|
|
433
|
-
case "geojson-row-table":
|
|
434
435
|
return Object.keys(table.data[0]).length;
|
|
436
|
+
case "geojson-table":
|
|
437
|
+
return Object.keys(table.features[0]).length;
|
|
435
438
|
case "columnar-table":
|
|
436
439
|
return Object.keys(table.data).length;
|
|
437
440
|
case "arrow-table":
|
|
438
|
-
|
|
441
|
+
const arrowTable = table.data;
|
|
442
|
+
return arrowTable.numCols;
|
|
439
443
|
default:
|
|
440
444
|
throw new Error("table");
|
|
441
445
|
}
|
|
@@ -445,7 +449,6 @@
|
|
|
445
449
|
case "object-row-table":
|
|
446
450
|
return copy2 ? Object.fromEntries(Object.entries(table.data[rowIndex])) : table.data[rowIndex];
|
|
447
451
|
case "array-row-table":
|
|
448
|
-
case "geojson-row-table":
|
|
449
452
|
if (table.schema) {
|
|
450
453
|
const objectRow2 = target || {};
|
|
451
454
|
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
@@ -454,6 +457,15 @@
|
|
|
454
457
|
return objectRow2;
|
|
455
458
|
}
|
|
456
459
|
throw new Error("no schema");
|
|
460
|
+
case "geojson-table":
|
|
461
|
+
if (table.schema) {
|
|
462
|
+
const objectRow2 = target || {};
|
|
463
|
+
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
464
|
+
objectRow2[table.schema.fields[i].name] = table.features[rowIndex][i];
|
|
465
|
+
}
|
|
466
|
+
return objectRow2;
|
|
467
|
+
}
|
|
468
|
+
throw new Error("no schema");
|
|
457
469
|
case "columnar-table":
|
|
458
470
|
if (table.schema) {
|
|
459
471
|
const objectRow2 = target || {};
|
|
@@ -469,9 +481,10 @@
|
|
|
469
481
|
return objectRow2;
|
|
470
482
|
}
|
|
471
483
|
case "arrow-table":
|
|
484
|
+
const arrowTable = table.data;
|
|
472
485
|
const objectRow = target || {};
|
|
473
|
-
const row =
|
|
474
|
-
const schema =
|
|
486
|
+
const row = arrowTable.get(rowIndex);
|
|
487
|
+
const schema = arrowTable.schema;
|
|
475
488
|
for (let i = 0; i < schema.fields.length; i++) {
|
|
476
489
|
objectRow[schema.fields[i].name] = row?.[schema.fields[i].name];
|
|
477
490
|
}
|
|
@@ -485,7 +498,6 @@
|
|
|
485
498
|
case "array-row-table":
|
|
486
499
|
return copy2 ? Array.from(table.data[rowIndex]) : table.data[rowIndex];
|
|
487
500
|
case "object-row-table":
|
|
488
|
-
case "geojson-row-table":
|
|
489
501
|
if (table.schema) {
|
|
490
502
|
const arrayRow2 = target || [];
|
|
491
503
|
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
@@ -494,6 +506,15 @@
|
|
|
494
506
|
return arrayRow2;
|
|
495
507
|
}
|
|
496
508
|
return Object.values(table.data[rowIndex]);
|
|
509
|
+
case "geojson-table":
|
|
510
|
+
if (table.schema) {
|
|
511
|
+
const arrayRow2 = target || [];
|
|
512
|
+
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
513
|
+
arrayRow2[i] = table.features[rowIndex][table.schema.fields[i].name];
|
|
514
|
+
}
|
|
515
|
+
return arrayRow2;
|
|
516
|
+
}
|
|
517
|
+
return Object.values(table.features[rowIndex]);
|
|
497
518
|
case "columnar-table":
|
|
498
519
|
if (table.schema) {
|
|
499
520
|
const arrayRow2 = target || [];
|
|
@@ -511,9 +532,10 @@
|
|
|
511
532
|
return arrayRow2;
|
|
512
533
|
}
|
|
513
534
|
case "arrow-table":
|
|
535
|
+
const arrowTable = table.data;
|
|
514
536
|
const arrayRow = target || [];
|
|
515
|
-
const row =
|
|
516
|
-
const schema =
|
|
537
|
+
const row = arrowTable.get(rowIndex);
|
|
538
|
+
const schema = arrowTable.schema;
|
|
517
539
|
for (let i = 0; i < schema.fields.length; i++) {
|
|
518
540
|
arrayRow[i] = row?.[schema.fields[i].name];
|
|
519
541
|
}
|
|
@@ -1781,8 +1803,8 @@ Char: ${this.c}`;
|
|
|
1781
1803
|
});
|
|
1782
1804
|
|
|
1783
1805
|
// src/lib/encoders/json-encoder.ts
|
|
1784
|
-
function encodeTableAsJSON(table, options
|
|
1785
|
-
const shape = options
|
|
1806
|
+
function encodeTableAsJSON(table, options) {
|
|
1807
|
+
const shape = options?.json?.shape || "object-row-table";
|
|
1786
1808
|
const strings = [];
|
|
1787
1809
|
const rowIterator = makeRowIterator(table, shape);
|
|
1788
1810
|
for (const row of rowIterator) {
|
|
@@ -1811,7 +1833,7 @@ Char: ${this.c}`;
|
|
|
1811
1833
|
options: {},
|
|
1812
1834
|
text: true,
|
|
1813
1835
|
encode: async (table, options) => new TextEncoder().encode(encodeTableAsJSON(table, options)).buffer,
|
|
1814
|
-
|
|
1836
|
+
encodeTextSync: (table, options) => encodeTableAsJSON(table, options)
|
|
1815
1837
|
};
|
|
1816
1838
|
}
|
|
1817
1839
|
});
|
|
@@ -2834,11 +2856,20 @@ Char: ${this.c}`;
|
|
|
2834
2856
|
options = { ...GeoJSONLoader.options, ...options };
|
|
2835
2857
|
options.geojson = { ...GeoJSONLoader.options.geojson, ...options.geojson };
|
|
2836
2858
|
options.gis = options.gis || {};
|
|
2837
|
-
|
|
2838
|
-
|
|
2859
|
+
let geojson;
|
|
2860
|
+
try {
|
|
2861
|
+
geojson = JSON.parse(text);
|
|
2862
|
+
} catch {
|
|
2863
|
+
geojson = {};
|
|
2864
|
+
}
|
|
2865
|
+
const table = {
|
|
2866
|
+
shape: "geojson-table",
|
|
2867
|
+
type: "FeatureCollection",
|
|
2868
|
+
features: geojson?.features || []
|
|
2869
|
+
};
|
|
2839
2870
|
switch (options.gis.format) {
|
|
2840
2871
|
case "binary":
|
|
2841
|
-
return geojsonToBinary(table.
|
|
2872
|
+
return geojsonToBinary(table.features);
|
|
2842
2873
|
default:
|
|
2843
2874
|
return table;
|
|
2844
2875
|
}
|
|
@@ -2864,7 +2895,6 @@ Char: ${this.c}`;
|
|
|
2864
2895
|
var init_geojson_loader = __esm({
|
|
2865
2896
|
"src/geojson-loader.ts"() {
|
|
2866
2897
|
init_src3();
|
|
2867
|
-
init_parse_json();
|
|
2868
2898
|
init_parse_json_in_batches();
|
|
2869
2899
|
VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
2870
2900
|
GeoJSONWorkerLoader = {
|
|
@@ -2899,7 +2929,7 @@ Char: ${this.c}`;
|
|
|
2899
2929
|
}
|
|
2900
2930
|
});
|
|
2901
2931
|
|
|
2902
|
-
// src/lib/
|
|
2932
|
+
// src/lib/encoder-utils/encode-utils.ts
|
|
2903
2933
|
function detectGeometryColumnIndex(table) {
|
|
2904
2934
|
const geometryIndex = table.schema?.fields.findIndex((field) => field.name === "geometry") ?? -1;
|
|
2905
2935
|
if (geometryIndex > -1) {
|
|
@@ -2927,15 +2957,53 @@ Char: ${this.c}`;
|
|
|
2927
2957
|
return properties;
|
|
2928
2958
|
}
|
|
2929
2959
|
var init_encode_utils = __esm({
|
|
2930
|
-
"src/lib/
|
|
2960
|
+
"src/lib/encoder-utils/encode-utils.ts"() {
|
|
2931
2961
|
init_src();
|
|
2932
2962
|
}
|
|
2933
2963
|
});
|
|
2934
2964
|
|
|
2935
|
-
// src/lib/
|
|
2965
|
+
// src/lib/encoder-utils/encode-table-row.ts
|
|
2966
|
+
function encodeTableRow(table, rowIndex, geometryColumnIndex, utf8Encoder) {
|
|
2967
|
+
const row = getTableRowAsObject(table, rowIndex);
|
|
2968
|
+
if (!row)
|
|
2969
|
+
return;
|
|
2970
|
+
const featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);
|
|
2971
|
+
const featureString = JSON.stringify(featureWithProperties);
|
|
2972
|
+
utf8Encoder.push(featureString);
|
|
2973
|
+
}
|
|
2974
|
+
function getFeatureFromRow(table, row, geometryColumnIndex) {
|
|
2975
|
+
const properties = getRowPropertyObject(table, row, [geometryColumnIndex]);
|
|
2976
|
+
const columnName = table.schema?.fields[geometryColumnIndex].name;
|
|
2977
|
+
let featureOrGeometry = columnName && row[columnName];
|
|
2978
|
+
if (!featureOrGeometry) {
|
|
2979
|
+
return { type: "Feature", geometry: null, properties };
|
|
2980
|
+
}
|
|
2981
|
+
if (typeof featureOrGeometry === "string") {
|
|
2982
|
+
try {
|
|
2983
|
+
featureOrGeometry = JSON.parse(featureOrGeometry);
|
|
2984
|
+
} catch (err) {
|
|
2985
|
+
throw new Error("Invalid string geometry");
|
|
2986
|
+
}
|
|
2987
|
+
}
|
|
2988
|
+
if (typeof featureOrGeometry !== "object" || typeof featureOrGeometry?.type !== "string") {
|
|
2989
|
+
throw new Error("invalid geometry column value");
|
|
2990
|
+
}
|
|
2991
|
+
if (featureOrGeometry?.type === "Feature") {
|
|
2992
|
+
return { ...featureOrGeometry, properties };
|
|
2993
|
+
}
|
|
2994
|
+
return { type: "Feature", geometry: featureOrGeometry, properties };
|
|
2995
|
+
}
|
|
2996
|
+
var init_encode_table_row = __esm({
|
|
2997
|
+
"src/lib/encoder-utils/encode-table-row.ts"() {
|
|
2998
|
+
init_src();
|
|
2999
|
+
init_encode_utils();
|
|
3000
|
+
}
|
|
3001
|
+
});
|
|
3002
|
+
|
|
3003
|
+
// src/lib/encoder-utils/utf8-encoder.ts
|
|
2936
3004
|
var Utf8ArrayBufferEncoder;
|
|
2937
3005
|
var init_utf8_encoder = __esm({
|
|
2938
|
-
"src/lib/
|
|
3006
|
+
"src/lib/encoder-utils/utf8-encoder.ts"() {
|
|
2939
3007
|
Utf8ArrayBufferEncoder = class {
|
|
2940
3008
|
constructor(chunkSize) {
|
|
2941
3009
|
this.strings = [];
|
|
@@ -2975,10 +3043,11 @@ Char: ${this.c}`;
|
|
|
2975
3043
|
utf8Encoder.push("[");
|
|
2976
3044
|
let geometryColumn = options.geojson.geometryColumn;
|
|
2977
3045
|
let isFirstLine = true;
|
|
2978
|
-
|
|
2979
|
-
|
|
3046
|
+
let start = 0;
|
|
3047
|
+
for await (const tableBatch of batchIterator) {
|
|
3048
|
+
const end = start + getTableLength(tableBatch);
|
|
2980
3049
|
if (!geometryColumn) {
|
|
2981
|
-
geometryColumn = geometryColumn || detectGeometryColumnIndex(
|
|
3050
|
+
geometryColumn = geometryColumn || detectGeometryColumnIndex(tableBatch);
|
|
2982
3051
|
}
|
|
2983
3052
|
for (let rowIndex = start; rowIndex < end; ++rowIndex) {
|
|
2984
3053
|
if (!isFirstLine) {
|
|
@@ -2986,10 +3055,11 @@ Char: ${this.c}`;
|
|
|
2986
3055
|
}
|
|
2987
3056
|
utf8Encoder.push("\n");
|
|
2988
3057
|
isFirstLine = false;
|
|
2989
|
-
|
|
3058
|
+
encodeTableRow(tableBatch, rowIndex, geometryColumn, utf8Encoder);
|
|
2990
3059
|
if (utf8Encoder.isFull()) {
|
|
2991
3060
|
yield utf8Encoder.getArrayBufferBatch();
|
|
2992
3061
|
}
|
|
3062
|
+
start = end;
|
|
2993
3063
|
}
|
|
2994
3064
|
const arrayBufferBatch = utf8Encoder.getArrayBufferBatch();
|
|
2995
3065
|
if (arrayBufferBatch.byteLength > 0) {
|
|
@@ -3003,41 +3073,11 @@ Char: ${this.c}`;
|
|
|
3003
3073
|
}
|
|
3004
3074
|
yield utf8Encoder.getArrayBufferBatch();
|
|
3005
3075
|
}
|
|
3006
|
-
function encodeRow(table, rowIndex, geometryColumnIndex, utf8Encoder) {
|
|
3007
|
-
const row = getTableRowAsObject(table, rowIndex);
|
|
3008
|
-
if (!row)
|
|
3009
|
-
return;
|
|
3010
|
-
const featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);
|
|
3011
|
-
const featureString = JSON.stringify(featureWithProperties);
|
|
3012
|
-
utf8Encoder.push(featureString);
|
|
3013
|
-
}
|
|
3014
|
-
function getFeatureFromRow(table, row, geometryColumnIndex) {
|
|
3015
|
-
const properties = getRowPropertyObject(table, row, [geometryColumnIndex]);
|
|
3016
|
-
const columnName = table.schema?.fields[geometryColumnIndex].name;
|
|
3017
|
-
let featureOrGeometry = columnName && row[columnName];
|
|
3018
|
-
if (!featureOrGeometry) {
|
|
3019
|
-
return { type: "Feature", geometry: null, properties };
|
|
3020
|
-
}
|
|
3021
|
-
if (typeof featureOrGeometry === "string") {
|
|
3022
|
-
try {
|
|
3023
|
-
featureOrGeometry = JSON.parse(featureOrGeometry);
|
|
3024
|
-
} catch (err) {
|
|
3025
|
-
throw new Error("Invalid string geometry");
|
|
3026
|
-
}
|
|
3027
|
-
}
|
|
3028
|
-
if (typeof featureOrGeometry !== "object" || typeof featureOrGeometry?.type !== "string") {
|
|
3029
|
-
throw new Error("invalid geometry column value");
|
|
3030
|
-
}
|
|
3031
|
-
if (featureOrGeometry?.type === "Feature") {
|
|
3032
|
-
return { ...featureOrGeometry, properties };
|
|
3033
|
-
}
|
|
3034
|
-
return { type: "Feature", geometry: featureOrGeometry, properties };
|
|
3035
|
-
}
|
|
3036
3076
|
var init_geojson_encoder = __esm({
|
|
3037
3077
|
"src/lib/encoders/geojson-encoder.ts"() {
|
|
3038
|
-
init_src();
|
|
3039
3078
|
init_src();
|
|
3040
3079
|
init_encode_utils();
|
|
3080
|
+
init_encode_table_row();
|
|
3041
3081
|
init_utf8_encoder();
|
|
3042
3082
|
}
|
|
3043
3083
|
});
|
|
@@ -11,13 +11,12 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
11
11
|
var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
|
|
12
12
|
var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
|
|
13
13
|
var _gis = require("@loaders.gl/gis");
|
|
14
|
-
var _parseJson = require("./lib/parsers/parse-json");
|
|
15
14
|
var _parseJsonInBatches = require("./lib/parsers/parse-json-in-batches");
|
|
16
15
|
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; }
|
|
17
16
|
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; }
|
|
18
17
|
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
18
|
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
|
-
var VERSION = typeof "4.0.0-alpha.
|
|
19
|
+
var VERSION = typeof "4.0.0-alpha.26" !== 'undefined' ? "4.0.0-alpha.26" : 'latest';
|
|
21
20
|
var GeoJSONWorkerLoader = {
|
|
22
21
|
name: 'GeoJSON',
|
|
23
22
|
id: 'geojson',
|
|
@@ -66,14 +65,24 @@ function _parse() {
|
|
|
66
65
|
return _parse.apply(this, arguments);
|
|
67
66
|
}
|
|
68
67
|
function parseTextSync(text, options) {
|
|
68
|
+
var _geojson;
|
|
69
69
|
options = _objectSpread(_objectSpread({}, GeoJSONLoader.options), options);
|
|
70
70
|
options.geojson = _objectSpread(_objectSpread({}, GeoJSONLoader.options.geojson), options.geojson);
|
|
71
71
|
options.gis = options.gis || {};
|
|
72
|
-
var
|
|
73
|
-
|
|
72
|
+
var geojson;
|
|
73
|
+
try {
|
|
74
|
+
geojson = JSON.parse(text);
|
|
75
|
+
} catch (_unused) {
|
|
76
|
+
geojson = {};
|
|
77
|
+
}
|
|
78
|
+
var table = {
|
|
79
|
+
shape: 'geojson-table',
|
|
80
|
+
type: 'FeatureCollection',
|
|
81
|
+
features: ((_geojson = geojson) === null || _geojson === void 0 ? void 0 : _geojson.features) || []
|
|
82
|
+
};
|
|
74
83
|
switch (options.gis.format) {
|
|
75
84
|
case 'binary':
|
|
76
|
-
return (0, _gis.geojsonToBinary)(table.
|
|
85
|
+
return (0, _gis.geojsonToBinary)(table.features);
|
|
77
86
|
default:
|
|
78
87
|
return table;
|
|
79
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geojson-loader.js","names":["_gis","require","_parseJson","_parseJsonInBatches","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","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","VERSION","GeoJSONWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","options","geojson","shape","json","jsonpaths","gis","format","exports","GeoJSONLoader","parse","parseTextSync","parseInBatches","_x2","_x3","_parse","_asyncToGenerator2","_regenerator","mark","_callee2","arrayBuffer","wrap","_callee2$","_context2","prev","abrupt","TextDecoder","decode","stop","table","parseJSONSync","geojsonToBinary","data","geojsonIterator","parseJSONInBatches","makeBinaryGeometryIterator","_x","_makeBinaryGeometryIterator","_wrapAsyncGenerator2","_callee","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","_callee$","_context","_awaitAsyncGenerator2","sent","t0","finish"],"sources":["../../src/geojson-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {GeoJSON, GeoJSONRowTable, TableBatch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from './json-loader';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport {parseJSONSync} from './lib/parsers/parse-json';\nimport {parseJSONInBatches} from './lib/parsers/parse-json-in-batches';\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 GeoJSONLoaderOptions = JSONLoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format?: 'geojson' | 'binary';\n };\n};\n\n/**\n * GeoJSON loader\n */\nexport const GeoJSONWorkerLoader: Loader<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n name: 'GeoJSON',\n id: 'geojson',\n module: 'geojson',\n version: VERSION,\n worker: true,\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n category: 'geometry',\n text: true,\n options: {\n geojson: {\n shape: 'object-row-table'\n },\n json: {\n shape: 'object-row-table',\n jsonpaths: ['$', '$.features']\n },\n gis: {\n format: 'geojson'\n }\n }\n};\n\nexport const GeoJSONLoader: LoaderWithParser<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n ...GeoJSONWorkerLoader,\n // @ts-expect-error\n parse,\n // @ts-expect-error\n parseTextSync,\n parseInBatches\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: GeoJSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: GeoJSONLoaderOptions) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.geojson = {...GeoJSONLoader.options.geojson, ...options.geojson};\n options.gis = options.gis || {};\n const table = parseJSONSync(text, options) as GeoJSONRowTable;\n table.shape = 'geojson-row-table';\n switch (options.gis.format) {\n case 'binary':\n return geojsonToBinary(table.data);\n default:\n return table;\n }\n}\n\nfunction parseInBatches(asyncIterator, options): AsyncIterable<TableBatch> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.json = {...GeoJSONLoader.options.geojson, ...options.geojson};\n\n const geojsonIterator = parseJSONInBatches(asyncIterator, options);\n\n switch (options.gis.format) {\n case 'binary':\n return makeBinaryGeometryIterator(geojsonIterator);\n default:\n return geojsonIterator;\n }\n}\n\nasync function* makeBinaryGeometryIterator(geojsonIterator) {\n for await (const batch of geojsonIterator) {\n batch.data = geojsonToBinary(batch.data);\n yield batch;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"geojson-loader.js","names":["_gis","require","_parseJsonInBatches","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","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","VERSION","GeoJSONWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","options","geojson","shape","json","jsonpaths","gis","format","exports","GeoJSONLoader","parse","parseTextSync","parseInBatches","_x2","_x3","_parse","_asyncToGenerator2","_regenerator","mark","_callee2","arrayBuffer","wrap","_callee2$","_context2","prev","abrupt","TextDecoder","decode","stop","_geojson","JSON","_unused","table","type","features","geojsonToBinary","geojsonIterator","parseJSONInBatches","makeBinaryGeometryIterator","_x","_makeBinaryGeometryIterator","_wrapAsyncGenerator2","_callee","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","_callee$","_context","_awaitAsyncGenerator2","sent","data","t0","finish"],"sources":["../../src/geojson-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {GeoJSON, GeoJSONTable, TableBatch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from './json-loader';\nimport {geojsonToBinary} from '@loaders.gl/gis';\n// import {parseJSONSync} from './lib/parsers/parse-json';\nimport {parseJSONInBatches} from './lib/parsers/parse-json-in-batches';\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 GeoJSONLoaderOptions = JSONLoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format?: 'geojson' | 'binary';\n };\n};\n\n/**\n * GeoJSON loader\n */\nexport const GeoJSONWorkerLoader: Loader<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n name: 'GeoJSON',\n id: 'geojson',\n module: 'geojson',\n version: VERSION,\n worker: true,\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n category: 'geometry',\n text: true,\n options: {\n geojson: {\n shape: 'object-row-table'\n },\n json: {\n shape: 'object-row-table',\n jsonpaths: ['$', '$.features']\n },\n gis: {\n format: 'geojson'\n }\n }\n};\n\nexport const GeoJSONLoader: LoaderWithParser<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n ...GeoJSONWorkerLoader,\n // @ts-expect-error\n parse,\n // @ts-expect-error\n parseTextSync,\n parseInBatches\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: GeoJSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: GeoJSONLoaderOptions) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.geojson = {...GeoJSONLoader.options.geojson, ...options.geojson};\n options.gis = options.gis || {};\n\n let geojson;\n try {\n geojson = JSON.parse(text);\n } catch {\n geojson = {};\n }\n\n const table: GeoJSONTable = {\n shape: 'geojson-table',\n // TODO - deduce schema from geojson\n // TODO check that parsed data is of type FeatureCollection\n type: 'FeatureCollection',\n features: geojson?.features || []\n };\n\n switch (options.gis.format) {\n case 'binary':\n return geojsonToBinary(table.features);\n default:\n return table;\n }\n}\n\nfunction parseInBatches(asyncIterator, options): AsyncIterable<TableBatch> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.json = {...GeoJSONLoader.options.geojson, ...options.geojson};\n\n const geojsonIterator = parseJSONInBatches(asyncIterator, options);\n\n switch (options.gis.format) {\n case 'binary':\n return makeBinaryGeometryIterator(geojsonIterator);\n default:\n return geojsonIterator;\n }\n}\n\nasync function* makeBinaryGeometryIterator(geojsonIterator) {\n for await (const batch of geojsonIterator) {\n batch.data = geojsonToBinary(batch.data);\n yield batch;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geojson-writer.js","names":["_geojsonEncoder","require","GeoJSONWriter","id","version","module","name","extensions","mimeTypes","options","geojson","featureArray","geometryColumn","text","encodeInBatches","tableIterator","encodeTableAsGeojsonInBatches","exports"],"sources":["../../src/geojson-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright Foursquare, Inc 20222\n\nimport type {Writer} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport
|
|
1
|
+
{"version":3,"file":"geojson-writer.js","names":["_geojsonEncoder","require","GeoJSONWriter","id","version","module","name","extensions","mimeTypes","options","geojson","featureArray","geometryColumn","text","encodeInBatches","tableIterator","encodeTableAsGeojsonInBatches","exports"],"sources":["../../src/geojson-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright Foursquare, Inc 20222\n\nimport type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport {encodeTableAsGeojsonInBatches} from './lib/encoders/geojson-encoder';\n\nexport type GeoJSONWriterOptions = WriterOptions & {\n geojson?: {\n featureArray?: boolean;\n geometryColumn?: number | null;\n };\n chunkSize?: number;\n};\n\nexport const GeoJSONWriter: Writer<Table, TableBatch, GeoJSONWriterOptions> = {\n id: 'geojson',\n version: 'latest',\n module: 'geojson',\n name: 'GeoJSON',\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n options: {\n geojson: {\n featureArray: false,\n geometryColumn: null\n }\n },\n text: true,\n encodeInBatches: (tableIterator: AsyncIterable<TableBatch>, options) =>\n encodeTableAsGeojsonInBatches(tableIterator, options)\n};\n"],"mappings":";;;;;;AAKA,IAAAA,eAAA,GAAAC,OAAA;AAUO,IAAMC,aAA8D,GAAG;EAC5EC,EAAE,EAAE,SAAS;EACbC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE,SAAS;EACfC,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,sBAAsB,CAAC;EACnCC,OAAO,EAAE;IACPC,OAAO,EAAE;MACPC,YAAY,EAAE,KAAK;MACnBC,cAAc,EAAE;IAClB;EACF,CAAC;EACDC,IAAI,EAAE,IAAI;EACVC,eAAe,EAAE,SAAAA,gBAACC,aAAwC,EAAEN,OAAO;IAAA,OACjE,IAAAO,6CAA6B,EAACD,aAAa,EAAEN,OAAO,CAAC;EAAA;AACzD,CAAC;AAACQ,OAAA,CAAAf,aAAA,GAAAA,aAAA"}
|
package/dist/es5/json-loader.js
CHANGED
|
@@ -12,7 +12,7 @@ var _parseJson = require("./lib/parsers/parse-json");
|
|
|
12
12
|
var _parseJsonInBatches = require("./lib/parsers/parse-json-in-batches");
|
|
13
13
|
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; }
|
|
14
14
|
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; }
|
|
15
|
-
var VERSION = typeof "4.0.0-alpha.
|
|
15
|
+
var VERSION = typeof "4.0.0-alpha.26" !== 'undefined' ? "4.0.0-alpha.26" : 'latest';
|
|
16
16
|
var DEFAULT_JSON_LOADER_OPTIONS = {
|
|
17
17
|
json: {
|
|
18
18
|
shape: 'object-row-table',
|
package/dist/es5/json-writer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-writer.js","names":["_jsonEncoder","require","JSONWriter","id","version","module","name","extensions","mimeTypes","options","text","encode","_encode","_asyncToGenerator2","default","_regenerator","mark","_callee","table","wrap","_callee$","_context","prev","next","abrupt","TextEncoder","encodeTableAsJSON","buffer","stop","_x","_x2","apply","arguments","
|
|
1
|
+
{"version":3,"file":"json-writer.js","names":["_jsonEncoder","require","JSONWriter","id","version","module","name","extensions","mimeTypes","options","text","encode","_encode","_asyncToGenerator2","default","_regenerator","mark","_callee","table","wrap","_callee$","_context","prev","next","abrupt","TextEncoder","encodeTableAsJSON","buffer","stop","_x","_x2","apply","arguments","encodeTextSync","exports"],"sources":["../../src/json-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\n/* global TextEncoder */\nimport type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport {encodeTableAsJSON} from './lib/encoders/json-encoder';\n\nexport type JSONWriterOptions = WriterOptions & {\n json?: {\n shape?: 'object-row-table' | 'array-row-table';\n wrapper?: (table: TableJSON) => unknown;\n };\n};\n\ntype RowArray = unknown[];\ntype RowObject = {[key: string]: unknown};\ntype TableJSON = RowArray[] | RowObject[];\n\nexport const JSONWriter: Writer<Table, TableBatch, JSONWriterOptions> = {\n id: 'json',\n version: 'latest',\n module: 'json',\n name: 'JSON',\n extensions: ['json'],\n mimeTypes: ['application/json'],\n options: {},\n text: true,\n encode: async (table: Table, options: JSONWriterOptions) =>\n new TextEncoder().encode(encodeTableAsJSON(table, options)).buffer,\n encodeTextSync: (table: Table, options: JSONWriterOptions) => encodeTableAsJSON(table, options)\n};\n"],"mappings":";;;;;;;;;AAMA,IAAAA,YAAA,GAAAC,OAAA;AAaO,IAAMC,UAAwD,GAAG;EACtEC,EAAE,EAAE,MAAM;EACVC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,MAAM;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,OAAO,EAAE,CAAC,CAAC;EACXC,IAAI,EAAE,IAAI;EACVC,MAAM;IAAA,IAAAC,OAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,KAAY,EAAET,OAA0B;MAAA,OAAAM,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WACrD,IAAIC,WAAW,CAAC,CAAC,CAACd,MAAM,CAAC,IAAAe,8BAAiB,EAACR,KAAK,EAAET,OAAO,CAAC,CAAC,CAACkB,MAAM;UAAA;UAAA;YAAA,OAAAN,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,OAAAkB,EAAA,EAAAC,GAAA;MAAA,OAAAlB,OAAA,CAAAmB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAArB,MAAA;EAAA;EACpEsB,cAAc,EAAE,SAAAA,eAACf,KAAY,EAAET,OAA0B;IAAA,OAAK,IAAAiB,8BAAiB,EAACR,KAAK,EAAET,OAAO,CAAC;EAAA;AACjG,CAAC;AAACyB,OAAA,CAAAhC,UAAA,GAAAA,UAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.encodeTableRow = encodeTableRow;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
|
+
var _schema = require("@loaders.gl/schema");
|
|
11
|
+
var _encodeUtils = require("./encode-utils");
|
|
12
|
+
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; }
|
|
13
|
+
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; }
|
|
14
|
+
function encodeTableRow(table, rowIndex, geometryColumnIndex, utf8Encoder) {
|
|
15
|
+
var row = (0, _schema.getTableRowAsObject)(table, rowIndex);
|
|
16
|
+
if (!row) return;
|
|
17
|
+
var featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);
|
|
18
|
+
var featureString = JSON.stringify(featureWithProperties);
|
|
19
|
+
utf8Encoder.push(featureString);
|
|
20
|
+
}
|
|
21
|
+
function getFeatureFromRow(table, row, geometryColumnIndex) {
|
|
22
|
+
var _table$schema, _featureOrGeometry, _featureOrGeometry2;
|
|
23
|
+
var properties = (0, _encodeUtils.getRowPropertyObject)(table, row, [geometryColumnIndex]);
|
|
24
|
+
var columnName = (_table$schema = table.schema) === null || _table$schema === void 0 ? void 0 : _table$schema.fields[geometryColumnIndex].name;
|
|
25
|
+
var featureOrGeometry = columnName && row[columnName];
|
|
26
|
+
if (!featureOrGeometry) {
|
|
27
|
+
return {
|
|
28
|
+
type: 'Feature',
|
|
29
|
+
geometry: null,
|
|
30
|
+
properties: properties
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (typeof featureOrGeometry === 'string') {
|
|
34
|
+
try {
|
|
35
|
+
featureOrGeometry = JSON.parse(featureOrGeometry);
|
|
36
|
+
} catch (err) {
|
|
37
|
+
throw new Error('Invalid string geometry');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if ((0, _typeof2.default)(featureOrGeometry) !== 'object' || typeof ((_featureOrGeometry = featureOrGeometry) === null || _featureOrGeometry === void 0 ? void 0 : _featureOrGeometry.type) !== 'string') {
|
|
41
|
+
throw new Error('invalid geometry column value');
|
|
42
|
+
}
|
|
43
|
+
if (((_featureOrGeometry2 = featureOrGeometry) === null || _featureOrGeometry2 === void 0 ? void 0 : _featureOrGeometry2.type) === 'Feature') {
|
|
44
|
+
return _objectSpread(_objectSpread({}, featureOrGeometry), {}, {
|
|
45
|
+
properties: properties
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
type: 'Feature',
|
|
50
|
+
geometry: featureOrGeometry,
|
|
51
|
+
properties: properties
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=encode-table-row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-table-row.js","names":["_schema","require","_encodeUtils","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","encodeTableRow","table","rowIndex","geometryColumnIndex","utf8Encoder","row","getTableRowAsObject","featureWithProperties","getFeatureFromRow","featureString","JSON","stringify","_table$schema","_featureOrGeometry","_featureOrGeometry2","properties","getRowPropertyObject","columnName","schema","fields","name","featureOrGeometry","type","geometry","parse","err","Error","_typeof2"],"sources":["../../../../src/lib/encoder-utils/encode-table-row.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Feature} from '@loaders.gl/schema';\nimport {Table, getTableRowAsObject} from '@loaders.gl/schema';\nimport {getRowPropertyObject} from './encode-utils';\nimport {Utf8ArrayBufferEncoder} from './utf8-encoder';\n\ntype Row = {[key: string]: unknown};\n\n// Helpers\n\n/**\n * Encode a row. Currently this ignores properties in the geometry column.\n */\nexport function encodeTableRow(\n table: Table,\n rowIndex: number,\n geometryColumnIndex: number,\n utf8Encoder: Utf8ArrayBufferEncoder\n): void {\n const row = getTableRowAsObject(table, rowIndex);\n if (!row) return;\n const featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);\n const featureString = JSON.stringify(featureWithProperties);\n utf8Encoder.push(featureString);\n}\n\n/**\n * Encode a row as a Feature. Currently this ignores properties objects in the geometry column.\n */\nfunction getFeatureFromRow(table: Table, row: Row, geometryColumnIndex: number): Feature {\n // Extract non-feature/geometry properties\n const properties = getRowPropertyObject(table, row, [geometryColumnIndex]);\n\n // Extract geometry feature\n const columnName = table.schema?.fields[geometryColumnIndex].name;\n let featureOrGeometry =\n columnName && (row[columnName] as {[key: string]: unknown} | string | null | undefined);\n\n // GeoJSON support null geometries\n if (!featureOrGeometry) {\n // @ts-ignore Feature type does not support null geometries\n return {type: 'Feature', geometry: null, properties};\n }\n\n // Support string geometries?\n // TODO: This assumes GeoJSON strings, which may not be the correct format\n // (could be WKT, encoded WKB...)\n if (typeof featureOrGeometry === 'string') {\n try {\n featureOrGeometry = JSON.parse(featureOrGeometry);\n } catch (err) {\n throw new Error('Invalid string geometry');\n }\n }\n\n if (typeof featureOrGeometry !== 'object' || typeof featureOrGeometry?.type !== 'string') {\n throw new Error('invalid geometry column value');\n }\n\n if (featureOrGeometry?.type === 'Feature') {\n // @ts-ignore Feature type does not support null geometries\n return {...featureOrGeometry, properties};\n }\n\n // @ts-ignore Feature type does not support null geometries\n return {type: 'Feature', geometry: featureOrGeometry, properties};\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-utils.js","names":["_schema","require","detectGeometryColumnIndex","table","_table$schema$fields$","_table$schema","geometryIndex","schema","fields","findIndex","field","name","getTableLength","row","getTableRowAsArray","columnIndex","getTableNumCols","value","_typeof2","default","Error","getRowPropertyObject","excludeColumnIndices","arguments","length","undefined","properties","_table$schema2","columnName","includes"],"sources":["../../../../src/lib/encoder-utils/encode-utils.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, getTableLength, getTableNumCols, getTableRowAsArray} from '@loaders.gl/schema';\n\ntype Row = {[key: string]: unknown};\n\n/**\n * Attempts to identify which column contains geometry\n * Currently just returns name (key) of first object-valued column\n * @todo look for hints in schema metadata\n * @todo look for WKB\n */\nexport function detectGeometryColumnIndex(table: Table): number {\n // TODO - look for hints in schema metadata\n\n // look for a column named geometry\n const geometryIndex = table.schema?.fields.findIndex((field) => field.name === 'geometry') ?? -1;\n if (geometryIndex > -1) {\n return geometryIndex;\n }\n\n // look at the data\n // TODO - this drags in the indices\n if (getTableLength(table) > 0) {\n const row = getTableRowAsArray(table, 0);\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); columnIndex++) {\n const value = row?.[columnIndex];\n if (value && typeof value === 'object') {\n return columnIndex;\n }\n }\n }\n\n throw new Error('Failed to detect geometry column');\n}\n\n/**\n * Return a row as a property (key/value) object, excluding selected columns\n */\nexport function getRowPropertyObject(\n table: Table,\n row: Row,\n excludeColumnIndices: number[] = []\n): {[columnName: string]: unknown} {\n const properties = {};\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); ++columnIndex) {\n const columnName = table.schema?.fields[columnIndex].name;\n if (columnName && !excludeColumnIndices.includes(columnIndex)) {\n properties[columnName] = row[columnName];\n }\n }\n return properties;\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAUO,SAASC,yBAAyBA,CAACC,KAAY,EAAU;EAAA,IAAAC,qBAAA,EAAAC,aAAA;EAI9D,IAAMC,aAAa,IAAAF,qBAAA,IAAAC,aAAA,GAAGF,KAAK,CAACI,MAAM,cAAAF,aAAA,uBAAZA,aAAA,CAAcG,MAAM,CAACC,SAAS,CAAC,UAACC,KAAK;IAAA,OAAKA,KAAK,CAACC,IAAI,KAAK,UAAU;EAAA,EAAC,cAAAP,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EAChG,IAAIE,aAAa,GAAG,CAAC,CAAC,EAAE;IACtB,OAAOA,aAAa;EACtB;EAIA,IAAI,IAAAM,sBAAc,EAACT,KAAK,CAAC,GAAG,CAAC,EAAE;IAC7B,IAAMU,GAAG,GAAG,IAAAC,0BAAkB,EAACX,KAAK,EAAE,CAAC,CAAC;IACxC,KAAK,IAAIY,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAG,IAAAC,uBAAe,EAACb,KAAK,CAAC,EAAEY,WAAW,EAAE,EAAE;MAC7E,IAAME,KAAK,GAAGJ,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAGE,WAAW,CAAC;MAChC,IAAIE,KAAK,IAAI,IAAAC,QAAA,CAAAC,OAAA,EAAOF,KAAK,MAAK,QAAQ,EAAE;QACtC,OAAOF,WAAW;MACpB;IACF;EACF;EAEA,MAAM,IAAIK,KAAK,CAAC,kCAAkC,CAAC;AACrD;AAKO,SAASC,oBAAoBA,CAClClB,KAAY,EACZU,GAAQ,EAEyB;EAAA,IADjCS,oBAA8B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEnC,IAAMG,UAAU,GAAG,CAAC,CAAC;EACrB,KAAK,IAAIX,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAG,IAAAC,uBAAe,EAACb,KAAK,CAAC,EAAE,EAAEY,WAAW,EAAE;IAAA,IAAAY,cAAA;IAC7E,IAAMC,WAAU,IAAAD,cAAA,GAAGxB,KAAK,CAACI,MAAM,cAAAoB,cAAA,uBAAZA,cAAA,CAAcnB,MAAM,CAACO,WAAW,CAAC,CAACJ,IAAI;IACzD,IAAIiB,WAAU,IAAI,CAACN,oBAAoB,CAACO,QAAQ,CAACd,WAAW,CAAC,EAAE;MAC7DW,UAAU,CAACE,WAAU,CAAC,GAAGf,GAAG,CAACe,WAAU,CAAC;IAC1C;EACF;EACA,OAAOF,UAAU;AACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utf8-encoder.js","names":["Utf8ArrayBufferEncoder","chunkSize","_classCallCheck2","default","_defineProperty2","TextEncoder","_createClass2","key","value","push","_len","arguments","length","strings","Array","_key","_i","_strings","string","totalLength","isFull","getArrayBufferBatch","textEncoder","encode","getStringBatch","buffer","stringChunk","join","exports"],"sources":["../../../../src/lib/encoder-utils/utf8-encoder.ts"],"sourcesContent":["// loaders.gl, MIT License\n\n/* global TextEncoder */\nexport class Utf8ArrayBufferEncoder {\n private readonly chunkSize: number;\n private strings: string[] = [];\n private totalLength = 0;\n private textEncoder: TextEncoder = new TextEncoder();\n\n constructor(chunkSize: number) {\n this.chunkSize = chunkSize;\n }\n\n push(...strings: string[]): void {\n for (const string of strings) {\n this.strings.push(string);\n this.totalLength += string.length;\n }\n }\n\n isFull(): boolean {\n return this.totalLength >= this.chunkSize;\n }\n\n getArrayBufferBatch(): ArrayBufferLike {\n return this.textEncoder.encode(this.getStringBatch()).buffer;\n }\n\n getStringBatch(): string {\n const stringChunk = this.strings.join('');\n this.strings = [];\n this.totalLength = 0;\n return stringChunk;\n }\n}\n"],"mappings":";;;;;;;;;;IAGaA,sBAAsB;EAMjC,SAAAA,uBAAYC,SAAiB,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAH,sBAAA;IAAA,IAAAI,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA,mBAJH,EAAE;IAAA,IAAAC,gBAAA,CAAAD,OAAA,uBACR,CAAC;IAAA,IAAAC,gBAAA,CAAAD,OAAA,uBACY,IAAIE,WAAW,CAAC,CAAC;IAGlD,IAAI,CAACJ,SAAS,GAAGA,SAAS;EAC5B;EAAC,IAAAK,aAAA,CAAAH,OAAA,EAAAH,sBAAA;IAAAO,GAAA;IAAAC,KAAA,EAED,SAAAC,KAAA,EAAiC;MAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAzBC,OAAO,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAPF,OAAO,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MACb,SAAAC,EAAA,MAAAC,QAAA,GAAqBJ,OAAO,EAAAG,EAAA,GAAAC,QAAA,CAAAL,MAAA,EAAAI,EAAA,IAAE;QAAzB,IAAME,MAAM,GAAAD,QAAA,CAAAD,EAAA;QACf,IAAI,CAACH,OAAO,CAACJ,IAAI,CAACS,MAAM,CAAC;QACzB,IAAI,CAACC,WAAW,IAAID,MAAM,CAACN,MAAM;MACnC;IACF;EAAC;IAAAL,GAAA;IAAAC,KAAA,EAED,SAAAY,OAAA,EAAkB;MAChB,OAAO,IAAI,CAACD,WAAW,IAAI,IAAI,CAAClB,SAAS;IAC3C;EAAC;IAAAM,GAAA;IAAAC,KAAA,EAED,SAAAa,oBAAA,EAAuC;MACrC,OAAO,IAAI,CAACC,WAAW,CAACC,MAAM,CAAC,IAAI,CAACC,cAAc,CAAC,CAAC,CAAC,CAACC,MAAM;IAC9D;EAAC;IAAAlB,GAAA;IAAAC,KAAA,EAED,SAAAgB,eAAA,EAAyB;MACvB,IAAME,WAAW,GAAG,IAAI,CAACb,OAAO,CAACc,IAAI,CAAC,EAAE,CAAC;MACzC,IAAI,CAACd,OAAO,GAAG,EAAE;MACjB,IAAI,CAACM,WAAW,GAAG,CAAC;MACpB,OAAOO,WAAW;IACpB;EAAC;EAAA,OAAA1B,sBAAA;AAAA;AAAA4B,OAAA,CAAA5B,sBAAA,GAAAA,sBAAA"}
|