@loaders.gl/arrow 4.1.0-alpha.1 → 4.1.0-alpha.10
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/arrow-loader.d.ts +1 -0
- package/dist/arrow-loader.d.ts.map +1 -1
- package/dist/arrow-loader.js +1 -1
- package/dist/arrow-loader.js.map +1 -1
- package/dist/arrow-worker.js +5 -2
- package/dist/arrow-writer.js +1 -1
- package/dist/arrow-writer.js.map +1 -1
- package/dist/dist.dev.js +117 -50
- package/dist/geoarrow/convert-geoarrow-to-binary-geometry.d.ts +4 -2
- package/dist/geoarrow/convert-geoarrow-to-binary-geometry.d.ts.map +1 -1
- package/dist/geoarrow/convert-geoarrow-to-binary-geometry.js +25 -23
- package/dist/geoarrow/convert-geoarrow-to-binary-geometry.js.map +1 -1
- package/dist/geoarrow/convert-geoarrow-to-geojson-geometry.d.ts.map +1 -1
- package/dist/geoarrow/convert-geoarrow-to-geojson-geometry.js.map +1 -1
- package/dist/geoarrow/get-arrow-bounds.d.ts.map +1 -1
- package/dist/geoarrow/get-arrow-bounds.js.map +1 -1
- package/dist/geoarrow-loader.d.ts.map +1 -1
- package/dist/geoarrow-loader.js.map +1 -1
- package/dist/geoarrow-writer.js +1 -1
- package/dist/geoarrow-writer.js.map +1 -1
- package/dist/index.cjs +77 -17
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/arrow-table-batch.d.ts.map +1 -1
- package/dist/lib/arrow-table-batch.js.map +1 -1
- package/dist/lib/arrow-table.d.ts.map +1 -1
- package/dist/lib/arrow-table.js.map +1 -1
- package/dist/lib/encode-arrow.d.ts.map +1 -1
- package/dist/lib/encode-arrow.js.map +1 -1
- package/dist/lib/encode-geoarrow.d.ts.map +1 -1
- package/dist/lib/encode-geoarrow.js.map +1 -1
- package/dist/parsers/parse-arrow-in-batches.d.ts +2 -1
- package/dist/parsers/parse-arrow-in-batches.d.ts.map +1 -1
- package/dist/parsers/parse-arrow-in-batches.js +8 -1
- package/dist/parsers/parse-arrow-in-batches.js.map +1 -1
- package/dist/parsers/parse-arrow-sync.d.ts.map +1 -1
- package/dist/parsers/parse-arrow-sync.js.map +1 -1
- package/dist/parsers/parse-geoarrow-in-batches.d.ts.map +1 -1
- package/dist/parsers/parse-geoarrow-in-batches.js.map +1 -1
- package/dist/parsers/parse-geoarrow-sync.d.ts.map +1 -1
- package/dist/parsers/parse-geoarrow-sync.js.map +1 -1
- package/dist/schema/arrow-type-utils.d.ts.map +1 -1
- package/dist/schema/arrow-type-utils.js.map +1 -1
- package/dist/schema/convert-arrow-schema.d.ts.map +1 -1
- package/dist/schema/convert-arrow-schema.js.map +1 -1
- package/dist/tables/convert-arrow-to-columnar-table.d.ts.map +1 -1
- package/dist/tables/convert-arrow-to-columnar-table.js.map +1 -1
- package/dist/tables/convert-arrow-to-geojson-table.d.ts.map +1 -1
- package/dist/tables/convert-arrow-to-geojson-table.js.map +1 -1
- package/dist/tables/convert-columnar-to-row-table.d.ts.map +1 -1
- package/dist/tables/convert-columnar-to-row-table.js.map +1 -1
- package/dist/tables/convert-table-to-arrow.d.ts.map +1 -1
- package/dist/tables/convert-table-to-arrow.js.map +1 -1
- package/dist/triangulate-on-worker.d.ts +39 -5
- package/dist/triangulate-on-worker.d.ts.map +1 -1
- package/dist/triangulate-on-worker.js +12 -2
- package/dist/triangulate-on-worker.js.map +1 -1
- package/dist/triangulation-worker.js +11672 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/workers/arrow-worker.js.map +1 -1
- package/dist/workers/hard-clone.d.ts +23 -0
- package/dist/workers/hard-clone.d.ts.map +1 -0
- package/dist/workers/hard-clone.js +57 -0
- package/dist/workers/hard-clone.js.map +1 -0
- package/dist/workers/triangulation-worker-node.d.ts.map +1 -1
- package/dist/workers/triangulation-worker-node.js.map +1 -1
- package/dist/workers/triangulation-worker.js +34 -1
- package/dist/workers/triangulation-worker.js.map +1 -1
- package/package.json +8 -8
- package/src/arrow-loader.ts +3 -1
- package/src/geoarrow/convert-geoarrow-to-binary-geometry.ts +28 -20
- package/src/geoarrow/convert-geoarrow-to-geojson-geometry.ts +2 -1
- package/src/geoarrow/get-arrow-bounds.ts +2 -1
- package/src/geoarrow-loader.ts +2 -1
- package/src/index.ts +10 -3
- package/src/lib/arrow-table-batch.ts +2 -1
- package/src/lib/arrow-table.ts +2 -1
- package/src/lib/encode-arrow.ts +2 -1
- package/src/lib/encode-geoarrow.ts +2 -1
- package/src/parsers/parse-arrow-in-batches.ts +9 -2
- package/src/parsers/parse-arrow-sync.ts +2 -1
- package/src/parsers/parse-geoarrow-in-batches.ts +2 -1
- package/src/parsers/parse-geoarrow-sync.ts +2 -1
- package/src/schema/arrow-type-utils.ts +2 -1
- package/src/schema/convert-arrow-schema.ts +2 -1
- package/src/tables/convert-arrow-to-columnar-table.ts +2 -1
- package/src/tables/convert-arrow-to-geojson-table.ts +2 -1
- package/src/tables/convert-columnar-to-row-table.ts +2 -1
- package/src/tables/convert-table-to-arrow.ts +2 -1
- package/src/triangulate-on-worker.ts +52 -8
- package/src/types.ts +2 -1
- package/src/workers/arrow-worker.ts +2 -1
- package/src/workers/hard-clone.ts +162 -0
- package/src/workers/triangulation-worker-node.ts +2 -1
- package/src/workers/triangulation-worker.ts +58 -3
package/dist/arrow-loader.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { ArrowTable } from './lib/arrow-table';
|
|
|
4
4
|
export type ArrowLoaderOptions = LoaderOptions & {
|
|
5
5
|
arrow?: {
|
|
6
6
|
shape: 'arrow-table' | 'columnar-table' | 'array-row-table' | 'object-row-table';
|
|
7
|
+
batchDebounceMs?: number;
|
|
7
8
|
};
|
|
8
9
|
};
|
|
9
10
|
/** ArrowJS table loader */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrow-loader.d.ts","sourceRoot":"","sources":["../src/arrow-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"arrow-loader.d.ts","sourceRoot":"","sources":["../src/arrow-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAQlD,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;QACjF,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,kBAAkB,CAoB3E,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,WAAW,EAAE,gBAAgB,CACxC,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,EAC3D,eAAe,EACf,kBAAkB,CAQnB,CAAC"}
|
package/dist/arrow-loader.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { parseArrowSync } from "./parsers/parse-arrow-sync.js";
|
|
2
2
|
import { parseArrowInBatches } from "./parsers/parse-arrow-in-batches.js";
|
|
3
|
-
const VERSION = typeof
|
|
3
|
+
const VERSION = typeof "4.1.0-alpha.10" !== 'undefined' ? "4.1.0-alpha.10" : 'latest';
|
|
4
4
|
export const ArrowWorkerLoader = {
|
|
5
5
|
name: 'Apache Arrow',
|
|
6
6
|
id: 'arrow',
|
package/dist/arrow-loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrow-loader.js","names":["parseArrowSync","parseArrowInBatches","VERSION","
|
|
1
|
+
{"version":3,"file":"arrow-loader.js","names":["parseArrowSync","parseArrowInBatches","VERSION","ArrowWorkerLoader","name","id","module","version","category","extensions","mimeTypes","binary","tests","options","arrow","shape","ArrowLoader","parse","arraybuffer","parseSync","parseInBatches"],"sources":["../src/arrow-loader.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {\n ArrayRowTable,\n ArrowTableBatch,\n ColumnarTable,\n ObjectRowTable\n} from '@loaders.gl/schema';\nimport type {ArrowTable} from './lib/arrow-table';\nimport {parseArrowSync} from './parsers/parse-arrow-sync';\nimport {parseArrowInBatches} from './parsers/parse-arrow-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 ArrowLoaderOptions = LoaderOptions & {\n arrow?: {\n shape: 'arrow-table' | 'columnar-table' | 'array-row-table' | 'object-row-table';\n batchDebounceMs?: number;\n };\n};\n\n/** ArrowJS table loader */\nexport const ArrowWorkerLoader: Loader<ArrowTable, never, ArrowLoaderOptions> = {\n name: 'Apache Arrow',\n id: 'arrow',\n module: 'arrow',\n version: VERSION,\n // worker: true,\n category: 'table',\n extensions: ['arrow', 'feather'],\n mimeTypes: [\n 'application/vnd.apache.arrow.file',\n 'application/vnd.apache.arrow.stream',\n 'application/octet-stream'\n ],\n binary: true,\n tests: ['ARROW'],\n options: {\n arrow: {\n shape: 'columnar-table'\n }\n }\n};\n\n/** ArrowJS table loader */\nexport const ArrowLoader: LoaderWithParser<\n ArrowTable | ColumnarTable | ObjectRowTable | ArrayRowTable,\n ArrowTableBatch,\n ArrowLoaderOptions\n> = {\n ...ArrowWorkerLoader,\n parse: async (arraybuffer: ArrayBuffer, options?: ArrowLoaderOptions) =>\n parseArrowSync(arraybuffer, options?.arrow),\n parseSync: (arraybuffer: ArrayBuffer, options?: ArrowLoaderOptions) =>\n parseArrowSync(arraybuffer, options?.arrow),\n parseInBatches: parseArrowInBatches\n};\n"],"mappings":"SAYQA,cAAc;AAAA,SACdC,mBAAmB;AAI3B,MAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAU3E,OAAO,MAAMC,iBAAgE,GAAG;EAC9EC,IAAI,EAAE,cAAc;EACpBC,EAAE,EAAE,OAAO;EACXC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEL,OAAO;EAEhBM,QAAQ,EAAE,OAAO;EACjBC,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;EAChCC,SAAS,EAAE,CACT,mCAAmC,EACnC,qCAAqC,EACrC,0BAA0B,CAC3B;EACDC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,CAAC,OAAO,CAAC;EAChBC,OAAO,EAAE;IACPC,KAAK,EAAE;MACLC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAGD,OAAO,MAAMC,WAIZ,GAAG;EACF,GAAGb,iBAAiB;EACpBc,KAAK,EAAE,MAAAA,CAAOC,WAAwB,EAAEL,OAA4B,KAClEb,cAAc,CAACkB,WAAW,EAAEL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,KAAK,CAAC;EAC7CK,SAAS,EAAEA,CAACD,WAAwB,EAAEL,OAA4B,KAChEb,cAAc,CAACkB,WAAW,EAAEL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,KAAK,CAAC;EAC7CM,cAAc,EAAEnB;AAClB,CAAC"}
|
package/dist/arrow-worker.js
CHANGED
|
@@ -12154,11 +12154,14 @@ return true;`);
|
|
|
12154
12154
|
}
|
|
12155
12155
|
|
|
12156
12156
|
// src/parsers/parse-arrow-in-batches.ts
|
|
12157
|
-
function parseArrowInBatches(asyncIterator) {
|
|
12157
|
+
function parseArrowInBatches(asyncIterator, options) {
|
|
12158
12158
|
async function* makeArrowAsyncIterator() {
|
|
12159
12159
|
const readers = RecordBatchReader.readAll(asyncIterator);
|
|
12160
12160
|
for await (const reader of readers) {
|
|
12161
12161
|
for await (const recordBatch of reader) {
|
|
12162
|
+
if (options?.arrow?.batchDebounceMs !== void 0 && options?.arrow?.batchDebounceMs > 0) {
|
|
12163
|
+
await new Promise((resolve) => setTimeout(resolve, options.arrow?.batchDebounceMs || 0));
|
|
12164
|
+
}
|
|
12162
12165
|
const arrowTabledBatch = {
|
|
12163
12166
|
shape: "arrow-table",
|
|
12164
12167
|
batchType: "data",
|
|
@@ -12174,7 +12177,7 @@ return true;`);
|
|
|
12174
12177
|
}
|
|
12175
12178
|
|
|
12176
12179
|
// src/arrow-loader.ts
|
|
12177
|
-
var VERSION = true ? "4.1.0-alpha.
|
|
12180
|
+
var VERSION = true ? "4.1.0-alpha.10" : "latest";
|
|
12178
12181
|
var ArrowWorkerLoader = {
|
|
12179
12182
|
name: "Apache Arrow",
|
|
12180
12183
|
id: "arrow",
|
package/dist/arrow-writer.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { encodeArrowSync } from "./lib/encode-arrow.js";
|
|
2
|
-
const VERSION = typeof
|
|
2
|
+
const VERSION = typeof "4.1.0-alpha.10" !== 'undefined' ? "4.1.0-alpha.10" : 'latest';
|
|
3
3
|
export const ArrowWriter = {
|
|
4
4
|
name: 'Apache Arrow',
|
|
5
5
|
id: 'arrow',
|
package/dist/arrow-writer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrow-writer.js","names":["encodeArrowSync","VERSION","
|
|
1
|
+
{"version":3,"file":"arrow-writer.js","names":["encodeArrowSync","VERSION","ArrowWriter","name","id","module","version","extensions","mimeTypes","binary","options","encode","encodeArrow","data","encodeSync"],"sources":["../src/arrow-writer.ts"],"sourcesContent":["// import type {} from '@loaders.gl/loader-utils';\n\nimport type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';\nimport {ColumnarTable} from './lib/encode-arrow';\nimport {encodeArrowSync} from './lib/encode-arrow';\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\ntype ArrowWriterOptions = WriterOptions & {\n arrow?: {};\n};\n\n/** Apache Arrow writer */\nexport const ArrowWriter: WriterWithEncoder<ColumnarTable, never, ArrowWriterOptions> = {\n name: 'Apache Arrow',\n id: 'arrow',\n module: 'arrow',\n version: VERSION,\n extensions: ['arrow', 'feather'],\n mimeTypes: [\n 'application/vnd.apache.arrow.file',\n 'application/vnd.apache.arrow.stream',\n 'application/octet-stream'\n ],\n binary: true,\n options: {},\n encode: async function encodeArrow(data, options?): Promise<ArrayBuffer> {\n return encodeArrowSync(data);\n },\n encodeSync(data, options?) {\n return encodeArrowSync(data);\n }\n};\n"],"mappings":"SAIQA,eAAe;AAIvB,MAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAO3E,OAAO,MAAMC,WAAwE,GAAG;EACtFC,IAAI,EAAE,cAAc;EACpBC,EAAE,EAAE,OAAO;EACXC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;EAChCC,SAAS,EAAE,CACT,mCAAmC,EACnC,qCAAqC,EACrC,0BAA0B,CAC3B;EACDC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE,CAAC,CAAC;EACXC,MAAM,EAAE,eAAeC,WAAWA,CAACC,IAAI,EAAEH,OAAQ,EAAwB;IACvE,OAAOV,eAAe,CAACa,IAAI,CAAC;EAC9B,CAAC;EACDC,UAAUA,CAACD,IAAI,EAAEH,OAAQ,EAAE;IACzB,OAAOV,eAAe,CAACa,IAAI,CAAC;EAC9B;AACF,CAAC"}
|
package/dist/dist.dev.js
CHANGED
|
@@ -30,7 +30,6 @@ var __exports__ = (() => {
|
|
|
30
30
|
ArrowLoader: () => ArrowLoader,
|
|
31
31
|
ArrowWorkerLoader: () => ArrowWorkerLoader,
|
|
32
32
|
ArrowWriter: () => ArrowWriter,
|
|
33
|
-
BINARY_GEOMETRY_TEMPLATE: () => BINARY_GEOMETRY_TEMPLATE,
|
|
34
33
|
GeoArrowLoader: () => GeoArrowLoader,
|
|
35
34
|
GeoArrowWorkerLoader: () => GeoArrowWorkerLoader,
|
|
36
35
|
TriangulationWorker: () => TriangulationWorker,
|
|
@@ -42,8 +41,11 @@ var __exports__ = (() => {
|
|
|
42
41
|
deserializeArrowType: () => deserializeArrowType,
|
|
43
42
|
getArrowType: () => getArrowType,
|
|
44
43
|
getBinaryGeometriesFromArrow: () => getBinaryGeometriesFromArrow,
|
|
44
|
+
getBinaryGeometryTemplate: () => getBinaryGeometryTemplate,
|
|
45
45
|
getMeanCentersFromBinaryGeometries: () => getMeanCentersFromBinaryGeometries,
|
|
46
46
|
getTriangleIndices: () => getTriangleIndices,
|
|
47
|
+
hardClone: () => hardClone,
|
|
48
|
+
parseGeoArrowOnWorker: () => parseGeoArrowOnWorker,
|
|
47
49
|
parseGeometryFromArrow: () => parseGeometryFromArrow,
|
|
48
50
|
serializeArrowField: () => serializeArrowField,
|
|
49
51
|
serializeArrowMetadata: () => serializeArrowMetadata,
|
|
@@ -77,6 +79,7 @@ var __exports__ = (() => {
|
|
|
77
79
|
if (Number.isFinite(cursor)) {
|
|
78
80
|
this.cursor = cursor;
|
|
79
81
|
}
|
|
82
|
+
this.shape = "array-row-table";
|
|
80
83
|
this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);
|
|
81
84
|
this.rows[this.length] = row;
|
|
82
85
|
this.length++;
|
|
@@ -85,6 +88,7 @@ var __exports__ = (() => {
|
|
|
85
88
|
if (Number.isFinite(cursor)) {
|
|
86
89
|
this.cursor = cursor;
|
|
87
90
|
}
|
|
91
|
+
this.shape = "object-row-table";
|
|
88
92
|
this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);
|
|
89
93
|
this.rows[this.length] = row;
|
|
90
94
|
this.length++;
|
|
@@ -97,7 +101,7 @@ var __exports__ = (() => {
|
|
|
97
101
|
rows = rows.slice(0, this.length);
|
|
98
102
|
this.rows = null;
|
|
99
103
|
const batch = {
|
|
100
|
-
shape: this.
|
|
104
|
+
shape: this.shape || "array-row-table",
|
|
101
105
|
batchType: "data",
|
|
102
106
|
data: rows,
|
|
103
107
|
length: this.length,
|
|
@@ -113,12 +117,16 @@ var __exports__ = (() => {
|
|
|
113
117
|
if (!arrayRow) {
|
|
114
118
|
throw new Error("null row");
|
|
115
119
|
}
|
|
116
|
-
if (!headers) {
|
|
117
|
-
throw new Error("no headers");
|
|
118
|
-
}
|
|
119
120
|
const objectRow = {};
|
|
120
|
-
|
|
121
|
-
|
|
121
|
+
if (headers) {
|
|
122
|
+
for (let i = 0; i < headers.length; i++) {
|
|
123
|
+
objectRow[headers[i]] = arrayRow[i];
|
|
124
|
+
}
|
|
125
|
+
} else {
|
|
126
|
+
for (let i = 0; i < arrayRow.length; i++) {
|
|
127
|
+
const columnName = `column-${i}`;
|
|
128
|
+
objectRow[columnName] = arrayRow[i];
|
|
129
|
+
}
|
|
122
130
|
}
|
|
123
131
|
return objectRow;
|
|
124
132
|
}
|
|
@@ -126,14 +134,25 @@ var __exports__ = (() => {
|
|
|
126
134
|
if (!objectRow) {
|
|
127
135
|
throw new Error("null row");
|
|
128
136
|
}
|
|
129
|
-
if (
|
|
130
|
-
|
|
137
|
+
if (headers) {
|
|
138
|
+
const arrayRow = new Array(headers.length);
|
|
139
|
+
for (let i = 0; i < headers.length; i++) {
|
|
140
|
+
arrayRow[i] = objectRow[headers[i]];
|
|
141
|
+
}
|
|
142
|
+
return arrayRow;
|
|
131
143
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
144
|
+
return Object.values(objectRow);
|
|
145
|
+
}
|
|
146
|
+
function inferHeadersFromArrayRow(arrayRow) {
|
|
147
|
+
const headers = [];
|
|
148
|
+
for (let i = 0; i < arrayRow.length; i++) {
|
|
149
|
+
const columnName = `column-${i}`;
|
|
150
|
+
headers.push(columnName);
|
|
135
151
|
}
|
|
136
|
-
return
|
|
152
|
+
return headers;
|
|
153
|
+
}
|
|
154
|
+
function inferHeadersFromObjectRow(row) {
|
|
155
|
+
return Object.keys(row);
|
|
137
156
|
}
|
|
138
157
|
|
|
139
158
|
// ../schema/src/lib/table/batches/row-table-batch-aggregator.ts
|
|
@@ -143,11 +162,11 @@ var __exports__ = (() => {
|
|
|
143
162
|
objectRows = null;
|
|
144
163
|
arrayRows = null;
|
|
145
164
|
cursor = 0;
|
|
146
|
-
_headers =
|
|
165
|
+
_headers = null;
|
|
147
166
|
constructor(schema, options) {
|
|
148
167
|
this.options = options;
|
|
149
168
|
this.schema = schema;
|
|
150
|
-
if (
|
|
169
|
+
if (schema) {
|
|
151
170
|
this._headers = [];
|
|
152
171
|
for (const key in schema) {
|
|
153
172
|
this._headers[schema[key].index] = schema[key].name;
|
|
@@ -161,6 +180,7 @@ var __exports__ = (() => {
|
|
|
161
180
|
if (Number.isFinite(cursor)) {
|
|
162
181
|
this.cursor = cursor;
|
|
163
182
|
}
|
|
183
|
+
this._headers ||= inferHeadersFromArrayRow(row);
|
|
164
184
|
switch (this.options.shape) {
|
|
165
185
|
case "object-row-table":
|
|
166
186
|
const rowObject = convertToObjectRow(row, this._headers);
|
|
@@ -177,6 +197,7 @@ var __exports__ = (() => {
|
|
|
177
197
|
if (Number.isFinite(cursor)) {
|
|
178
198
|
this.cursor = cursor;
|
|
179
199
|
}
|
|
200
|
+
this._headers ||= inferHeadersFromObjectRow(row);
|
|
180
201
|
switch (this.options.shape) {
|
|
181
202
|
case "array-row-table":
|
|
182
203
|
const rowArray = convertToArrayRow(row, this._headers);
|
|
@@ -286,7 +307,7 @@ var __exports__ = (() => {
|
|
|
286
307
|
|
|
287
308
|
// ../schema/src/lib/table/batches/table-batch-builder.ts
|
|
288
309
|
var DEFAULT_OPTIONS = {
|
|
289
|
-
shape:
|
|
310
|
+
shape: void 0,
|
|
290
311
|
batchSize: "auto",
|
|
291
312
|
batchDebounceMs: 0,
|
|
292
313
|
limit: 0,
|
|
@@ -398,8 +419,6 @@ var __exports__ = (() => {
|
|
|
398
419
|
}
|
|
399
420
|
_getTableBatchType() {
|
|
400
421
|
switch (this.options.shape) {
|
|
401
|
-
case "row-table":
|
|
402
|
-
return BaseTableBatchAggregator;
|
|
403
422
|
case "array-row-table":
|
|
404
423
|
case "object-row-table":
|
|
405
424
|
return RowTableBatchAggregator;
|
|
@@ -411,7 +430,7 @@ var __exports__ = (() => {
|
|
|
411
430
|
}
|
|
412
431
|
return TableBatchBuilder.ArrowBatch;
|
|
413
432
|
default:
|
|
414
|
-
|
|
433
|
+
return BaseTableBatchAggregator;
|
|
415
434
|
}
|
|
416
435
|
}
|
|
417
436
|
};
|
|
@@ -12717,11 +12736,14 @@ return true;`);
|
|
|
12717
12736
|
}
|
|
12718
12737
|
|
|
12719
12738
|
// src/parsers/parse-arrow-in-batches.ts
|
|
12720
|
-
function parseArrowInBatches(asyncIterator) {
|
|
12739
|
+
function parseArrowInBatches(asyncIterator, options) {
|
|
12721
12740
|
async function* makeArrowAsyncIterator() {
|
|
12722
12741
|
const readers = RecordBatchReader.readAll(asyncIterator);
|
|
12723
12742
|
for await (const reader of readers) {
|
|
12724
12743
|
for await (const recordBatch of reader) {
|
|
12744
|
+
if (options?.arrow?.batchDebounceMs !== void 0 && options?.arrow?.batchDebounceMs > 0) {
|
|
12745
|
+
await new Promise((resolve) => setTimeout(resolve, options.arrow?.batchDebounceMs || 0));
|
|
12746
|
+
}
|
|
12725
12747
|
const arrowTabledBatch = {
|
|
12726
12748
|
shape: "arrow-table",
|
|
12727
12749
|
batchType: "data",
|
|
@@ -12737,7 +12759,7 @@ return true;`);
|
|
|
12737
12759
|
}
|
|
12738
12760
|
|
|
12739
12761
|
// src/arrow-loader.ts
|
|
12740
|
-
var VERSION =
|
|
12762
|
+
var VERSION = true ? "4.1.0-alpha.10" : "latest";
|
|
12741
12763
|
var ArrowWorkerLoader = {
|
|
12742
12764
|
name: "Apache Arrow",
|
|
12743
12765
|
id: "arrow",
|
|
@@ -12783,7 +12805,7 @@ return true;`);
|
|
|
12783
12805
|
}
|
|
12784
12806
|
|
|
12785
12807
|
// src/arrow-writer.ts
|
|
12786
|
-
var VERSION2 =
|
|
12808
|
+
var VERSION2 = true ? "4.1.0-alpha.10" : "latest";
|
|
12787
12809
|
var ArrowWriter = {
|
|
12788
12810
|
name: "Apache Arrow",
|
|
12789
12811
|
id: "arrow",
|
|
@@ -13603,31 +13625,33 @@ return true;`);
|
|
|
13603
13625
|
BinaryGeometryType2["polygons"] = "polygons";
|
|
13604
13626
|
return BinaryGeometryType2;
|
|
13605
13627
|
}(BinaryGeometryType || {});
|
|
13606
|
-
|
|
13607
|
-
|
|
13608
|
-
|
|
13609
|
-
|
|
13610
|
-
|
|
13611
|
-
|
|
13612
|
-
|
|
13613
|
-
|
|
13614
|
-
|
|
13615
|
-
|
|
13616
|
-
|
|
13617
|
-
|
|
13618
|
-
|
|
13619
|
-
|
|
13620
|
-
|
|
13621
|
-
|
|
13628
|
+
function getBinaryGeometryTemplate() {
|
|
13629
|
+
return {
|
|
13630
|
+
globalFeatureIds: {
|
|
13631
|
+
value: new Uint32Array(0),
|
|
13632
|
+
size: 1
|
|
13633
|
+
},
|
|
13634
|
+
positions: {
|
|
13635
|
+
value: new Float32Array(0),
|
|
13636
|
+
size: 2
|
|
13637
|
+
},
|
|
13638
|
+
properties: [],
|
|
13639
|
+
numericProps: {},
|
|
13640
|
+
featureIds: {
|
|
13641
|
+
value: new Uint32Array(0),
|
|
13642
|
+
size: 1
|
|
13643
|
+
}
|
|
13644
|
+
};
|
|
13645
|
+
}
|
|
13622
13646
|
function getBinaryGeometriesFromArrow(geoColumn, geoEncoding, options) {
|
|
13623
13647
|
const featureTypes = {
|
|
13624
13648
|
polygon: geoEncoding === "geoarrow.multipolygon" || geoEncoding === "geoarrow.polygon",
|
|
13625
13649
|
point: geoEncoding === "geoarrow.multipoint" || geoEncoding === "geoarrow.point",
|
|
13626
13650
|
line: geoEncoding === "geoarrow.multilinestring" || geoEncoding === "geoarrow.linestring"
|
|
13627
13651
|
};
|
|
13628
|
-
const chunks = options?.chunkIndex ? [geoColumn.data[options?.chunkIndex]] : geoColumn.data;
|
|
13652
|
+
const chunks = options?.chunkIndex !== void 0 && options?.chunkIndex >= 0 ? [geoColumn.data[options?.chunkIndex]] : geoColumn.data;
|
|
13629
13653
|
let bounds = [Infinity, Infinity, -Infinity, -Infinity];
|
|
13630
|
-
let globalFeatureIdOffset = 0;
|
|
13654
|
+
let globalFeatureIdOffset = options?.chunkOffset || 0;
|
|
13631
13655
|
const binaryGeometries = [];
|
|
13632
13656
|
chunks.forEach((chunk) => {
|
|
13633
13657
|
const {
|
|
@@ -13663,12 +13687,12 @@ return true;`);
|
|
|
13663
13687
|
shape: "binary-feature-collection",
|
|
13664
13688
|
points: {
|
|
13665
13689
|
type: "Point",
|
|
13666
|
-
...
|
|
13690
|
+
...getBinaryGeometryTemplate(),
|
|
13667
13691
|
...featureTypes.point ? binaryContent : {}
|
|
13668
13692
|
},
|
|
13669
13693
|
lines: {
|
|
13670
13694
|
type: "LineString",
|
|
13671
|
-
...
|
|
13695
|
+
...getBinaryGeometryTemplate(),
|
|
13672
13696
|
...featureTypes.line ? binaryContent : {},
|
|
13673
13697
|
pathIndices: {
|
|
13674
13698
|
value: featureTypes.line ? geomOffset : new Uint16Array(0),
|
|
@@ -13677,7 +13701,7 @@ return true;`);
|
|
|
13677
13701
|
},
|
|
13678
13702
|
polygons: {
|
|
13679
13703
|
type: "Polygon",
|
|
13680
|
-
...
|
|
13704
|
+
...getBinaryGeometryTemplate(),
|
|
13681
13705
|
...featureTypes.polygon ? binaryContent : {},
|
|
13682
13706
|
polygonIndices: {
|
|
13683
13707
|
value: featureTypes.polygon ? geomOffset : new Uint16Array(0),
|
|
@@ -13791,7 +13815,7 @@ return true;`);
|
|
|
13791
13815
|
}
|
|
13792
13816
|
const triangleIndices = earcut(slicedFlatCoords, holeIndices.length > 0 ? holeIndices : void 0, nDim);
|
|
13793
13817
|
if (triangleIndices.length === 0) {
|
|
13794
|
-
throw Error("
|
|
13818
|
+
throw Error("earcut failed e.g. invalid polygon");
|
|
13795
13819
|
}
|
|
13796
13820
|
for (let j = 0; j < triangleIndices.length; j++) {
|
|
13797
13821
|
triangles.push(triangleIndices[j] + startIdx);
|
|
@@ -13833,8 +13857,8 @@ return true;`);
|
|
|
13833
13857
|
const triangles = options?.triangulate ? getTriangleIndices(geometryIndicies, geomOffset, flatCoordinateArray, nDim) : null;
|
|
13834
13858
|
return {
|
|
13835
13859
|
featureIds,
|
|
13836
|
-
flatCoordinateArray,
|
|
13837
13860
|
nDim,
|
|
13861
|
+
flatCoordinateArray,
|
|
13838
13862
|
geomOffset,
|
|
13839
13863
|
geometryIndicies,
|
|
13840
13864
|
...options?.triangulate && triangles ? {
|
|
@@ -13913,7 +13937,7 @@ return true;`);
|
|
|
13913
13937
|
}
|
|
13914
13938
|
|
|
13915
13939
|
// ../wkt/src/lib/utils/version.ts
|
|
13916
|
-
var VERSION3 =
|
|
13940
|
+
var VERSION3 = true ? "4.1.0-alpha.10" : "latest";
|
|
13917
13941
|
|
|
13918
13942
|
// ../wkt/src/lib/parse-wkt.ts
|
|
13919
13943
|
var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
|
|
@@ -14709,16 +14733,50 @@ return true;`);
|
|
|
14709
14733
|
};
|
|
14710
14734
|
}
|
|
14711
14735
|
|
|
14736
|
+
// src/workers/hard-clone.ts
|
|
14737
|
+
function hardClone(data, force = false) {
|
|
14738
|
+
if ("data" in data) {
|
|
14739
|
+
return new Vector(data.data.map((data2) => hardClone(data2, force)));
|
|
14740
|
+
}
|
|
14741
|
+
const clonedChildren = [];
|
|
14742
|
+
for (const childData of data.children) {
|
|
14743
|
+
clonedChildren.push(hardClone(childData, force));
|
|
14744
|
+
}
|
|
14745
|
+
let clonedDictionary;
|
|
14746
|
+
if (data.dictionary !== void 0) {
|
|
14747
|
+
clonedDictionary = hardClone(data.dictionary, force);
|
|
14748
|
+
}
|
|
14749
|
+
const clonedBuffers = {
|
|
14750
|
+
[BufferType.OFFSET]: cloneBuffer(data.buffers[BufferType.OFFSET], force),
|
|
14751
|
+
[BufferType.DATA]: cloneBuffer(data.buffers[BufferType.DATA], force),
|
|
14752
|
+
[BufferType.VALIDITY]: cloneBuffer(data.buffers[BufferType.VALIDITY], force),
|
|
14753
|
+
[BufferType.TYPE]: cloneBuffer(data.buffers[BufferType.TYPE], force)
|
|
14754
|
+
};
|
|
14755
|
+
return new Data(data.type, data.offset, data.length, data._nullCount, clonedBuffers, clonedChildren, clonedDictionary);
|
|
14756
|
+
}
|
|
14757
|
+
function isTypedArraySliced(arr) {
|
|
14758
|
+
return !(arr.byteOffset === 0 && arr.byteLength === arr.buffer.byteLength);
|
|
14759
|
+
}
|
|
14760
|
+
function cloneBuffer(arr, force) {
|
|
14761
|
+
if (arr === void 0) {
|
|
14762
|
+
return arr;
|
|
14763
|
+
}
|
|
14764
|
+
if (!force && !isTypedArraySliced(arr)) {
|
|
14765
|
+
return arr;
|
|
14766
|
+
}
|
|
14767
|
+
return arr.slice();
|
|
14768
|
+
}
|
|
14769
|
+
|
|
14712
14770
|
// ../worker-utils/src/lib/env-utils/version.ts
|
|
14713
14771
|
var NPM_TAG = "latest";
|
|
14714
14772
|
function getVersion() {
|
|
14715
14773
|
if (!globalThis._loadersgl_?.version) {
|
|
14716
14774
|
globalThis._loadersgl_ = globalThis._loadersgl_ || {};
|
|
14717
|
-
if (
|
|
14775
|
+
if (false) {
|
|
14718
14776
|
console.warn("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
14719
14777
|
globalThis._loadersgl_.version = NPM_TAG;
|
|
14720
14778
|
} else {
|
|
14721
|
-
globalThis._loadersgl_.version =
|
|
14779
|
+
globalThis._loadersgl_.version = "4.1.0-alpha.10";
|
|
14722
14780
|
}
|
|
14723
14781
|
}
|
|
14724
14782
|
return globalThis._loadersgl_.version;
|
|
@@ -15260,7 +15318,7 @@ return true;`);
|
|
|
15260
15318
|
}
|
|
15261
15319
|
|
|
15262
15320
|
// src/triangulate-on-worker.ts
|
|
15263
|
-
var VERSION5 =
|
|
15321
|
+
var VERSION5 = true ? "4.1.0-alpha.10" : "latest";
|
|
15264
15322
|
var TriangulationWorker = {
|
|
15265
15323
|
id: "triangulation",
|
|
15266
15324
|
name: "Triangulate",
|
|
@@ -15269,7 +15327,16 @@ return true;`);
|
|
|
15269
15327
|
options: {}
|
|
15270
15328
|
};
|
|
15271
15329
|
function triangulateOnWorker(data, options = {}) {
|
|
15272
|
-
return processOnWorker(TriangulationWorker,
|
|
15330
|
+
return processOnWorker(TriangulationWorker, {
|
|
15331
|
+
...data,
|
|
15332
|
+
operation: "triangulate"
|
|
15333
|
+
}, options);
|
|
15334
|
+
}
|
|
15335
|
+
function parseGeoArrowOnWorker(data, options = {}) {
|
|
15336
|
+
return processOnWorker(TriangulationWorker, {
|
|
15337
|
+
...data,
|
|
15338
|
+
operation: "parse-geoarrow"
|
|
15339
|
+
}, options);
|
|
15273
15340
|
}
|
|
15274
15341
|
|
|
15275
15342
|
// src/index.ts
|
|
@@ -21,7 +21,7 @@ export type BinaryDataFromGeoArrow = {
|
|
|
21
21
|
/**
|
|
22
22
|
* binary geometry template, see deck.gl BinaryGeometry
|
|
23
23
|
*/
|
|
24
|
-
export declare
|
|
24
|
+
export declare function getBinaryGeometryTemplate(): {
|
|
25
25
|
globalFeatureIds: {
|
|
26
26
|
value: Uint32Array;
|
|
27
27
|
size: number;
|
|
@@ -40,6 +40,8 @@ export declare const BINARY_GEOMETRY_TEMPLATE: {
|
|
|
40
40
|
export type BinaryGeometriesFromArrowOptions = {
|
|
41
41
|
/** option to specify which chunk to get binary geometries from, for progressive rendering */
|
|
42
42
|
chunkIndex?: number;
|
|
43
|
+
/** The offset (beginning index of rows) of input chunk. Used for reconstructing globalFeatureIds in web workers */
|
|
44
|
+
chunkOffset?: number;
|
|
43
45
|
/** option to get mean centers from geometries, for polygon filtering */
|
|
44
46
|
calculateMeanCenters?: boolean;
|
|
45
47
|
/** option to compute the triangle indices by tesselating polygons */
|
|
@@ -66,7 +68,7 @@ export declare function getMeanCentersFromBinaryGeometries(binaryGeometries: Bin
|
|
|
66
68
|
* @param primitivePolygonIndices Indices within positions of the start of each primitive Polygon/ring
|
|
67
69
|
* @param flatCoordinateArray Array of x, y or x, y, z positions
|
|
68
70
|
* @param nDim - number of dimensions per position
|
|
69
|
-
* @returns
|
|
71
|
+
* @returns triangle indices or null if invalid polygon and earcut fails
|
|
70
72
|
*/
|
|
71
73
|
export declare function getTriangleIndices(polygonIndices: Uint16Array, primitivePolygonIndices: Int32Array, flatCoordinateArray: Float64Array, nDim: number): Uint32Array | null;
|
|
72
74
|
//# sourceMappingURL=convert-geoarrow-to-binary-geometry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-geoarrow-to-binary-geometry.d.ts","sourceRoot":"","sources":["../../src/geoarrow/convert-geoarrow-to-binary-geometry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convert-geoarrow-to-binary-geometry.d.ts","sourceRoot":"","sources":["../../src/geoarrow/convert-geoarrow-to-binary-geometry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAC,uBAAuB,IAAI,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAajD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,oEAAoE;IACpE,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,wCAAwC;IACxC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,6CAA6C;IAC7C,YAAY,EAAE;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAC,CAAC;IAChE,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;CAC1B,CAAC;AAsBF;;GAEG;AACH,wBAAgB,yBAAyB;;;;;;;;;;;;;;;EAQxC;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,6FAA6F;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mHAAmH;IACnH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,KAAK,CAAC,MAAM,EACvB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,gCAAgC,GACzC,sBAAsB,CAiFxB;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,gBAAgB,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,EAAE,CAiCjG;AA2ED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,WAAW,EAC3B,uBAAuB,EAAE,UAAU,EACnC,mBAAmB,EAAE,YAAY,EACjC,IAAI,EAAE,MAAM,GACX,WAAW,GAAG,IAAI,CAyCpB"}
|
|
@@ -6,31 +6,33 @@ var BinaryGeometryType = function (BinaryGeometryType) {
|
|
|
6
6
|
BinaryGeometryType["polygons"] = "polygons";
|
|
7
7
|
return BinaryGeometryType;
|
|
8
8
|
}(BinaryGeometryType || {});
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
9
|
+
export function getBinaryGeometryTemplate() {
|
|
10
|
+
return {
|
|
11
|
+
globalFeatureIds: {
|
|
12
|
+
value: new Uint32Array(0),
|
|
13
|
+
size: 1
|
|
14
|
+
},
|
|
15
|
+
positions: {
|
|
16
|
+
value: new Float32Array(0),
|
|
17
|
+
size: 2
|
|
18
|
+
},
|
|
19
|
+
properties: [],
|
|
20
|
+
numericProps: {},
|
|
21
|
+
featureIds: {
|
|
22
|
+
value: new Uint32Array(0),
|
|
23
|
+
size: 1
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
25
27
|
export function getBinaryGeometriesFromArrow(geoColumn, geoEncoding, options) {
|
|
26
28
|
const featureTypes = {
|
|
27
29
|
polygon: geoEncoding === 'geoarrow.multipolygon' || geoEncoding === 'geoarrow.polygon',
|
|
28
30
|
point: geoEncoding === 'geoarrow.multipoint' || geoEncoding === 'geoarrow.point',
|
|
29
31
|
line: geoEncoding === 'geoarrow.multilinestring' || geoEncoding === 'geoarrow.linestring'
|
|
30
32
|
};
|
|
31
|
-
const chunks = options
|
|
33
|
+
const chunks = (options === null || options === void 0 ? void 0 : options.chunkIndex) !== undefined && (options === null || options === void 0 ? void 0 : options.chunkIndex) >= 0 ? [geoColumn.data[options === null || options === void 0 ? void 0 : options.chunkIndex]] : geoColumn.data;
|
|
32
34
|
let bounds = [Infinity, Infinity, -Infinity, -Infinity];
|
|
33
|
-
let globalFeatureIdOffset = 0;
|
|
35
|
+
let globalFeatureIdOffset = (options === null || options === void 0 ? void 0 : options.chunkOffset) || 0;
|
|
34
36
|
const binaryGeometries = [];
|
|
35
37
|
chunks.forEach(chunk => {
|
|
36
38
|
const {
|
|
@@ -66,12 +68,12 @@ export function getBinaryGeometriesFromArrow(geoColumn, geoEncoding, options) {
|
|
|
66
68
|
shape: 'binary-feature-collection',
|
|
67
69
|
points: {
|
|
68
70
|
type: 'Point',
|
|
69
|
-
...
|
|
71
|
+
...getBinaryGeometryTemplate(),
|
|
70
72
|
...(featureTypes.point ? binaryContent : {})
|
|
71
73
|
},
|
|
72
74
|
lines: {
|
|
73
75
|
type: 'LineString',
|
|
74
|
-
...
|
|
76
|
+
...getBinaryGeometryTemplate(),
|
|
75
77
|
...(featureTypes.line ? binaryContent : {}),
|
|
76
78
|
pathIndices: {
|
|
77
79
|
value: featureTypes.line ? geomOffset : new Uint16Array(0),
|
|
@@ -80,7 +82,7 @@ export function getBinaryGeometriesFromArrow(geoColumn, geoEncoding, options) {
|
|
|
80
82
|
},
|
|
81
83
|
polygons: {
|
|
82
84
|
type: 'Polygon',
|
|
83
|
-
...
|
|
85
|
+
...getBinaryGeometryTemplate(),
|
|
84
86
|
...(featureTypes.polygon ? binaryContent : {}),
|
|
85
87
|
polygonIndices: {
|
|
86
88
|
value: featureTypes.polygon ? geomOffset : new Uint16Array(0),
|
|
@@ -195,7 +197,7 @@ export function getTriangleIndices(polygonIndices, primitivePolygonIndices, flat
|
|
|
195
197
|
}
|
|
196
198
|
const triangleIndices = earcut(slicedFlatCoords, holeIndices.length > 0 ? holeIndices : undefined, nDim);
|
|
197
199
|
if (triangleIndices.length === 0) {
|
|
198
|
-
throw Error('
|
|
200
|
+
throw Error('earcut failed e.g. invalid polygon');
|
|
199
201
|
}
|
|
200
202
|
for (let j = 0; j < triangleIndices.length; j++) {
|
|
201
203
|
triangles.push(triangleIndices[j] + startIdx);
|
|
@@ -237,8 +239,8 @@ function getBinaryPolygonsFromChunk(chunk, geoEncoding, options) {
|
|
|
237
239
|
const triangles = options !== null && options !== void 0 && options.triangulate ? getTriangleIndices(geometryIndicies, geomOffset, flatCoordinateArray, nDim) : null;
|
|
238
240
|
return {
|
|
239
241
|
featureIds,
|
|
240
|
-
flatCoordinateArray,
|
|
241
242
|
nDim,
|
|
243
|
+
flatCoordinateArray,
|
|
242
244
|
geomOffset,
|
|
243
245
|
geometryIndicies,
|
|
244
246
|
...(options !== null && options !== void 0 && options.triangulate && triangles ? {
|