@loaders.gl/wkt 4.3.2 → 4.4.0-alpha.2
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.dev.js +1281 -1266
- package/dist/dist.min.js +2 -2
- package/dist/hex-wkb-loader.d.ts +6 -5
- package/dist/hex-wkb-loader.d.ts.map +1 -1
- package/dist/hex-wkb-loader.js +4 -4
- package/dist/index.cjs +51 -1622
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -5
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/{utils/version.js → version.js} +1 -1
- package/dist/twkb-loader.d.ts +3 -3
- package/dist/twkb-loader.d.ts.map +1 -1
- package/dist/twkb-loader.js +4 -4
- package/dist/twkb-writer.d.ts +2 -1
- package/dist/twkb-writer.d.ts.map +1 -1
- package/dist/twkb-writer.js +5 -4
- package/dist/wkb-loader.d.ts +13 -11
- package/dist/wkb-loader.d.ts.map +1 -1
- package/dist/wkb-loader.js +14 -6
- package/dist/wkb-writer.d.ts +3 -2
- package/dist/wkb-writer.d.ts.map +1 -1
- package/dist/wkb-writer.js +5 -4
- package/dist/wkt-crs-loader.d.ts +1 -1
- package/dist/wkt-crs-loader.d.ts.map +1 -1
- package/dist/wkt-crs-loader.js +2 -2
- package/dist/wkt-crs-writer.d.ts +1 -1
- package/dist/wkt-crs-writer.d.ts.map +1 -1
- package/dist/wkt-crs-writer.js +2 -2
- package/dist/wkt-loader.d.ts +2 -2
- package/dist/wkt-loader.d.ts.map +1 -1
- package/dist/wkt-loader.js +4 -4
- package/dist/wkt-worker.js +26 -13
- package/dist/wkt-writer.d.ts +6 -5
- package/dist/wkt-writer.d.ts.map +1 -1
- package/dist/wkt-writer.js +10 -7
- package/package.json +6 -6
- package/src/hex-wkb-loader.ts +8 -8
- package/src/index.ts +0 -10
- package/src/twkb-loader.ts +5 -5
- package/src/twkb-writer.ts +6 -5
- package/src/wkb-loader.ts +24 -12
- package/src/wkb-writer.ts +8 -7
- package/src/wkt-crs-loader.ts +3 -3
- package/src/wkt-crs-writer.ts +3 -5
- package/src/wkt-loader.ts +6 -5
- package/src/wkt-writer.ts +11 -8
- package/dist/lib/encode-twkb.d.ts +0 -6
- package/dist/lib/encode-twkb.d.ts.map +0 -1
- package/dist/lib/encode-twkb.js +0 -195
- package/dist/lib/encode-wkb.d.ts +0 -33
- package/dist/lib/encode-wkb.d.ts.map +0 -1
- package/dist/lib/encode-wkb.js +0 -286
- package/dist/lib/encode-wkt-crs.d.ts +0 -10
- package/dist/lib/encode-wkt-crs.d.ts.map +0 -1
- package/dist/lib/encode-wkt-crs.js +0 -35
- package/dist/lib/encode-wkt.d.ts +0 -8
- package/dist/lib/encode-wkt.d.ts.map +0 -1
- package/dist/lib/encode-wkt.js +0 -47
- package/dist/lib/parse-hex-wkb.d.ts +0 -1
- package/dist/lib/parse-hex-wkb.d.ts.map +0 -1
- package/dist/lib/parse-hex-wkb.js +0 -1
- package/dist/lib/parse-twkb.d.ts +0 -9
- package/dist/lib/parse-twkb.d.ts.map +0 -1
- package/dist/lib/parse-twkb.js +0 -253
- package/dist/lib/parse-wkb-header.d.ts +0 -39
- package/dist/lib/parse-wkb-header.d.ts.map +0 -1
- package/dist/lib/parse-wkb-header.js +0 -134
- package/dist/lib/parse-wkb.d.ts +0 -5
- package/dist/lib/parse-wkb.d.ts.map +0 -1
- package/dist/lib/parse-wkb.js +0 -241
- package/dist/lib/parse-wkt-crs.d.ts +0 -15
- package/dist/lib/parse-wkt-crs.d.ts.map +0 -1
- package/dist/lib/parse-wkt-crs.js +0 -120
- package/dist/lib/parse-wkt.d.ts +0 -30
- package/dist/lib/parse-wkt.d.ts.map +0 -1
- package/dist/lib/parse-wkt.js +0 -288
- package/dist/lib/utils/base64-encoder.d.ts +0 -5
- package/dist/lib/utils/base64-encoder.d.ts.map +0 -1
- package/dist/lib/utils/base64-encoder.js +0 -153
- package/dist/lib/utils/binary-reader.d.ts +0 -18
- package/dist/lib/utils/binary-reader.d.ts.map +0 -1
- package/dist/lib/utils/binary-reader.js +0 -69
- package/dist/lib/utils/binary-writer.d.ts +0 -28
- package/dist/lib/utils/binary-writer.d.ts.map +0 -1
- package/dist/lib/utils/binary-writer.js +0 -121
- package/dist/lib/utils/hex-encoder.d.ts +0 -15
- package/dist/lib/utils/hex-encoder.d.ts.map +0 -1
- package/dist/lib/utils/hex-encoder.js +0 -54
- package/dist/lib/utils/hex-transcoder.d.ts +0 -15
- package/dist/lib/utils/hex-transcoder.d.ts.map +0 -1
- package/dist/lib/utils/hex-transcoder.js +0 -50
- package/dist/lib/utils/version.d.ts.map +0 -1
- package/src/lib/encode-twkb.ts +0 -308
- package/src/lib/encode-wkb.ts +0 -390
- package/src/lib/encode-wkt-crs.ts +0 -41
- package/src/lib/encode-wkt.ts +0 -56
- package/src/lib/parse-hex-wkb.ts +0 -0
- package/src/lib/parse-twkb.ts +0 -365
- package/src/lib/parse-wkb-header.ts +0 -174
- package/src/lib/parse-wkb.ts +0 -343
- package/src/lib/parse-wkt-crs.ts +0 -149
- package/src/lib/parse-wkt.ts +0 -327
- package/src/lib/utils/base64-encoder.ts +0 -157
- package/src/lib/utils/binary-reader.ts +0 -76
- package/src/lib/utils/binary-writer.ts +0 -127
- package/src/lib/utils/hex-encoder.ts +0 -60
- package/src/lib/utils/hex-transcoder.ts +0 -54
- /package/dist/lib/{utils/version.d.ts → version.d.ts} +0 -0
- /package/src/lib/{utils/version.ts → version.ts} +0 -0
package/dist/wkb-writer.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// loaders.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { convertGeometryToWKB } from '@loaders.gl/gis';
|
|
5
|
+
import { VERSION } from "./lib/version.js";
|
|
6
6
|
/**
|
|
7
7
|
* WKB exporter
|
|
8
8
|
*/
|
|
@@ -12,6 +12,7 @@ export const WKBWriter = {
|
|
|
12
12
|
module: 'wkt',
|
|
13
13
|
version: VERSION,
|
|
14
14
|
extensions: ['wkb'],
|
|
15
|
+
mimeTypes: ['application/wkb', 'application/octet-stream'],
|
|
15
16
|
options: {
|
|
16
17
|
wkb: {
|
|
17
18
|
hasZ: false,
|
|
@@ -19,9 +20,9 @@ export const WKBWriter = {
|
|
|
19
20
|
}
|
|
20
21
|
},
|
|
21
22
|
async encode(data, options) {
|
|
22
|
-
return
|
|
23
|
+
return convertGeometryToWKB(data); // , options?.wkb);
|
|
23
24
|
},
|
|
24
25
|
encodeSync(data, options) {
|
|
25
|
-
return
|
|
26
|
+
return convertGeometryToWKB(data); // , options?.wkb);
|
|
26
27
|
}
|
|
27
28
|
};
|
package/dist/wkt-crs-loader.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LoaderOptions } from '@loaders.gl/loader-utils';
|
|
2
|
-
import type { ParseWKTCRSOptions, WKTCRS } from
|
|
2
|
+
import type { ParseWKTCRSOptions, WKTCRS } from '@loaders.gl/gis';
|
|
3
3
|
export type WKTCRSLoaderOptions = LoaderOptions & {
|
|
4
4
|
'wkt-crs'?: ParseWKTCRSOptions;
|
|
5
5
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wkt-crs-loader.d.ts","sourceRoot":"","sources":["../src/wkt-crs-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,aAAa,EAAC,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wkt-crs-loader.d.ts","sourceRoot":"","sources":["../src/wkt-crs-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAC,kBAAkB,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAIhE,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY;uBACM,MAAM;wBAChB,KAAK;;;;;;;;;;;;;;;CAgB+C,CAAC"}
|
package/dist/wkt-crs-loader.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// loaders.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { parseWKTCRS } from '@loaders.gl/gis';
|
|
5
|
+
import { VERSION } from "./lib/version.js";
|
|
6
6
|
/**
|
|
7
7
|
* Well-Known text CRS loader
|
|
8
8
|
* @see OGC Standard: https://www.ogc.org/standards/wkt-crs
|
package/dist/wkt-crs-writer.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { WriterOptions } from '@loaders.gl/loader-utils';
|
|
2
|
-
import type { EncodeWKTCRSOptions } from
|
|
2
|
+
import type { EncodeWKTCRSOptions } from '@loaders.gl/gis';
|
|
3
3
|
export type WKTCRSWriterOptions = WriterOptions & {
|
|
4
4
|
'wkt-crs'?: EncodeWKTCRSOptions;
|
|
5
5
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wkt-crs-writer.d.ts","sourceRoot":"","sources":["../src/wkt-crs-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,aAAa,EAAC,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wkt-crs-writer.d.ts","sourceRoot":"","sources":["../src/wkt-crs-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAAS,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAIjE,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;CAkBiD,CAAC"}
|
package/dist/wkt-crs-writer.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// loaders.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { encodeWKTCRS } from '@loaders.gl/gis';
|
|
5
|
+
import { VERSION } from "./lib/version.js";
|
|
6
6
|
/**
|
|
7
7
|
* Well-Known text CRS loader
|
|
8
8
|
* @see OGC Standard: https://www.ogc.org/standards/wkt-crs
|
package/dist/wkt-loader.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { LoaderOptions } from '@loaders.gl/loader-utils';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import type { Geometry } from '@loaders.gl/schema';
|
|
3
|
+
import { isWKT } from '@loaders.gl/gis';
|
|
4
4
|
export type WKTLoaderOptions = LoaderOptions & {
|
|
5
5
|
/** Options for the WKTLoader */
|
|
6
6
|
wkt?: {
|
package/dist/wkt-loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wkt-loader.d.ts","sourceRoot":"","sources":["../src/wkt-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wkt-loader.d.ts","sourceRoot":"","sources":["../src/wkt-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,KAAK,EAA0C,MAAM,iBAAiB,CAAC;AAG/E,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,gCAAgC;IAChC,GAAG,CAAC,EAAE;QACJ,iCAAiC;QACjC,KAAK,CAAC,EAAE,kBAAkB,CAAC;QAC3B,8FAA8F;QAC9F,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;uBACG,QAAQ;wBAClB,KAAK;;;;;;;;;;;;;;;;;;CAmBoC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,SAAS;;qCAII,MAAM;uBA7BD,QAAQ;wBAClB,KAAK;;;;;;;;;;;;;;;;;;CA6B8C,CAAC"}
|
package/dist/wkt-loader.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// loaders.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { isWKT, WKT_MAGIC_STRINGS, convertWKTToGeometry } from '@loaders.gl/gis';
|
|
5
|
+
import { VERSION } from "./lib/version.js";
|
|
6
6
|
/**
|
|
7
7
|
* Well-Known text worker loader
|
|
8
8
|
*/
|
|
@@ -32,6 +32,6 @@ export const WKTWorkerLoader = {
|
|
|
32
32
|
*/
|
|
33
33
|
export const WKTLoader = {
|
|
34
34
|
...WKTWorkerLoader,
|
|
35
|
-
parse: async (arrayBuffer, options) =>
|
|
36
|
-
parseTextSync: (string, options) =>
|
|
35
|
+
parse: async (arrayBuffer, options) => convertWKTToGeometry(new TextDecoder().decode(arrayBuffer), options),
|
|
36
|
+
parseTextSync: (string, options) => convertWKTToGeometry(string, options)
|
|
37
37
|
};
|
package/dist/wkt-worker.js
CHANGED
|
@@ -199,12 +199,7 @@
|
|
|
199
199
|
return await parser(data, { ...options }, context, loader);
|
|
200
200
|
}
|
|
201
201
|
|
|
202
|
-
// src/lib/
|
|
203
|
-
var VERSION = true ? "4.3.1" : "latest";
|
|
204
|
-
|
|
205
|
-
// src/lib/parse-wkt.ts
|
|
206
|
-
var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
|
|
207
|
-
var tuples = new RegExp("^" + numberRegexp.source + "(\\s" + numberRegexp.source + "){1,}");
|
|
202
|
+
// ../gis/src/lib/geometry-converters/wkb/helpers/wkb-types.ts
|
|
208
203
|
var WKT_MAGIC_STRINGS = [
|
|
209
204
|
"POINT(",
|
|
210
205
|
"LINESTRING(",
|
|
@@ -213,15 +208,30 @@
|
|
|
213
208
|
"MULTILINESTRING(",
|
|
214
209
|
"MULTIPOLYGON(",
|
|
215
210
|
"GEOMETRYCOLLECTION("
|
|
216
|
-
// We only support this "geojson" subset of the OGC simple features standard
|
|
217
211
|
];
|
|
212
|
+
var textEncoder = new TextEncoder();
|
|
213
|
+
var WKT_MAGIC_BYTES = WKT_MAGIC_STRINGS.map((string) => textEncoder.encode(string));
|
|
214
|
+
|
|
215
|
+
// ../gis/src/lib/geometry-converters/wkb/helpers/parse-wkb-header.ts
|
|
218
216
|
function isWKT(input) {
|
|
219
|
-
return
|
|
217
|
+
return getWKTGeometryType(input) !== null;
|
|
220
218
|
}
|
|
221
|
-
function
|
|
222
|
-
|
|
219
|
+
function getWKTGeometryType(input) {
|
|
220
|
+
if (typeof input === "string") {
|
|
221
|
+
const index2 = WKT_MAGIC_STRINGS.findIndex((magicString) => input.startsWith(magicString));
|
|
222
|
+
return index2 >= 0 ? index2 + 1 : null;
|
|
223
|
+
}
|
|
224
|
+
const inputArray = new Uint8Array(input);
|
|
225
|
+
const index = WKT_MAGIC_BYTES.findIndex(
|
|
226
|
+
(magicBytes) => magicBytes.every((value, index2) => value === inputArray[index2])
|
|
227
|
+
);
|
|
228
|
+
return index >= 0 ? index + 1 : null;
|
|
223
229
|
}
|
|
224
|
-
|
|
230
|
+
|
|
231
|
+
// ../gis/src/lib/geometry-converters/wkb/convert-wkt-to-geometry.ts
|
|
232
|
+
var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
|
|
233
|
+
var tuples = new RegExp("^" + numberRegexp.source + "(\\s" + numberRegexp.source + "){1,}");
|
|
234
|
+
function convertWKTToGeometry(input, options) {
|
|
225
235
|
const parts = input.split(";");
|
|
226
236
|
let _ = parts.pop();
|
|
227
237
|
const srid = (parts.shift() || "").split("=").pop();
|
|
@@ -443,6 +453,9 @@
|
|
|
443
453
|
$(/^\s*/, state);
|
|
444
454
|
}
|
|
445
455
|
|
|
456
|
+
// src/lib/version.ts
|
|
457
|
+
var VERSION = true ? "4.4.0-alpha.1" : "latest";
|
|
458
|
+
|
|
446
459
|
// src/wkt-loader.ts
|
|
447
460
|
var WKTWorkerLoader = {
|
|
448
461
|
dataType: null,
|
|
@@ -467,8 +480,8 @@
|
|
|
467
480
|
};
|
|
468
481
|
var WKTLoader = {
|
|
469
482
|
...WKTWorkerLoader,
|
|
470
|
-
parse: async (arrayBuffer, options) =>
|
|
471
|
-
parseTextSync: (string, options) =>
|
|
483
|
+
parse: async (arrayBuffer, options) => convertWKTToGeometry(new TextDecoder().decode(arrayBuffer), options),
|
|
484
|
+
parseTextSync: (string, options) => convertWKTToGeometry(string, options)
|
|
472
485
|
};
|
|
473
486
|
|
|
474
487
|
// src/workers/wkt-worker.ts
|
package/dist/wkt-writer.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { WriterOptions } from '@loaders.gl/loader-utils';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import type { Geometry } from '@loaders.gl/schema';
|
|
3
|
+
import { convertGeometryToWKT } from '@loaders.gl/gis';
|
|
4
4
|
export type WKTWriterOptions = WriterOptions & {
|
|
5
5
|
wkt?: {};
|
|
6
6
|
};
|
|
@@ -13,14 +13,15 @@ export declare const WKTWriter: {
|
|
|
13
13
|
readonly module: "wkt";
|
|
14
14
|
readonly version: any;
|
|
15
15
|
readonly extensions: ["wkt"];
|
|
16
|
+
readonly mimeTypes: ["application/wkt", "text/plain"];
|
|
16
17
|
readonly text: true;
|
|
17
18
|
readonly encode: (geometry: Geometry) => Promise<ArrayBuffer>;
|
|
18
|
-
readonly encodeSync: typeof
|
|
19
|
-
readonly encodeTextSync: typeof
|
|
19
|
+
readonly encodeSync: typeof convertGeometryToWKTSync;
|
|
20
|
+
readonly encodeTextSync: typeof convertGeometryToWKT;
|
|
20
21
|
readonly options: {
|
|
21
22
|
readonly wkt: {};
|
|
22
23
|
};
|
|
23
24
|
};
|
|
24
|
-
declare function
|
|
25
|
+
declare function convertGeometryToWKTSync(geometry: Geometry): ArrayBuffer;
|
|
25
26
|
export {};
|
|
26
27
|
//# sourceMappingURL=wkt-writer.d.ts.map
|
package/dist/wkt-writer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wkt-writer.d.ts","sourceRoot":"","sources":["../src/wkt-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,aAAa,EAAC,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wkt-writer.d.ts","sourceRoot":"","sources":["../src/wkt-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;AAGrD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,EAAE,CAAC;CACV,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;gCAQK,QAAQ;;;;;;CAMsC,CAAC;AAE1E,iBAAS,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAIjE"}
|
package/dist/wkt-writer.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// loaders.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { convertGeometryToWKT } from '@loaders.gl/gis';
|
|
5
|
+
import { VERSION } from "./lib/version.js";
|
|
6
6
|
/**
|
|
7
7
|
* WKT exporter
|
|
8
8
|
*/
|
|
@@ -12,14 +12,17 @@ export const WKTWriter = {
|
|
|
12
12
|
module: 'wkt',
|
|
13
13
|
version: VERSION,
|
|
14
14
|
extensions: ['wkt'],
|
|
15
|
+
mimeTypes: ['application/wkt', 'text/plain'],
|
|
15
16
|
text: true,
|
|
16
|
-
encode: async (geometry) =>
|
|
17
|
-
encodeSync:
|
|
18
|
-
encodeTextSync:
|
|
17
|
+
encode: async (geometry) => convertGeometryToWKTSync(geometry),
|
|
18
|
+
encodeSync: convertGeometryToWKTSync,
|
|
19
|
+
encodeTextSync: convertGeometryToWKT,
|
|
19
20
|
options: {
|
|
20
21
|
wkt: {}
|
|
21
22
|
}
|
|
22
23
|
};
|
|
23
|
-
function
|
|
24
|
-
|
|
24
|
+
function convertGeometryToWKTSync(geometry) {
|
|
25
|
+
const wktString = convertGeometryToWKT(geometry);
|
|
26
|
+
const wktTypedArray = new TextEncoder().encode(wktString);
|
|
27
|
+
return wktTypedArray.buffer;
|
|
25
28
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/wkt",
|
|
3
3
|
"description": "Loader and Writer for the WKT (Well Known Text) Format",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.4.0-alpha.2",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"publishConfig": {
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
"fuzzer": "^0.2.1"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@loaders.gl/gis": "4.
|
|
48
|
-
"@loaders.gl/loader-utils": "4.
|
|
49
|
-
"@loaders.gl/schema": "4.
|
|
47
|
+
"@loaders.gl/gis": "4.4.0-alpha.2",
|
|
48
|
+
"@loaders.gl/loader-utils": "4.4.0-alpha.2",
|
|
49
|
+
"@loaders.gl/schema": "4.4.0-alpha.2"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"@loaders.gl/core": "
|
|
52
|
+
"@loaders.gl/core": "4.4.0-alpha.1"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "3d9fed050eabdc0812ddf2f4d5fb9914a34ee0c2"
|
|
55
55
|
}
|
package/src/hex-wkb-loader.ts
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import type {LoaderWithParser} from '@loaders.gl/loader-utils';
|
|
6
|
-
import {
|
|
6
|
+
import type {Geometry} from '@loaders.gl/schema';
|
|
7
|
+
import {convertWKBToGeometry, decodeHex} from '@loaders.gl/gis';
|
|
7
8
|
|
|
8
9
|
import type {WKBLoaderOptions} from './wkb-loader';
|
|
9
10
|
import {WKBLoader} from './wkb-loader';
|
|
10
|
-
import {VERSION} from './lib/
|
|
11
|
-
import {decodeHex} from './lib/utils/hex-transcoder';
|
|
11
|
+
import {VERSION} from './lib/version';
|
|
12
12
|
|
|
13
13
|
export type HexWKBLoaderOptions = WKBLoaderOptions;
|
|
14
14
|
|
|
@@ -16,7 +16,7 @@ export type HexWKBLoaderOptions = WKBLoaderOptions;
|
|
|
16
16
|
* Worker loader for Hex-encoded WKB (Well-Known Binary)
|
|
17
17
|
*/
|
|
18
18
|
export const HexWKBLoader = {
|
|
19
|
-
dataType: null as unknown as
|
|
19
|
+
dataType: null as unknown as Geometry,
|
|
20
20
|
batchType: null as never,
|
|
21
21
|
name: 'Hexadecimal WKB',
|
|
22
22
|
id: 'wkb',
|
|
@@ -32,12 +32,11 @@ export const HexWKBLoader = {
|
|
|
32
32
|
// TODO - encoding here seems wasteful - extend hex transcoder?
|
|
33
33
|
parse: async (arrayBuffer: ArrayBuffer) => parseHexWKB(new TextDecoder().decode(arrayBuffer)),
|
|
34
34
|
parseTextSync: parseHexWKB
|
|
35
|
-
} as const satisfies LoaderWithParser<
|
|
35
|
+
} as const satisfies LoaderWithParser<Geometry, never, HexWKBLoaderOptions>;
|
|
36
36
|
|
|
37
|
-
function parseHexWKB(text: string, options?: HexWKBLoaderOptions):
|
|
37
|
+
function parseHexWKB(text: string, options?: HexWKBLoaderOptions): Geometry {
|
|
38
38
|
const uint8Array = decodeHex(text);
|
|
39
|
-
const binaryGeometry =
|
|
40
|
-
// @ts-expect-error
|
|
39
|
+
const binaryGeometry = convertWKBToGeometry(uint8Array.buffer); // , options?.wkb);
|
|
41
40
|
return binaryGeometry;
|
|
42
41
|
}
|
|
43
42
|
|
|
@@ -47,6 +46,7 @@ function parseHexWKB(text: string, options?: HexWKBLoaderOptions): BinaryGeometr
|
|
|
47
46
|
*
|
|
48
47
|
* @param str input string
|
|
49
48
|
* @returns true if string is a valid WKB in HEX format
|
|
49
|
+
* @todo Avoid costly regex check
|
|
50
50
|
*/
|
|
51
51
|
export function isHexWKB(string: string | null): boolean {
|
|
52
52
|
if (!string) {
|
package/src/index.ts
CHANGED
|
@@ -15,13 +15,3 @@ export {HexWKBLoader} from './hex-wkb-loader';
|
|
|
15
15
|
|
|
16
16
|
export {TWKBLoader} from './twkb-loader';
|
|
17
17
|
export {TWKBWriter} from './twkb-writer';
|
|
18
|
-
|
|
19
|
-
// EXPERIMENTAL APIs
|
|
20
|
-
export {isWKT} from './lib/parse-wkt';
|
|
21
|
-
|
|
22
|
-
export {isWKB, parseWKBHeader} from './lib/parse-wkb-header';
|
|
23
|
-
export type {WKBHeader} from './lib/parse-wkb-header';
|
|
24
|
-
|
|
25
|
-
export {isTWKB} from './lib/parse-twkb';
|
|
26
|
-
|
|
27
|
-
export {encodeHex, decodeHex} from './lib/utils/hex-transcoder';
|
package/src/twkb-loader.ts
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
6
|
-
import {BinaryGeometry, Geometry} from '@loaders.gl/schema';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
6
|
+
import type {BinaryGeometry, Geometry} from '@loaders.gl/schema';
|
|
7
|
+
import {convertTWKBToGeometry, isTWKB} from '@loaders.gl/gis';
|
|
8
|
+
import {VERSION} from './lib/version';
|
|
9
9
|
|
|
10
10
|
export type WKBLoaderOptions = LoaderOptions & {
|
|
11
11
|
wkb?: {
|
|
@@ -42,6 +42,6 @@ export const TWKBWorkerLoader = {
|
|
|
42
42
|
*/
|
|
43
43
|
export const TWKBLoader = {
|
|
44
44
|
...TWKBWorkerLoader,
|
|
45
|
-
parse: async (arrayBuffer: ArrayBuffer) =>
|
|
46
|
-
parseSync:
|
|
45
|
+
parse: async (arrayBuffer: ArrayBuffer) => convertTWKBToGeometry(arrayBuffer),
|
|
46
|
+
parseSync: convertTWKBToGeometry
|
|
47
47
|
} as const satisfies LoaderWithParser<BinaryGeometry | Geometry, never, WKBLoaderOptions>;
|
package/src/twkb-writer.ts
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
6
|
+
import type {Geometry} from '@loaders.gl/schema';
|
|
7
|
+
import {convertGeometryToTWKB} from '@loaders.gl/gis';
|
|
8
|
+
import {VERSION} from './lib/version';
|
|
9
9
|
|
|
10
10
|
export type TWKBWriterOptions = WriterOptions & {
|
|
11
11
|
twkb?: {
|
|
@@ -23,10 +23,11 @@ export const TWKBWriter = {
|
|
|
23
23
|
module: 'wkt',
|
|
24
24
|
version: VERSION,
|
|
25
25
|
extensions: ['twkb'],
|
|
26
|
+
mimeTypes: ['application/text'],
|
|
26
27
|
encode: async (geometry: Geometry, options?: TWKBWriterOptions) =>
|
|
27
|
-
|
|
28
|
+
convertGeometryToTWKB(geometry, options?.twkb),
|
|
28
29
|
encodeSync: (geometry: Geometry, options?: TWKBWriterOptions) =>
|
|
29
|
-
|
|
30
|
+
convertGeometryToTWKB(geometry, options?.twkb),
|
|
30
31
|
options: {
|
|
31
32
|
twkb: {
|
|
32
33
|
hasZ: false,
|
package/src/wkb-loader.ts
CHANGED
|
@@ -3,15 +3,14 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {isWKB} from './lib/parse-wkb-header';
|
|
6
|
+
import type {Geometry} from '@loaders.gl/schema';
|
|
7
|
+
import {convertWKBToGeometry, isWKB} from '@loaders.gl/gis';
|
|
8
|
+
import {VERSION} from './lib/version';
|
|
10
9
|
|
|
11
10
|
export type WKBLoaderOptions = LoaderOptions & {
|
|
12
11
|
wkb?: {
|
|
13
|
-
/**
|
|
14
|
-
shape: 'geojson-geometry'
|
|
12
|
+
/** Shape is deprecated, only geojson is supported */
|
|
13
|
+
shape: 'geojson-geometry';
|
|
15
14
|
};
|
|
16
15
|
};
|
|
17
16
|
|
|
@@ -19,7 +18,7 @@ export type WKBLoaderOptions = LoaderOptions & {
|
|
|
19
18
|
* Worker loader for WKB (Well-Known Binary)
|
|
20
19
|
*/
|
|
21
20
|
export const WKBWorkerLoader = {
|
|
22
|
-
dataType: null as unknown as Geometry
|
|
21
|
+
dataType: null as unknown as Geometry,
|
|
23
22
|
batchType: null as never,
|
|
24
23
|
name: 'WKB',
|
|
25
24
|
id: 'wkb',
|
|
@@ -33,16 +32,29 @@ export const WKBWorkerLoader = {
|
|
|
33
32
|
tests: [isWKB],
|
|
34
33
|
options: {
|
|
35
34
|
wkb: {
|
|
36
|
-
shape: '
|
|
35
|
+
shape: 'geojson-geometry'
|
|
37
36
|
}
|
|
38
37
|
}
|
|
39
|
-
} as const satisfies Loader<Geometry
|
|
38
|
+
} as const satisfies Loader<Geometry, never, WKBLoaderOptions>;
|
|
40
39
|
|
|
41
40
|
/**
|
|
42
41
|
* Loader for WKB (Well-Known Binary)
|
|
43
42
|
*/
|
|
44
43
|
export const WKBLoader = {
|
|
45
44
|
...WKBWorkerLoader,
|
|
46
|
-
parse: async (arrayBuffer: ArrayBuffer) => parseWKB(arrayBuffer),
|
|
47
|
-
parseSync: parseWKB
|
|
48
|
-
} as const satisfies LoaderWithParser<
|
|
45
|
+
parse: async (arrayBuffer: ArrayBuffer, options?) => parseWKB(arrayBuffer, options?.wkb),
|
|
46
|
+
parseSync: (arrayBuffer: ArrayBuffer, options?) => parseWKB(arrayBuffer, options?.wkb)
|
|
47
|
+
} as const satisfies LoaderWithParser<Geometry, never, WKBLoaderOptions>;
|
|
48
|
+
|
|
49
|
+
export function parseWKB(
|
|
50
|
+
arrayBuffer: ArrayBuffer,
|
|
51
|
+
options?: {shape?: 'geojson-geometry'}
|
|
52
|
+
): Geometry {
|
|
53
|
+
const shape = options?.shape || 'geojson-geometry';
|
|
54
|
+
switch (shape) {
|
|
55
|
+
case 'geojson-geometry':
|
|
56
|
+
return convertWKBToGeometry(arrayBuffer);
|
|
57
|
+
default:
|
|
58
|
+
throw new Error(shape);
|
|
59
|
+
}
|
|
60
|
+
}
|
package/src/wkb-writer.ts
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';
|
|
6
|
-
import {VERSION} from './lib/utils/version';
|
|
7
|
-
import {encodeWKB} from './lib/encode-wkb';
|
|
8
6
|
import type {Geometry, Feature} from '@loaders.gl/schema';
|
|
7
|
+
import {convertGeometryToWKB} from '@loaders.gl/gis';
|
|
8
|
+
import {VERSION} from './lib/version';
|
|
9
9
|
|
|
10
10
|
export type WKBWriterOptions = WriterOptions & {
|
|
11
11
|
wkb?: {
|
|
@@ -29,16 +29,17 @@ export const WKBWriter = {
|
|
|
29
29
|
module: 'wkt',
|
|
30
30
|
version: VERSION,
|
|
31
31
|
extensions: ['wkb'],
|
|
32
|
+
mimeTypes: ['application/wkb', 'application/octet-stream'],
|
|
32
33
|
options: {
|
|
33
34
|
wkb: {
|
|
34
35
|
hasZ: false,
|
|
35
36
|
hasM: false
|
|
36
37
|
}
|
|
37
38
|
},
|
|
38
|
-
async encode(data: Geometry | Feature, options?:
|
|
39
|
-
return
|
|
39
|
+
async encode(data: Geometry | Feature, options?: WKBWriterOptions): Promise<ArrayBuffer> {
|
|
40
|
+
return convertGeometryToWKB(data); // , options?.wkb);
|
|
40
41
|
},
|
|
41
|
-
encodeSync(data: Geometry | Feature, options?:
|
|
42
|
-
return
|
|
42
|
+
encodeSync(data: Geometry | Feature, options?: WKBWriterOptions): ArrayBuffer {
|
|
43
|
+
return convertGeometryToWKB(data); // , options?.wkb);
|
|
43
44
|
}
|
|
44
|
-
} as const satisfies WriterWithEncoder<Geometry | Feature, never,
|
|
45
|
+
} as const satisfies WriterWithEncoder<Geometry | Feature, never, WKBWriterOptions>;
|
package/src/wkt-crs-loader.ts
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
6
|
+
import type {ParseWKTCRSOptions, WKTCRS} from '@loaders.gl/gis';
|
|
7
|
+
import {parseWKTCRS} from '@loaders.gl/gis';
|
|
8
|
+
import {VERSION} from './lib/version';
|
|
9
9
|
|
|
10
10
|
export type WKTCRSLoaderOptions = LoaderOptions & {
|
|
11
11
|
'wkt-crs'?: ParseWKTCRSOptions;
|
package/src/wkt-crs-writer.ts
CHANGED
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
import
|
|
9
|
-
import type {EncodeWKTCRSOptions} from './lib/encode-wkt-crs';
|
|
10
|
-
import {encodeWKTCRS} from './lib/encode-wkt-crs';
|
|
6
|
+
import type {WKTCRS, EncodeWKTCRSOptions} from '@loaders.gl/gis';
|
|
7
|
+
import {encodeWKTCRS} from '@loaders.gl/gis';
|
|
8
|
+
import {VERSION} from './lib/version';
|
|
11
9
|
|
|
12
10
|
export type WKTCRSWriterOptions = WriterOptions & {
|
|
13
11
|
'wkt-crs'?: EncodeWKTCRSOptions;
|
package/src/wkt-loader.ts
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
6
|
+
import type {Geometry} from '@loaders.gl/schema';
|
|
7
|
+
import {isWKT, WKT_MAGIC_STRINGS, convertWKTToGeometry} from '@loaders.gl/gis';
|
|
8
|
+
import {VERSION} from './lib/version';
|
|
9
9
|
|
|
10
10
|
export type WKTLoaderOptions = LoaderOptions & {
|
|
11
11
|
/** Options for the WKTLoader */
|
|
@@ -50,6 +50,7 @@ export const WKTWorkerLoader = {
|
|
|
50
50
|
*/
|
|
51
51
|
export const WKTLoader = {
|
|
52
52
|
...WKTWorkerLoader,
|
|
53
|
-
parse: async (arrayBuffer, options?) =>
|
|
54
|
-
|
|
53
|
+
parse: async (arrayBuffer, options?) =>
|
|
54
|
+
convertWKTToGeometry(new TextDecoder().decode(arrayBuffer), options)!,
|
|
55
|
+
parseTextSync: (string: string, options?) => convertWKTToGeometry(string, options)!
|
|
55
56
|
} as const satisfies LoaderWithParser<Geometry, never, WKTLoaderOptions>;
|
package/src/wkt-writer.ts
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
6
|
+
import type {Geometry} from '@loaders.gl/schema';
|
|
7
|
+
import {convertGeometryToWKT} from '@loaders.gl/gis';
|
|
8
|
+
import {VERSION} from './lib/version';
|
|
9
9
|
|
|
10
10
|
export type WKTWriterOptions = WriterOptions & {
|
|
11
11
|
wkt?: {};
|
|
@@ -20,15 +20,18 @@ export const WKTWriter = {
|
|
|
20
20
|
module: 'wkt',
|
|
21
21
|
version: VERSION,
|
|
22
22
|
extensions: ['wkt'],
|
|
23
|
+
mimeTypes: ['application/wkt', 'text/plain'],
|
|
23
24
|
text: true,
|
|
24
|
-
encode: async (geometry: Geometry) =>
|
|
25
|
-
encodeSync:
|
|
26
|
-
encodeTextSync:
|
|
25
|
+
encode: async (geometry: Geometry) => convertGeometryToWKTSync(geometry),
|
|
26
|
+
encodeSync: convertGeometryToWKTSync,
|
|
27
|
+
encodeTextSync: convertGeometryToWKT,
|
|
27
28
|
options: {
|
|
28
29
|
wkt: {}
|
|
29
30
|
}
|
|
30
31
|
} as const satisfies WriterWithEncoder<Geometry, never, WKTWriterOptions>;
|
|
31
32
|
|
|
32
|
-
function
|
|
33
|
-
|
|
33
|
+
function convertGeometryToWKTSync(geometry: Geometry): ArrayBuffer {
|
|
34
|
+
const wktString = convertGeometryToWKT(geometry);
|
|
35
|
+
const wktTypedArray = new TextEncoder().encode(wktString);
|
|
36
|
+
return wktTypedArray.buffer;
|
|
34
37
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"encode-twkb.d.ts","sourceRoot":"","sources":["../../src/lib/encode-twkb.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAQV,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAmB5B,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAC,GACzC,WAAW,CAab"}
|