@loaders.gl/wkt 4.0.0-beta.1 → 4.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{dist.min.js → dist.dev.js} +587 -606
- package/dist/hex-wkb-loader.d.ts.map +1 -0
- package/dist/{esm/hex-wkb-loader.js → hex-wkb-loader.js} +3 -3
- package/dist/hex-wkb-loader.js.map +1 -0
- package/dist/index.cjs +1799 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/encode-twkb.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/encode-twkb.js +2 -2
- package/dist/lib/encode-twkb.js.map +1 -0
- package/dist/lib/encode-wkb.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/encode-wkb.js +3 -3
- package/dist/lib/encode-wkb.js.map +1 -0
- package/dist/lib/encode-wkt-crs.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/encode-wkt-crs.js +4 -4
- package/dist/lib/encode-wkt-crs.js.map +1 -0
- package/dist/lib/encode-wkt.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/encode-wkt.js +8 -8
- package/dist/lib/encode-wkt.js.map +1 -0
- package/dist/lib/parse-hex-wkb.d.ts.map +1 -0
- package/dist/lib/parse-hex-wkb.js.map +1 -0
- package/dist/lib/parse-twkb.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parse-twkb.js +3 -3
- package/dist/lib/parse-twkb.js.map +1 -0
- package/dist/lib/parse-wkb-header.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parse-wkb-header.js +1 -1
- package/dist/lib/parse-wkb-header.js.map +1 -0
- package/dist/lib/parse-wkb.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parse-wkb.js +2 -2
- package/dist/lib/parse-wkb.js.map +1 -0
- package/dist/lib/parse-wkt-crs.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/parse-wkt-crs.js +7 -7
- package/dist/lib/parse-wkt-crs.js.map +1 -0
- package/dist/lib/parse-wkt.d.ts.map +1 -0
- package/dist/lib/parse-wkt.js.map +1 -0
- package/dist/lib/utils/base64-encoder.d.ts.map +1 -0
- package/dist/lib/utils/base64-encoder.js.map +1 -0
- package/dist/lib/utils/binary-reader.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/utils/binary-reader.js +4 -5
- package/dist/lib/utils/binary-reader.js.map +1 -0
- package/dist/lib/utils/binary-writer.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/utils/binary-writer.js +4 -5
- package/dist/lib/utils/binary-writer.js.map +1 -0
- package/dist/lib/utils/hex-encoder.d.ts.map +1 -0
- package/dist/lib/utils/hex-encoder.js.map +1 -0
- package/dist/lib/utils/hex-transcoder.d.ts.map +1 -0
- package/dist/lib/utils/hex-transcoder.js.map +1 -0
- package/dist/lib/utils/version.d.ts.map +1 -0
- package/dist/lib/utils/version.js +2 -0
- package/dist/lib/utils/version.js.map +1 -0
- package/dist/twkb-loader.d.ts.map +1 -0
- package/dist/{esm/twkb-loader.js → twkb-loader.js} +2 -2
- package/dist/twkb-loader.js.map +1 -0
- package/dist/twkb-writer.d.ts.map +1 -0
- package/dist/{esm/twkb-writer.js → twkb-writer.js} +2 -2
- package/dist/twkb-writer.js.map +1 -0
- package/dist/wkb-loader.d.ts.map +1 -0
- package/dist/{esm/wkb-loader.js → wkb-loader.js} +3 -3
- package/dist/wkb-loader.js.map +1 -0
- package/dist/wkb-writer.d.ts.map +1 -0
- package/dist/{esm/wkb-writer.js → wkb-writer.js} +2 -2
- package/dist/wkb-writer.js.map +1 -0
- package/dist/wkt-crs-loader.d.ts.map +1 -0
- package/dist/{esm/wkt-crs-loader.js → wkt-crs-loader.js} +2 -2
- package/dist/wkt-crs-loader.js.map +1 -0
- package/dist/wkt-crs-writer.d.ts.map +1 -0
- package/dist/{esm/wkt-crs-writer.js → wkt-crs-writer.js} +2 -2
- package/dist/wkt-crs-writer.js.map +1 -0
- package/dist/wkt-loader.d.ts.map +1 -0
- package/dist/{esm/wkt-loader.js → wkt-loader.js} +3 -3
- package/dist/wkt-loader.js.map +1 -0
- package/dist/wkt-worker.js +18 -3
- package/dist/wkt-writer.d.ts.map +1 -0
- package/dist/{esm/wkt-writer.js → wkt-writer.js} +2 -2
- package/dist/wkt-writer.js.map +1 -0
- package/dist/{src/workers → workers}/wkb-worker.d.ts.map +1 -1
- package/dist/{esm/workers → workers}/wkb-worker.js +1 -1
- package/dist/workers/wkb-worker.js.map +1 -0
- package/dist/{src/workers → workers}/wkt-worker.d.ts.map +1 -1
- package/dist/{esm/workers → workers}/wkt-worker.js +1 -1
- package/dist/workers/wkt-worker.js.map +1 -0
- package/package.json +16 -8
- package/dist/es5/bundle.js +0 -6
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/hex-wkb-loader.js +0 -64
- package/dist/es5/hex-wkb-loader.js.map +0 -1
- package/dist/es5/index.js +0 -121
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/encode-twkb.js +0 -269
- package/dist/es5/lib/encode-twkb.js.map +0 -1
- package/dist/es5/lib/encode-wkb.js +0 -376
- package/dist/es5/lib/encode-wkb.js.map +0 -1
- package/dist/es5/lib/encode-wkt-crs.js +0 -32
- package/dist/es5/lib/encode-wkt-crs.js.map +0 -1
- package/dist/es5/lib/encode-wkt.js +0 -45
- package/dist/es5/lib/encode-wkt.js.map +0 -1
- package/dist/es5/lib/parse-hex-wkb.js +0 -2
- package/dist/es5/lib/parse-hex-wkb.js.map +0 -1
- package/dist/es5/lib/parse-twkb.js +0 -263
- package/dist/es5/lib/parse-twkb.js.map +0 -1
- package/dist/es5/lib/parse-wkb-header.js +0 -114
- package/dist/es5/lib/parse-wkb-header.js.map +0 -1
- package/dist/es5/lib/parse-wkb.js +0 -297
- package/dist/es5/lib/parse-wkb.js.map +0 -1
- package/dist/es5/lib/parse-wkt-crs.js +0 -106
- package/dist/es5/lib/parse-wkt-crs.js.map +0 -1
- package/dist/es5/lib/parse-wkt.js +0 -233
- package/dist/es5/lib/parse-wkt.js.map +0 -1
- package/dist/es5/lib/utils/base64-encoder.js +0 -26
- package/dist/es5/lib/utils/base64-encoder.js.map +0 -1
- package/dist/es5/lib/utils/binary-reader.js +0 -98
- package/dist/es5/lib/utils/binary-reader.js.map +0 -1
- package/dist/es5/lib/utils/binary-writer.js +0 -161
- package/dist/es5/lib/utils/binary-writer.js.map +0 -1
- package/dist/es5/lib/utils/hex-encoder.js +0 -63
- package/dist/es5/lib/utils/hex-encoder.js.map +0 -1
- package/dist/es5/lib/utils/hex-transcoder.js +0 -41
- package/dist/es5/lib/utils/hex-transcoder.js.map +0 -1
- package/dist/es5/lib/utils/version.js +0 -9
- package/dist/es5/lib/utils/version.js.map +0 -1
- package/dist/es5/twkb-loader.js +0 -53
- package/dist/es5/twkb-loader.js.map +0 -1
- package/dist/es5/twkb-writer.js +0 -40
- package/dist/es5/twkb-writer.js.map +0 -1
- package/dist/es5/wkb-loader.js +0 -54
- package/dist/es5/wkb-loader.js.map +0 -1
- package/dist/es5/wkb-writer.js +0 -24
- package/dist/es5/wkb-writer.js.map +0 -1
- package/dist/es5/wkt-crs-loader.js +0 -47
- package/dist/es5/wkt-crs-loader.js.map +0 -1
- package/dist/es5/wkt-crs-writer.js +0 -49
- package/dist/es5/wkt-crs-writer.js.map +0 -1
- package/dist/es5/wkt-loader.js +0 -55
- package/dist/es5/wkt-loader.js.map +0 -1
- package/dist/es5/wkt-writer.js +0 -21
- package/dist/es5/wkt-writer.js.map +0 -1
- package/dist/es5/workers/wkb-worker.js +0 -6
- package/dist/es5/workers/wkb-worker.js.map +0 -1
- package/dist/es5/workers/wkt-worker.js +0 -6
- package/dist/es5/workers/wkt-worker.js.map +0 -1
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/hex-wkb-loader.js.map +0 -1
- package/dist/esm/index.js +0 -14
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/encode-twkb.js.map +0 -1
- package/dist/esm/lib/encode-wkb.js.map +0 -1
- package/dist/esm/lib/encode-wkt-crs.js.map +0 -1
- package/dist/esm/lib/encode-wkt.js.map +0 -1
- package/dist/esm/lib/parse-hex-wkb.js.map +0 -1
- package/dist/esm/lib/parse-twkb.js.map +0 -1
- package/dist/esm/lib/parse-wkb-header.js.map +0 -1
- package/dist/esm/lib/parse-wkb.js.map +0 -1
- package/dist/esm/lib/parse-wkt-crs.js.map +0 -1
- package/dist/esm/lib/parse-wkt.js.map +0 -1
- package/dist/esm/lib/utils/base64-encoder.js.map +0 -1
- package/dist/esm/lib/utils/binary-reader.js.map +0 -1
- package/dist/esm/lib/utils/binary-writer.js.map +0 -1
- package/dist/esm/lib/utils/hex-encoder.js.map +0 -1
- package/dist/esm/lib/utils/hex-transcoder.js.map +0 -1
- package/dist/esm/lib/utils/version.js +0 -2
- package/dist/esm/lib/utils/version.js.map +0 -1
- package/dist/esm/twkb-loader.js.map +0 -1
- package/dist/esm/twkb-writer.js.map +0 -1
- package/dist/esm/wkb-loader.js.map +0 -1
- package/dist/esm/wkb-writer.js.map +0 -1
- package/dist/esm/wkt-crs-loader.js.map +0 -1
- package/dist/esm/wkt-crs-writer.js.map +0 -1
- package/dist/esm/wkt-loader.js.map +0 -1
- package/dist/esm/wkt-writer.js.map +0 -1
- package/dist/esm/workers/wkb-worker.js.map +0 -1
- package/dist/esm/workers/wkt-worker.js.map +0 -1
- package/dist/src/bundle.d.ts +0 -2
- package/dist/src/bundle.d.ts.map +0 -1
- package/dist/src/hex-wkb-loader.d.ts.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/lib/encode-twkb.d.ts.map +0 -1
- package/dist/src/lib/encode-wkb.d.ts.map +0 -1
- package/dist/src/lib/encode-wkt-crs.d.ts.map +0 -1
- package/dist/src/lib/encode-wkt.d.ts.map +0 -1
- package/dist/src/lib/parse-hex-wkb.d.ts.map +0 -1
- package/dist/src/lib/parse-twkb.d.ts.map +0 -1
- package/dist/src/lib/parse-wkb-header.d.ts.map +0 -1
- package/dist/src/lib/parse-wkb.d.ts.map +0 -1
- package/dist/src/lib/parse-wkt-crs.d.ts.map +0 -1
- package/dist/src/lib/parse-wkt.d.ts.map +0 -1
- package/dist/src/lib/utils/base64-encoder.d.ts.map +0 -1
- package/dist/src/lib/utils/binary-reader.d.ts.map +0 -1
- package/dist/src/lib/utils/binary-writer.d.ts.map +0 -1
- package/dist/src/lib/utils/hex-encoder.d.ts.map +0 -1
- package/dist/src/lib/utils/hex-transcoder.d.ts.map +0 -1
- package/dist/src/lib/utils/version.d.ts.map +0 -1
- package/dist/src/twkb-loader.d.ts.map +0 -1
- package/dist/src/twkb-writer.d.ts.map +0 -1
- package/dist/src/wkb-loader.d.ts.map +0 -1
- package/dist/src/wkb-writer.d.ts.map +0 -1
- package/dist/src/wkt-crs-loader.d.ts.map +0 -1
- package/dist/src/wkt-crs-writer.d.ts.map +0 -1
- package/dist/src/wkt-loader.d.ts.map +0 -1
- package/dist/src/wkt-writer.d.ts.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/bundle.ts +0 -4
- /package/dist/{src/hex-wkb-loader.d.ts → hex-wkb-loader.d.ts} +0 -0
- /package/dist/{src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{src/lib → lib}/encode-twkb.d.ts +0 -0
- /package/dist/{src/lib → lib}/encode-wkb.d.ts +0 -0
- /package/dist/{src/lib → lib}/encode-wkt-crs.d.ts +0 -0
- /package/dist/{src/lib → lib}/encode-wkt.d.ts +0 -0
- /package/dist/{src/lib → lib}/parse-hex-wkb.d.ts +0 -0
- /package/dist/{esm/lib → lib}/parse-hex-wkb.js +0 -0
- /package/dist/{src/lib → lib}/parse-twkb.d.ts +0 -0
- /package/dist/{src/lib → lib}/parse-wkb-header.d.ts +0 -0
- /package/dist/{src/lib → lib}/parse-wkb.d.ts +0 -0
- /package/dist/{src/lib → lib}/parse-wkt-crs.d.ts +0 -0
- /package/dist/{src/lib → lib}/parse-wkt.d.ts +0 -0
- /package/dist/{esm/lib → lib}/parse-wkt.js +0 -0
- /package/dist/{src/lib → lib}/utils/base64-encoder.d.ts +0 -0
- /package/dist/{esm/lib → lib}/utils/base64-encoder.js +0 -0
- /package/dist/{src/lib → lib}/utils/binary-reader.d.ts +0 -0
- /package/dist/{src/lib → lib}/utils/binary-writer.d.ts +0 -0
- /package/dist/{src/lib → lib}/utils/hex-encoder.d.ts +0 -0
- /package/dist/{esm/lib → lib}/utils/hex-encoder.js +0 -0
- /package/dist/{src/lib → lib}/utils/hex-transcoder.d.ts +0 -0
- /package/dist/{esm/lib → lib}/utils/hex-transcoder.js +0 -0
- /package/dist/{src/lib → lib}/utils/version.d.ts +0 -0
- /package/dist/{src/twkb-loader.d.ts → twkb-loader.d.ts} +0 -0
- /package/dist/{src/twkb-writer.d.ts → twkb-writer.d.ts} +0 -0
- /package/dist/{src/wkb-loader.d.ts → wkb-loader.d.ts} +0 -0
- /package/dist/{src/wkb-writer.d.ts → wkb-writer.d.ts} +0 -0
- /package/dist/{src/wkt-crs-loader.d.ts → wkt-crs-loader.d.ts} +0 -0
- /package/dist/{src/wkt-crs-writer.d.ts → wkt-crs-writer.d.ts} +0 -0
- /package/dist/{src/wkt-loader.d.ts → wkt-loader.d.ts} +0 -0
- /package/dist/{src/wkt-writer.d.ts → wkt-writer.d.ts} +0 -0
- /package/dist/{src/workers → workers}/wkb-worker.d.ts +0 -0
- /package/dist/{src/workers → workers}/wkt-worker.d.ts +0 -0
|
@@ -1,26 +1,54 @@
|
|
|
1
|
-
(()
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
+
if (typeof exports === 'object' && typeof module === 'object')
|
|
3
|
+
module.exports = factory();
|
|
4
|
+
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
|
+
else if (typeof exports === 'object') exports['loader'] = factory();
|
|
6
|
+
else root['loader'] = factory();})(globalThis, function () {
|
|
7
|
+
"use strict";
|
|
8
|
+
var __exports__ = (() => {
|
|
2
9
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
var __commonJS = (cb, mod) => function __require() {
|
|
8
|
-
return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
9
|
-
};
|
|
10
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
11
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
12
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
13
|
var __export = (target, all) => {
|
|
11
|
-
__markAsModule(target);
|
|
12
14
|
for (var name in all)
|
|
13
15
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
14
16
|
};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
17
|
+
var __copyProps = (to, from, except, desc) => {
|
|
18
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
19
|
+
for (let key of __getOwnPropNames(from))
|
|
20
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
21
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
22
|
}
|
|
23
|
+
return to;
|
|
24
|
+
};
|
|
25
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
26
|
+
|
|
27
|
+
// src/index.ts
|
|
28
|
+
var src_exports = {};
|
|
29
|
+
__export(src_exports, {
|
|
30
|
+
HexWKBLoader: () => HexWKBLoader,
|
|
31
|
+
TWKBLoader: () => TWKBLoader,
|
|
32
|
+
TWKBWriter: () => TWKBWriter,
|
|
33
|
+
WKBLoader: () => WKBLoader,
|
|
34
|
+
WKBWorkerLoader: () => WKBWorkerLoader,
|
|
35
|
+
WKBWriter: () => WKBWriter,
|
|
36
|
+
WKTCRSLoader: () => WKTCRSLoader,
|
|
37
|
+
WKTCRSWriter: () => WKTCRSWriter,
|
|
38
|
+
WKTLoader: () => WKTLoader,
|
|
39
|
+
WKTWorkerLoader: () => WKTWorkerLoader,
|
|
40
|
+
WKTWriter: () => WKTWriter,
|
|
41
|
+
decodeHex: () => decodeHex,
|
|
42
|
+
encodeHex: () => encodeHex,
|
|
43
|
+
isTWKB: () => isTWKB,
|
|
44
|
+
isWKB: () => isWKB,
|
|
45
|
+
isWKT: () => isWKT,
|
|
46
|
+
parseWKBHeader: () => parseWKBHeader
|
|
22
47
|
});
|
|
23
48
|
|
|
49
|
+
// src/lib/utils/version.ts
|
|
50
|
+
var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
51
|
+
|
|
24
52
|
// src/lib/parse-wkt-crs.ts
|
|
25
53
|
function parseWKTCRS(wkt, options) {
|
|
26
54
|
if (options?.debug) {
|
|
@@ -119,35 +147,24 @@
|
|
|
119
147
|
});
|
|
120
148
|
return data;
|
|
121
149
|
}
|
|
122
|
-
var init_parse_wkt_crs = __esm({
|
|
123
|
-
"src/lib/parse-wkt-crs.ts"() {
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
150
|
|
|
127
151
|
// src/wkt-crs-loader.ts
|
|
128
|
-
var WKTCRSLoader
|
|
129
|
-
|
|
130
|
-
"
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
"wkt-crs": {}
|
|
145
|
-
},
|
|
146
|
-
parse: async (arrayBuffer, options) => parseWKTCRS(new TextDecoder().decode(arrayBuffer), options?.["wkt-crs"]),
|
|
147
|
-
parseTextSync: (string, options) => parseWKTCRS(string, options?.["wkt-crs"])
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
});
|
|
152
|
+
var WKTCRSLoader = {
|
|
153
|
+
name: "WKT CRS (Well-Known Text Coordinate Reference System)",
|
|
154
|
+
id: "wkt-crs",
|
|
155
|
+
module: "wkt-crs",
|
|
156
|
+
version: VERSION,
|
|
157
|
+
worker: true,
|
|
158
|
+
extensions: [],
|
|
159
|
+
mimeTypes: ["text/plain"],
|
|
160
|
+
category: "json",
|
|
161
|
+
text: true,
|
|
162
|
+
options: {
|
|
163
|
+
"wkt-crs": {}
|
|
164
|
+
},
|
|
165
|
+
parse: async (arrayBuffer, options) => parseWKTCRS(new TextDecoder().decode(arrayBuffer), options?.["wkt-crs"]),
|
|
166
|
+
parseTextSync: (string, options) => parseWKTCRS(string, options?.["wkt-crs"])
|
|
167
|
+
};
|
|
151
168
|
|
|
152
169
|
// src/lib/encode-wkt-crs.ts
|
|
153
170
|
function encodeWKTCRS(wkt, options) {
|
|
@@ -170,37 +187,39 @@
|
|
|
170
187
|
}).join(",")}]`;
|
|
171
188
|
return str;
|
|
172
189
|
}
|
|
173
|
-
var init_encode_wkt_crs = __esm({
|
|
174
|
-
"src/lib/encode-wkt-crs.ts"() {
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
190
|
|
|
178
191
|
// src/wkt-crs-writer.ts
|
|
179
|
-
var WKTCRSWriter
|
|
180
|
-
|
|
181
|
-
"
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
encode: async (wktcrs, options) => new TextEncoder().encode(encodeWKTCRS(wktcrs, options?.["wkt-crs"])),
|
|
197
|
-
encodeSync: (wktcrs, options) => new TextEncoder().encode(encodeWKTCRS(wktcrs, options?.["wkt-crs"])),
|
|
198
|
-
encodeTextSync: (wktcrs, options) => encodeWKTCRS(wktcrs, options?.["wkt-crs"])
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
});
|
|
192
|
+
var WKTCRSWriter = {
|
|
193
|
+
name: "WKT CRS (Well-Known Text Coordinate Reference System)",
|
|
194
|
+
id: "wkt-crs",
|
|
195
|
+
module: "wkt-crs",
|
|
196
|
+
version: VERSION,
|
|
197
|
+
worker: true,
|
|
198
|
+
extensions: [],
|
|
199
|
+
mimeTypes: ["text/plain"],
|
|
200
|
+
// category: 'json',
|
|
201
|
+
text: true,
|
|
202
|
+
options: {
|
|
203
|
+
"wkt-crs": {}
|
|
204
|
+
},
|
|
205
|
+
encode: async (wktcrs, options) => new TextEncoder().encode(encodeWKTCRS(wktcrs, options?.["wkt-crs"])),
|
|
206
|
+
encodeSync: (wktcrs, options) => new TextEncoder().encode(encodeWKTCRS(wktcrs, options?.["wkt-crs"])),
|
|
207
|
+
encodeTextSync: (wktcrs, options) => encodeWKTCRS(wktcrs, options?.["wkt-crs"])
|
|
208
|
+
};
|
|
202
209
|
|
|
203
210
|
// src/lib/parse-wkt.ts
|
|
211
|
+
var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
|
|
212
|
+
var tuples = new RegExp("^" + numberRegexp.source + "(\\s" + numberRegexp.source + "){1,}");
|
|
213
|
+
var WKT_MAGIC_STRINGS = [
|
|
214
|
+
"POINT(",
|
|
215
|
+
"LINESTRING(",
|
|
216
|
+
"POLYGON(",
|
|
217
|
+
"MULTIPOINT(",
|
|
218
|
+
"MULTILINESTRING(",
|
|
219
|
+
"MULTIPOLYGON(",
|
|
220
|
+
"GEOMETRYCOLLECTION("
|
|
221
|
+
// We only support this "geojson" subset of the OGC simple features standard
|
|
222
|
+
];
|
|
204
223
|
function isWKT(input) {
|
|
205
224
|
return WKT_MAGIC_STRINGS.some((magicString) => input.startsWith(magicString));
|
|
206
225
|
}
|
|
@@ -211,7 +230,11 @@
|
|
|
211
230
|
const parts = input.split(";");
|
|
212
231
|
let _ = parts.pop();
|
|
213
232
|
const srid = (parts.shift() || "").split("=").pop();
|
|
214
|
-
const state = {
|
|
233
|
+
const state = {
|
|
234
|
+
parts,
|
|
235
|
+
_,
|
|
236
|
+
i: 0
|
|
237
|
+
};
|
|
215
238
|
const geometry = parseGeometry(state);
|
|
216
239
|
return options?.wkt?.crs ? addCRS(geometry, srid) : geometry;
|
|
217
240
|
}
|
|
@@ -299,6 +322,7 @@
|
|
|
299
322
|
white(state);
|
|
300
323
|
return {
|
|
301
324
|
type: "MultiLineString",
|
|
325
|
+
// @ts-expect-error
|
|
302
326
|
coordinates: c
|
|
303
327
|
};
|
|
304
328
|
}
|
|
@@ -313,6 +337,7 @@
|
|
|
313
337
|
}
|
|
314
338
|
return {
|
|
315
339
|
type: "Polygon",
|
|
340
|
+
// @ts-expect-error
|
|
316
341
|
coordinates: c
|
|
317
342
|
};
|
|
318
343
|
}
|
|
@@ -327,6 +352,7 @@
|
|
|
327
352
|
}
|
|
328
353
|
return {
|
|
329
354
|
type: "MultiPolygon",
|
|
355
|
+
// @ts-expect-error
|
|
330
356
|
coordinates: c
|
|
331
357
|
};
|
|
332
358
|
}
|
|
@@ -423,55 +449,31 @@
|
|
|
423
449
|
function white(state) {
|
|
424
450
|
$(/^\s*/, state);
|
|
425
451
|
}
|
|
426
|
-
var numberRegexp, tuples, WKT_MAGIC_STRINGS;
|
|
427
|
-
var init_parse_wkt = __esm({
|
|
428
|
-
"src/lib/parse-wkt.ts"() {
|
|
429
|
-
numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
|
|
430
|
-
tuples = new RegExp("^" + numberRegexp.source + "(\\s" + numberRegexp.source + "){1,}");
|
|
431
|
-
WKT_MAGIC_STRINGS = [
|
|
432
|
-
"POINT(",
|
|
433
|
-
"LINESTRING(",
|
|
434
|
-
"POLYGON(",
|
|
435
|
-
"MULTIPOINT(",
|
|
436
|
-
"MULTILINESTRING(",
|
|
437
|
-
"MULTIPOLYGON(",
|
|
438
|
-
"GEOMETRYCOLLECTION("
|
|
439
|
-
];
|
|
440
|
-
}
|
|
441
|
-
});
|
|
442
452
|
|
|
443
453
|
// src/wkt-loader.ts
|
|
444
|
-
var WKTWorkerLoader
|
|
445
|
-
|
|
446
|
-
"
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
tests: WKT_MAGIC_STRINGS,
|
|
461
|
-
testText: isWKT,
|
|
462
|
-
options: {
|
|
463
|
-
wkt: {
|
|
464
|
-
crs: true
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
};
|
|
468
|
-
WKTLoader = {
|
|
469
|
-
...WKTWorkerLoader,
|
|
470
|
-
parse: async (arrayBuffer, options) => parseWKT(new TextDecoder().decode(arrayBuffer), options),
|
|
471
|
-
parseTextSync: parseWKT
|
|
472
|
-
};
|
|
454
|
+
var WKTWorkerLoader = {
|
|
455
|
+
name: "WKT (Well-Known Text)",
|
|
456
|
+
id: "wkt",
|
|
457
|
+
module: "wkt",
|
|
458
|
+
version: VERSION,
|
|
459
|
+
worker: true,
|
|
460
|
+
extensions: ["wkt"],
|
|
461
|
+
mimeTypes: ["text/plain"],
|
|
462
|
+
category: "geometry",
|
|
463
|
+
text: true,
|
|
464
|
+
tests: WKT_MAGIC_STRINGS,
|
|
465
|
+
testText: isWKT,
|
|
466
|
+
options: {
|
|
467
|
+
wkt: {
|
|
468
|
+
crs: true
|
|
469
|
+
}
|
|
473
470
|
}
|
|
474
|
-
}
|
|
471
|
+
};
|
|
472
|
+
var WKTLoader = {
|
|
473
|
+
...WKTWorkerLoader,
|
|
474
|
+
parse: async (arrayBuffer, options) => parseWKT(new TextDecoder().decode(arrayBuffer), options),
|
|
475
|
+
parseTextSync: parseWKT
|
|
476
|
+
};
|
|
475
477
|
|
|
476
478
|
// src/lib/encode-wkt.ts
|
|
477
479
|
function encodeWKT(geometry) {
|
|
@@ -512,30 +514,20 @@
|
|
|
512
514
|
function wrapParens(s) {
|
|
513
515
|
return `(${s})`;
|
|
514
516
|
}
|
|
515
|
-
var init_encode_wkt = __esm({
|
|
516
|
-
"src/lib/encode-wkt.ts"() {
|
|
517
|
-
}
|
|
518
|
-
});
|
|
519
517
|
|
|
520
518
|
// src/wkt-writer.ts
|
|
521
|
-
var WKTWriter
|
|
522
|
-
|
|
523
|
-
"
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
extensions: ["wkt"],
|
|
532
|
-
encodeSync: encodeWKT,
|
|
533
|
-
options: {
|
|
534
|
-
wkt: {}
|
|
535
|
-
}
|
|
536
|
-
};
|
|
519
|
+
var WKTWriter = {
|
|
520
|
+
name: "WKT (Well Known Text)",
|
|
521
|
+
id: "wkt",
|
|
522
|
+
module: "wkt",
|
|
523
|
+
version: VERSION,
|
|
524
|
+
extensions: ["wkt"],
|
|
525
|
+
// @ts-expect-error
|
|
526
|
+
encodeSync: encodeWKT,
|
|
527
|
+
options: {
|
|
528
|
+
wkt: {}
|
|
537
529
|
}
|
|
538
|
-
}
|
|
530
|
+
};
|
|
539
531
|
|
|
540
532
|
// ../gis/src/lib/binary-to-geojson.ts
|
|
541
533
|
function binaryToGeometry(data, startIndex, endIndex) {
|
|
@@ -552,7 +544,9 @@
|
|
|
552
544
|
}
|
|
553
545
|
}
|
|
554
546
|
function polygonToGeoJson(data, startIndex = -Infinity, endIndex = Infinity) {
|
|
555
|
-
const {
|
|
547
|
+
const {
|
|
548
|
+
positions
|
|
549
|
+
} = data;
|
|
556
550
|
const polygonIndices = data.polygonIndices.value.filter((x) => x >= startIndex && x <= endIndex);
|
|
557
551
|
const primitivePolygonIndices = data.primitivePolygonIndices.value.filter((x) => x >= startIndex && x <= endIndex);
|
|
558
552
|
const multi = polygonIndices.length > 2;
|
|
@@ -564,7 +558,10 @@
|
|
|
564
558
|
const ringCoordinates = ringToGeoJson(positions, startRingIndex, endRingIndex);
|
|
565
559
|
coordinates2.push(ringCoordinates);
|
|
566
560
|
}
|
|
567
|
-
return {
|
|
561
|
+
return {
|
|
562
|
+
type: "Polygon",
|
|
563
|
+
coordinates: coordinates2
|
|
564
|
+
};
|
|
568
565
|
}
|
|
569
566
|
const coordinates = [];
|
|
570
567
|
for (let i = 0; i < polygonIndices.length - 1; i++) {
|
|
@@ -573,31 +570,50 @@
|
|
|
573
570
|
const polygonCoordinates = polygonToGeoJson(data, startPolygonIndex, endPolygonIndex).coordinates;
|
|
574
571
|
coordinates.push(polygonCoordinates);
|
|
575
572
|
}
|
|
576
|
-
return {
|
|
573
|
+
return {
|
|
574
|
+
type: "MultiPolygon",
|
|
575
|
+
coordinates
|
|
576
|
+
};
|
|
577
577
|
}
|
|
578
578
|
function lineStringToGeoJson(data, startIndex = -Infinity, endIndex = Infinity) {
|
|
579
|
-
const {
|
|
579
|
+
const {
|
|
580
|
+
positions
|
|
581
|
+
} = data;
|
|
580
582
|
const pathIndices = data.pathIndices.value.filter((x) => x >= startIndex && x <= endIndex);
|
|
581
583
|
const multi = pathIndices.length > 2;
|
|
582
584
|
if (!multi) {
|
|
583
585
|
const coordinates2 = ringToGeoJson(positions, pathIndices[0], pathIndices[1]);
|
|
584
|
-
return {
|
|
586
|
+
return {
|
|
587
|
+
type: "LineString",
|
|
588
|
+
coordinates: coordinates2
|
|
589
|
+
};
|
|
585
590
|
}
|
|
586
591
|
const coordinates = [];
|
|
587
592
|
for (let i = 0; i < pathIndices.length - 1; i++) {
|
|
588
593
|
const ringCoordinates = ringToGeoJson(positions, pathIndices[i], pathIndices[i + 1]);
|
|
589
594
|
coordinates.push(ringCoordinates);
|
|
590
595
|
}
|
|
591
|
-
return {
|
|
596
|
+
return {
|
|
597
|
+
type: "MultiLineString",
|
|
598
|
+
coordinates
|
|
599
|
+
};
|
|
592
600
|
}
|
|
593
601
|
function pointToGeoJson(data, startIndex, endIndex) {
|
|
594
|
-
const {
|
|
602
|
+
const {
|
|
603
|
+
positions
|
|
604
|
+
} = data;
|
|
595
605
|
const coordinates = ringToGeoJson(positions, startIndex, endIndex);
|
|
596
606
|
const multi = coordinates.length > 1;
|
|
597
607
|
if (multi) {
|
|
598
|
-
return {
|
|
608
|
+
return {
|
|
609
|
+
type: "MultiPoint",
|
|
610
|
+
coordinates
|
|
611
|
+
};
|
|
599
612
|
}
|
|
600
|
-
return {
|
|
613
|
+
return {
|
|
614
|
+
type: "Point",
|
|
615
|
+
coordinates: coordinates[0]
|
|
616
|
+
};
|
|
601
617
|
}
|
|
602
618
|
function ringToGeoJson(positions, startIndex, endIndex) {
|
|
603
619
|
startIndex = startIndex || 0;
|
|
@@ -612,19 +628,22 @@
|
|
|
612
628
|
}
|
|
613
629
|
return ringCoordinates;
|
|
614
630
|
}
|
|
615
|
-
var init_binary_to_geojson = __esm({
|
|
616
|
-
"../gis/src/lib/binary-to-geojson.ts"() {
|
|
617
|
-
}
|
|
618
|
-
});
|
|
619
|
-
|
|
620
|
-
// ../gis/src/index.ts
|
|
621
|
-
var init_src = __esm({
|
|
622
|
-
"../gis/src/index.ts"() {
|
|
623
|
-
init_binary_to_geojson();
|
|
624
|
-
}
|
|
625
|
-
});
|
|
626
631
|
|
|
627
632
|
// src/lib/parse-wkb-header.ts
|
|
633
|
+
var EWKB_FLAG_Z = 2147483648;
|
|
634
|
+
var EWKB_FLAG_M = 1073741824;
|
|
635
|
+
var EWKB_FLAG_SRID = 536870912;
|
|
636
|
+
var MAX_SRID = 1e4;
|
|
637
|
+
var WKBGeometryType = /* @__PURE__ */ function(WKBGeometryType2) {
|
|
638
|
+
WKBGeometryType2[WKBGeometryType2["Point"] = 1] = "Point";
|
|
639
|
+
WKBGeometryType2[WKBGeometryType2["LineString"] = 2] = "LineString";
|
|
640
|
+
WKBGeometryType2[WKBGeometryType2["Polygon"] = 3] = "Polygon";
|
|
641
|
+
WKBGeometryType2[WKBGeometryType2["MultiPoint"] = 4] = "MultiPoint";
|
|
642
|
+
WKBGeometryType2[WKBGeometryType2["MultiLineString"] = 5] = "MultiLineString";
|
|
643
|
+
WKBGeometryType2[WKBGeometryType2["MultiPolygon"] = 6] = "MultiPolygon";
|
|
644
|
+
WKBGeometryType2[WKBGeometryType2["GeometryCollection"] = 7] = "GeometryCollection";
|
|
645
|
+
return WKBGeometryType2;
|
|
646
|
+
}({});
|
|
628
647
|
function isWKB(arrayBuffer) {
|
|
629
648
|
const dataView = new DataView(arrayBuffer);
|
|
630
649
|
let byteOffset = 0;
|
|
@@ -715,24 +734,6 @@
|
|
|
715
734
|
}
|
|
716
735
|
return wkbHeader;
|
|
717
736
|
}
|
|
718
|
-
var EWKB_FLAG_Z, EWKB_FLAG_M, EWKB_FLAG_SRID, MAX_SRID, WKBGeometryType;
|
|
719
|
-
var init_parse_wkb_header = __esm({
|
|
720
|
-
"src/lib/parse-wkb-header.ts"() {
|
|
721
|
-
EWKB_FLAG_Z = 2147483648;
|
|
722
|
-
EWKB_FLAG_M = 1073741824;
|
|
723
|
-
EWKB_FLAG_SRID = 536870912;
|
|
724
|
-
MAX_SRID = 1e4;
|
|
725
|
-
(function(WKBGeometryType2) {
|
|
726
|
-
WKBGeometryType2[WKBGeometryType2["Point"] = 1] = "Point";
|
|
727
|
-
WKBGeometryType2[WKBGeometryType2["LineString"] = 2] = "LineString";
|
|
728
|
-
WKBGeometryType2[WKBGeometryType2["Polygon"] = 3] = "Polygon";
|
|
729
|
-
WKBGeometryType2[WKBGeometryType2["MultiPoint"] = 4] = "MultiPoint";
|
|
730
|
-
WKBGeometryType2[WKBGeometryType2["MultiLineString"] = 5] = "MultiLineString";
|
|
731
|
-
WKBGeometryType2[WKBGeometryType2["MultiPolygon"] = 6] = "MultiPolygon";
|
|
732
|
-
WKBGeometryType2[WKBGeometryType2["GeometryCollection"] = 7] = "GeometryCollection";
|
|
733
|
-
})(WKBGeometryType || (WKBGeometryType = {}));
|
|
734
|
-
}
|
|
735
|
-
});
|
|
736
737
|
|
|
737
738
|
// src/lib/parse-wkb.ts
|
|
738
739
|
function parseWKB(arrayBuffer, options) {
|
|
@@ -750,7 +751,11 @@
|
|
|
750
751
|
function parseWKBToBinary(arrayBuffer, options) {
|
|
751
752
|
const dataView = new DataView(arrayBuffer);
|
|
752
753
|
const wkbHeader = parseWKBHeader(dataView);
|
|
753
|
-
const {
|
|
754
|
+
const {
|
|
755
|
+
geometryType,
|
|
756
|
+
dimensions,
|
|
757
|
+
littleEndian
|
|
758
|
+
} = wkbHeader;
|
|
754
759
|
const offset = wkbHeader.byteOffset;
|
|
755
760
|
switch (geometryType) {
|
|
756
761
|
case WKBGeometryType.Point:
|
|
@@ -785,7 +790,13 @@
|
|
|
785
790
|
offset += 8;
|
|
786
791
|
}
|
|
787
792
|
return {
|
|
788
|
-
geometry: {
|
|
793
|
+
geometry: {
|
|
794
|
+
type: "Point",
|
|
795
|
+
positions: {
|
|
796
|
+
value: positions,
|
|
797
|
+
size: dimension
|
|
798
|
+
}
|
|
799
|
+
},
|
|
789
800
|
offset
|
|
790
801
|
};
|
|
791
802
|
}
|
|
@@ -804,19 +815,28 @@
|
|
|
804
815
|
return {
|
|
805
816
|
geometry: {
|
|
806
817
|
type: "LineString",
|
|
807
|
-
positions: {
|
|
808
|
-
|
|
818
|
+
positions: {
|
|
819
|
+
value: positions,
|
|
820
|
+
size: dimension
|
|
821
|
+
},
|
|
822
|
+
pathIndices: {
|
|
823
|
+
value: new Uint16Array(pathIndices),
|
|
824
|
+
size: 1
|
|
825
|
+
}
|
|
809
826
|
},
|
|
810
827
|
offset
|
|
811
828
|
};
|
|
812
829
|
}
|
|
830
|
+
var cumulativeSum = (sum) => (value) => sum += value;
|
|
813
831
|
function parsePolygon2(dataView, offset, dimension, littleEndian) {
|
|
814
832
|
const nRings = dataView.getUint32(offset, littleEndian);
|
|
815
833
|
offset += 4;
|
|
816
834
|
const rings = [];
|
|
817
835
|
for (let i = 0; i < nRings; i++) {
|
|
818
836
|
const parsed = parseLineString2(dataView, offset, dimension, littleEndian);
|
|
819
|
-
const {
|
|
837
|
+
const {
|
|
838
|
+
positions
|
|
839
|
+
} = parsed.geometry;
|
|
820
840
|
offset = parsed.offset;
|
|
821
841
|
rings.push(positions.value);
|
|
822
842
|
}
|
|
@@ -830,12 +850,18 @@
|
|
|
830
850
|
return {
|
|
831
851
|
geometry: {
|
|
832
852
|
type: "Polygon",
|
|
833
|
-
positions: {
|
|
853
|
+
positions: {
|
|
854
|
+
value: concatenatedPositions,
|
|
855
|
+
size: dimension
|
|
856
|
+
},
|
|
834
857
|
polygonIndices: {
|
|
835
858
|
value: new Uint16Array(polygonIndices),
|
|
836
859
|
size: 1
|
|
837
860
|
},
|
|
838
|
-
primitivePolygonIndices: {
|
|
861
|
+
primitivePolygonIndices: {
|
|
862
|
+
value: new Uint16Array(primitivePolygonIndices),
|
|
863
|
+
size: 1
|
|
864
|
+
}
|
|
839
865
|
},
|
|
840
866
|
offset
|
|
841
867
|
};
|
|
@@ -896,7 +922,10 @@
|
|
|
896
922
|
const concatenatedPositions = new Float64Array(concatTypedArrays(positions).buffer);
|
|
897
923
|
return {
|
|
898
924
|
type: "Point",
|
|
899
|
-
positions: {
|
|
925
|
+
positions: {
|
|
926
|
+
value: concatenatedPositions,
|
|
927
|
+
size: dimension
|
|
928
|
+
}
|
|
900
929
|
};
|
|
901
930
|
}
|
|
902
931
|
function concatenateBinaryLineGeometries(binaryLineGeometries, dimension) {
|
|
@@ -906,15 +935,24 @@
|
|
|
906
935
|
pathIndices.unshift(0);
|
|
907
936
|
return {
|
|
908
937
|
type: "LineString",
|
|
909
|
-
positions: {
|
|
910
|
-
|
|
938
|
+
positions: {
|
|
939
|
+
value: concatenatedPositions,
|
|
940
|
+
size: dimension
|
|
941
|
+
},
|
|
942
|
+
pathIndices: {
|
|
943
|
+
value: new Uint16Array(pathIndices),
|
|
944
|
+
size: 1
|
|
945
|
+
}
|
|
911
946
|
};
|
|
912
947
|
}
|
|
913
948
|
function concatenateBinaryPolygonGeometries(binaryPolygonGeometries, dimension) {
|
|
914
949
|
const polygons = [];
|
|
915
950
|
const primitivePolygons = [];
|
|
916
951
|
for (const binaryPolygon of binaryPolygonGeometries) {
|
|
917
|
-
const {
|
|
952
|
+
const {
|
|
953
|
+
positions,
|
|
954
|
+
primitivePolygonIndices: primitivePolygonIndices2
|
|
955
|
+
} = binaryPolygon;
|
|
918
956
|
polygons.push(positions.value);
|
|
919
957
|
primitivePolygons.push(primitivePolygonIndices2.value);
|
|
920
958
|
}
|
|
@@ -927,9 +965,18 @@
|
|
|
927
965
|
}
|
|
928
966
|
return {
|
|
929
967
|
type: "Polygon",
|
|
930
|
-
positions: {
|
|
931
|
-
|
|
932
|
-
|
|
968
|
+
positions: {
|
|
969
|
+
value: concatenatedPositions,
|
|
970
|
+
size: dimension
|
|
971
|
+
},
|
|
972
|
+
polygonIndices: {
|
|
973
|
+
value: new Uint16Array(polygonIndices),
|
|
974
|
+
size: 1
|
|
975
|
+
},
|
|
976
|
+
primitivePolygonIndices: {
|
|
977
|
+
value: new Uint16Array(primitivePolygonIndices),
|
|
978
|
+
size: 1
|
|
979
|
+
}
|
|
933
980
|
};
|
|
934
981
|
}
|
|
935
982
|
function concatTypedArrays(arrays) {
|
|
@@ -948,164 +995,157 @@
|
|
|
948
995
|
}
|
|
949
996
|
return buffer;
|
|
950
997
|
}
|
|
951
|
-
var cumulativeSum;
|
|
952
|
-
var init_parse_wkb = __esm({
|
|
953
|
-
"src/lib/parse-wkb.ts"() {
|
|
954
|
-
init_src();
|
|
955
|
-
init_parse_wkb_header();
|
|
956
|
-
cumulativeSum = (sum) => (value) => sum += value;
|
|
957
|
-
}
|
|
958
|
-
});
|
|
959
998
|
|
|
960
999
|
// src/wkb-loader.ts
|
|
961
|
-
var WKBWorkerLoader
|
|
962
|
-
|
|
963
|
-
"
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
tests: [isWKB],
|
|
977
|
-
options: {
|
|
978
|
-
wkb: {
|
|
979
|
-
shape: "binary-geometry"
|
|
980
|
-
}
|
|
981
|
-
}
|
|
982
|
-
};
|
|
983
|
-
WKBLoader = {
|
|
984
|
-
...WKBWorkerLoader,
|
|
985
|
-
parse: async (arrayBuffer) => parseWKB(arrayBuffer),
|
|
986
|
-
parseSync: parseWKB
|
|
987
|
-
};
|
|
1000
|
+
var WKBWorkerLoader = {
|
|
1001
|
+
name: "WKB",
|
|
1002
|
+
id: "wkb",
|
|
1003
|
+
module: "wkt",
|
|
1004
|
+
version: VERSION,
|
|
1005
|
+
worker: true,
|
|
1006
|
+
category: "geometry",
|
|
1007
|
+
extensions: ["wkb"],
|
|
1008
|
+
mimeTypes: [],
|
|
1009
|
+
// TODO can we define static, serializable tests, eg. some binary strings?
|
|
1010
|
+
tests: [isWKB],
|
|
1011
|
+
options: {
|
|
1012
|
+
wkb: {
|
|
1013
|
+
shape: "binary-geometry"
|
|
1014
|
+
}
|
|
988
1015
|
}
|
|
989
|
-
}
|
|
1016
|
+
};
|
|
1017
|
+
var WKBLoader = {
|
|
1018
|
+
...WKBWorkerLoader,
|
|
1019
|
+
parse: async (arrayBuffer) => parseWKB(arrayBuffer),
|
|
1020
|
+
parseSync: parseWKB
|
|
1021
|
+
};
|
|
990
1022
|
|
|
991
1023
|
// src/lib/utils/binary-writer.ts
|
|
992
|
-
var LE
|
|
993
|
-
var
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
}
|
|
1102
|
-
}
|
|
1024
|
+
var LE = true;
|
|
1025
|
+
var BE = false;
|
|
1026
|
+
var BinaryWriter = class {
|
|
1027
|
+
byteOffset = 0;
|
|
1028
|
+
allowResize = false;
|
|
1029
|
+
constructor(size, allowResize) {
|
|
1030
|
+
this.arrayBuffer = new ArrayBuffer(size);
|
|
1031
|
+
this.dataView = new DataView(this.arrayBuffer);
|
|
1032
|
+
this.byteOffset = 0;
|
|
1033
|
+
this.allowResize = allowResize || false;
|
|
1034
|
+
}
|
|
1035
|
+
writeUInt8(value) {
|
|
1036
|
+
this._ensureSize(1);
|
|
1037
|
+
this.dataView.setUint8(this.byteOffset, value);
|
|
1038
|
+
this.byteOffset += 1;
|
|
1039
|
+
}
|
|
1040
|
+
writeUInt16LE(value) {
|
|
1041
|
+
this._ensureSize(2);
|
|
1042
|
+
this.dataView.setUint16(this.byteOffset, value, LE);
|
|
1043
|
+
this.byteOffset += 2;
|
|
1044
|
+
}
|
|
1045
|
+
writeUInt16BE(value) {
|
|
1046
|
+
this._ensureSize(2);
|
|
1047
|
+
this.dataView.setUint16(this.byteOffset, value, BE);
|
|
1048
|
+
this.byteOffset += 2;
|
|
1049
|
+
}
|
|
1050
|
+
writeUInt32LE(value) {
|
|
1051
|
+
this._ensureSize(4);
|
|
1052
|
+
this.dataView.setUint32(this.byteOffset, value, LE);
|
|
1053
|
+
this.byteOffset += 4;
|
|
1054
|
+
}
|
|
1055
|
+
writeUInt32BE(value) {
|
|
1056
|
+
this._ensureSize(4);
|
|
1057
|
+
this.dataView.setUint32(this.byteOffset, value, BE);
|
|
1058
|
+
this.byteOffset += 4;
|
|
1059
|
+
}
|
|
1060
|
+
writeInt8(value) {
|
|
1061
|
+
this._ensureSize(1);
|
|
1062
|
+
this.dataView.setInt8(this.byteOffset, value);
|
|
1063
|
+
this.byteOffset += 1;
|
|
1064
|
+
}
|
|
1065
|
+
writeInt16LE(value) {
|
|
1066
|
+
this._ensureSize(2);
|
|
1067
|
+
this.dataView.setInt16(this.byteOffset, value, LE);
|
|
1068
|
+
this.byteOffset += 2;
|
|
1069
|
+
}
|
|
1070
|
+
writeInt16BE(value) {
|
|
1071
|
+
this._ensureSize(2);
|
|
1072
|
+
this.dataView.setInt16(this.byteOffset, value, BE);
|
|
1073
|
+
this.byteOffset += 2;
|
|
1074
|
+
}
|
|
1075
|
+
writeInt32LE(value) {
|
|
1076
|
+
this._ensureSize(4);
|
|
1077
|
+
this.dataView.setInt32(this.byteOffset, value, LE);
|
|
1078
|
+
this.byteOffset += 4;
|
|
1079
|
+
}
|
|
1080
|
+
writeInt32BE(value) {
|
|
1081
|
+
this._ensureSize(4);
|
|
1082
|
+
this.dataView.setInt32(this.byteOffset, value, BE);
|
|
1083
|
+
this.byteOffset += 4;
|
|
1084
|
+
}
|
|
1085
|
+
writeFloatLE(value) {
|
|
1086
|
+
this._ensureSize(4);
|
|
1087
|
+
this.dataView.setFloat32(this.byteOffset, value, LE);
|
|
1088
|
+
this.byteOffset += 4;
|
|
1089
|
+
}
|
|
1090
|
+
writeFloatBE(value) {
|
|
1091
|
+
this._ensureSize(4);
|
|
1092
|
+
this.dataView.setFloat32(this.byteOffset, value, BE);
|
|
1093
|
+
this.byteOffset += 4;
|
|
1094
|
+
}
|
|
1095
|
+
writeDoubleLE(value) {
|
|
1096
|
+
this._ensureSize(8);
|
|
1097
|
+
this.dataView.setFloat64(this.byteOffset, value, LE);
|
|
1098
|
+
this.byteOffset += 8;
|
|
1099
|
+
}
|
|
1100
|
+
writeDoubleBE(value) {
|
|
1101
|
+
this._ensureSize(8);
|
|
1102
|
+
this.dataView.setFloat64(this.byteOffset, value, BE);
|
|
1103
|
+
this.byteOffset += 8;
|
|
1104
|
+
}
|
|
1105
|
+
/** A varint uses a variable number of bytes */
|
|
1106
|
+
writeVarInt(value) {
|
|
1107
|
+
let length = 1;
|
|
1108
|
+
while ((value & 4294967168) !== 0) {
|
|
1109
|
+
this.writeUInt8(value & 127 | 128);
|
|
1110
|
+
value >>>= 7;
|
|
1111
|
+
length++;
|
|
1112
|
+
}
|
|
1113
|
+
this.writeUInt8(value & 127);
|
|
1114
|
+
return length;
|
|
1115
|
+
}
|
|
1116
|
+
/** Append another ArrayBuffer to this ArrayBuffer */
|
|
1117
|
+
writeBuffer(arrayBuffer) {
|
|
1118
|
+
this._ensureSize(arrayBuffer.byteLength);
|
|
1119
|
+
const tempArray = new Uint8Array(this.arrayBuffer);
|
|
1120
|
+
tempArray.set(new Uint8Array(arrayBuffer), this.byteOffset);
|
|
1121
|
+
this.byteOffset += arrayBuffer.byteLength;
|
|
1122
|
+
}
|
|
1123
|
+
/** Resizes this.arrayBuffer if not enough space */
|
|
1124
|
+
_ensureSize(size) {
|
|
1125
|
+
if (this.arrayBuffer.byteLength < this.byteOffset + size) {
|
|
1126
|
+
if (this.allowResize) {
|
|
1127
|
+
const newArrayBuffer = new ArrayBuffer(this.byteOffset + size);
|
|
1128
|
+
const tempArray = new Uint8Array(newArrayBuffer);
|
|
1129
|
+
tempArray.set(new Uint8Array(this.arrayBuffer));
|
|
1130
|
+
this.arrayBuffer = newArrayBuffer;
|
|
1131
|
+
} else {
|
|
1132
|
+
throw new Error("BinaryWriter overflow");
|
|
1103
1133
|
}
|
|
1104
|
-
}
|
|
1134
|
+
}
|
|
1105
1135
|
}
|
|
1106
|
-
}
|
|
1136
|
+
};
|
|
1107
1137
|
|
|
1108
1138
|
// src/lib/encode-wkb.ts
|
|
1139
|
+
var WKB = /* @__PURE__ */ function(WKB2) {
|
|
1140
|
+
WKB2[WKB2["Point"] = 1] = "Point";
|
|
1141
|
+
WKB2[WKB2["LineString"] = 2] = "LineString";
|
|
1142
|
+
WKB2[WKB2["Polygon"] = 3] = "Polygon";
|
|
1143
|
+
WKB2[WKB2["MultiPoint"] = 4] = "MultiPoint";
|
|
1144
|
+
WKB2[WKB2["MultiLineString"] = 5] = "MultiLineString";
|
|
1145
|
+
WKB2[WKB2["MultiPolygon"] = 6] = "MultiPolygon";
|
|
1146
|
+
WKB2[WKB2["GeometryCollection"] = 7] = "GeometryCollection";
|
|
1147
|
+
return WKB2;
|
|
1148
|
+
}({});
|
|
1109
1149
|
function encodeWKB(geometry, options = {}) {
|
|
1110
1150
|
if (geometry.type === "Feature") {
|
|
1111
1151
|
geometry = geometry.geometry;
|
|
@@ -1157,7 +1197,7 @@
|
|
|
1157
1197
|
function encodePoint(coordinates, options) {
|
|
1158
1198
|
const writer = new BinaryWriter(getPointSize(options));
|
|
1159
1199
|
writer.writeInt8(1);
|
|
1160
|
-
writeWkbType(writer,
|
|
1200
|
+
writeWkbType(writer, WKB.Point, options);
|
|
1161
1201
|
if (typeof coordinates[0] === "undefined" && typeof coordinates[1] === "undefined") {
|
|
1162
1202
|
writer.writeDoubleLE(NaN);
|
|
1163
1203
|
writer.writeDoubleLE(NaN);
|
|
@@ -1190,7 +1230,7 @@
|
|
|
1190
1230
|
const size = getLineStringSize(coordinates, options);
|
|
1191
1231
|
const writer = new BinaryWriter(size);
|
|
1192
1232
|
writer.writeInt8(1);
|
|
1193
|
-
writeWkbType(writer,
|
|
1233
|
+
writeWkbType(writer, WKB.LineString, options);
|
|
1194
1234
|
writer.writeUInt32LE(coordinates.length);
|
|
1195
1235
|
for (const coordinate of coordinates) {
|
|
1196
1236
|
writeCoordinate(writer, coordinate, options);
|
|
@@ -1204,7 +1244,7 @@
|
|
|
1204
1244
|
function encodePolygon(coordinates, options) {
|
|
1205
1245
|
const writer = new BinaryWriter(getPolygonSize(coordinates, options));
|
|
1206
1246
|
writer.writeInt8(1);
|
|
1207
|
-
writeWkbType(writer,
|
|
1247
|
+
writeWkbType(writer, WKB.Polygon, options);
|
|
1208
1248
|
const [exteriorRing, ...interiorRings] = coordinates;
|
|
1209
1249
|
if (exteriorRing.length > 0) {
|
|
1210
1250
|
writer.writeUInt32LE(1 + interiorRings.length);
|
|
@@ -1239,7 +1279,7 @@
|
|
|
1239
1279
|
const writer = new BinaryWriter(getMultiPointSize(multiPoint, options));
|
|
1240
1280
|
const points = multiPoint.coordinates;
|
|
1241
1281
|
writer.writeInt8(1);
|
|
1242
|
-
writeWkbType(writer,
|
|
1282
|
+
writeWkbType(writer, WKB.MultiPoint, options);
|
|
1243
1283
|
writer.writeUInt32LE(points.length);
|
|
1244
1284
|
for (const point of points) {
|
|
1245
1285
|
const arrayBuffer = encodePoint(point, options);
|
|
@@ -1257,7 +1297,7 @@
|
|
|
1257
1297
|
const writer = new BinaryWriter(getMultiLineStringSize(multiLineString, options));
|
|
1258
1298
|
const lineStrings = multiLineString.coordinates;
|
|
1259
1299
|
writer.writeInt8(1);
|
|
1260
|
-
writeWkbType(writer,
|
|
1300
|
+
writeWkbType(writer, WKB.MultiLineString, options);
|
|
1261
1301
|
writer.writeUInt32LE(lineStrings.length);
|
|
1262
1302
|
for (const lineString of lineStrings) {
|
|
1263
1303
|
const encodedLineString = encodeLineString(lineString, options);
|
|
@@ -1277,7 +1317,7 @@
|
|
|
1277
1317
|
const writer = new BinaryWriter(getMultiPolygonSize(multiPolygon, options));
|
|
1278
1318
|
const polygons = multiPolygon.coordinates;
|
|
1279
1319
|
writer.writeInt8(1);
|
|
1280
|
-
writeWkbType(writer,
|
|
1320
|
+
writeWkbType(writer, WKB.MultiPolygon, options);
|
|
1281
1321
|
writer.writeUInt32LE(polygons.length);
|
|
1282
1322
|
for (const polygon of polygons) {
|
|
1283
1323
|
const encodedPolygon = encodePolygon(polygon, options);
|
|
@@ -1296,7 +1336,7 @@
|
|
|
1296
1336
|
function encodeGeometryCollection(collection, options) {
|
|
1297
1337
|
const writer = new BinaryWriter(getGeometryCollectionSize(collection, options));
|
|
1298
1338
|
writer.writeInt8(1);
|
|
1299
|
-
writeWkbType(writer,
|
|
1339
|
+
writeWkbType(writer, WKB.GeometryCollection, options);
|
|
1300
1340
|
writer.writeUInt32LE(collection.geometries.length);
|
|
1301
1341
|
for (const geometry of collection.geometries) {
|
|
1302
1342
|
const arrayBuffer = encodeWKB(geometry, options);
|
|
@@ -1312,7 +1352,11 @@
|
|
|
1312
1352
|
return size;
|
|
1313
1353
|
}
|
|
1314
1354
|
function writeWkbType(writer, geometryType, options) {
|
|
1315
|
-
const {
|
|
1355
|
+
const {
|
|
1356
|
+
hasZ,
|
|
1357
|
+
hasM,
|
|
1358
|
+
srid
|
|
1359
|
+
} = options;
|
|
1316
1360
|
let dimensionType = 0;
|
|
1317
1361
|
if (!srid) {
|
|
1318
1362
|
if (hasZ && hasM) {
|
|
@@ -1342,46 +1386,37 @@
|
|
|
1342
1386
|
}
|
|
1343
1387
|
return coordinateSize;
|
|
1344
1388
|
}
|
|
1345
|
-
var WKB;
|
|
1346
|
-
var init_encode_wkb = __esm({
|
|
1347
|
-
"src/lib/encode-wkb.ts"() {
|
|
1348
|
-
init_binary_writer();
|
|
1349
|
-
(function(WKB2) {
|
|
1350
|
-
WKB2[WKB2["Point"] = 1] = "Point";
|
|
1351
|
-
WKB2[WKB2["LineString"] = 2] = "LineString";
|
|
1352
|
-
WKB2[WKB2["Polygon"] = 3] = "Polygon";
|
|
1353
|
-
WKB2[WKB2["MultiPoint"] = 4] = "MultiPoint";
|
|
1354
|
-
WKB2[WKB2["MultiLineString"] = 5] = "MultiLineString";
|
|
1355
|
-
WKB2[WKB2["MultiPolygon"] = 6] = "MultiPolygon";
|
|
1356
|
-
WKB2[WKB2["GeometryCollection"] = 7] = "GeometryCollection";
|
|
1357
|
-
})(WKB || (WKB = {}));
|
|
1358
|
-
}
|
|
1359
|
-
});
|
|
1360
1389
|
|
|
1361
1390
|
// src/wkb-writer.ts
|
|
1362
|
-
var WKBWriter
|
|
1363
|
-
|
|
1364
|
-
"
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
options: {
|
|
1375
|
-
wkb: {
|
|
1376
|
-
hasZ: false,
|
|
1377
|
-
hasM: false
|
|
1378
|
-
}
|
|
1379
|
-
}
|
|
1380
|
-
};
|
|
1391
|
+
var WKBWriter = {
|
|
1392
|
+
name: "WKB (Well Known Binary)",
|
|
1393
|
+
id: "wkb",
|
|
1394
|
+
module: "wkt",
|
|
1395
|
+
version: VERSION,
|
|
1396
|
+
extensions: ["wkb"],
|
|
1397
|
+
encodeSync: encodeWKB,
|
|
1398
|
+
options: {
|
|
1399
|
+
wkb: {
|
|
1400
|
+
hasZ: false,
|
|
1401
|
+
hasM: false
|
|
1402
|
+
}
|
|
1381
1403
|
}
|
|
1382
|
-
}
|
|
1404
|
+
};
|
|
1383
1405
|
|
|
1384
1406
|
// src/lib/utils/hex-transcoder.ts
|
|
1407
|
+
var alphabet = "0123456789abcdef";
|
|
1408
|
+
var encodeLookup = [];
|
|
1409
|
+
var decodeLookup = [];
|
|
1410
|
+
for (let i = 0; i < 256; i++) {
|
|
1411
|
+
encodeLookup[i] = alphabet[i >> 4 & 15] + alphabet[i & 15];
|
|
1412
|
+
if (i < 16) {
|
|
1413
|
+
if (i < 10) {
|
|
1414
|
+
decodeLookup[48 + i] = i;
|
|
1415
|
+
} else {
|
|
1416
|
+
decodeLookup[97 - 10 + i] = i;
|
|
1417
|
+
}
|
|
1418
|
+
}
|
|
1419
|
+
}
|
|
1385
1420
|
function encodeHex(array) {
|
|
1386
1421
|
const length = array.length;
|
|
1387
1422
|
let string = "";
|
|
@@ -1402,26 +1437,24 @@
|
|
|
1402
1437
|
}
|
|
1403
1438
|
return array;
|
|
1404
1439
|
}
|
|
1405
|
-
var alphabet, encodeLookup, decodeLookup;
|
|
1406
|
-
var init_hex_transcoder = __esm({
|
|
1407
|
-
"src/lib/utils/hex-transcoder.ts"() {
|
|
1408
|
-
alphabet = "0123456789abcdef";
|
|
1409
|
-
encodeLookup = [];
|
|
1410
|
-
decodeLookup = [];
|
|
1411
|
-
for (let i = 0; i < 256; i++) {
|
|
1412
|
-
encodeLookup[i] = alphabet[i >> 4 & 15] + alphabet[i & 15];
|
|
1413
|
-
if (i < 16) {
|
|
1414
|
-
if (i < 10) {
|
|
1415
|
-
decodeLookup[48 + i] = i;
|
|
1416
|
-
} else {
|
|
1417
|
-
decodeLookup[97 - 10 + i] = i;
|
|
1418
|
-
}
|
|
1419
|
-
}
|
|
1420
|
-
}
|
|
1421
|
-
}
|
|
1422
|
-
});
|
|
1423
1440
|
|
|
1424
1441
|
// src/hex-wkb-loader.ts
|
|
1442
|
+
var HexWKBLoader = {
|
|
1443
|
+
name: "Hexadecimal WKB",
|
|
1444
|
+
id: "wkb",
|
|
1445
|
+
module: "wkt",
|
|
1446
|
+
version: VERSION,
|
|
1447
|
+
worker: true,
|
|
1448
|
+
category: "geometry",
|
|
1449
|
+
extensions: ["wkb"],
|
|
1450
|
+
mimeTypes: [],
|
|
1451
|
+
options: WKBLoader.options,
|
|
1452
|
+
text: true,
|
|
1453
|
+
testText: isHexWKB,
|
|
1454
|
+
// TODO - encoding here seems wasteful - extend hex transcoder?
|
|
1455
|
+
parse: async (arrayBuffer) => parseHexWKB(new TextDecoder().decode(arrayBuffer)),
|
|
1456
|
+
parseTextSync: parseHexWKB
|
|
1457
|
+
};
|
|
1425
1458
|
function parseHexWKB(text, options) {
|
|
1426
1459
|
const uint8Array = decodeHex(text);
|
|
1427
1460
|
const binaryGeometry = WKBLoader.parseSync?.(uint8Array.buffer, options);
|
|
@@ -1439,96 +1472,68 @@
|
|
|
1439
1472
|
}
|
|
1440
1473
|
return /^[0-9a-fA-F]+$/.test(string.slice(2));
|
|
1441
1474
|
}
|
|
1442
|
-
var HexWKBLoader;
|
|
1443
|
-
var init_hex_wkb_loader = __esm({
|
|
1444
|
-
"src/hex-wkb-loader.ts"() {
|
|
1445
|
-
init_wkb_loader();
|
|
1446
|
-
init_version();
|
|
1447
|
-
init_hex_transcoder();
|
|
1448
|
-
HexWKBLoader = {
|
|
1449
|
-
name: "Hexadecimal WKB",
|
|
1450
|
-
id: "wkb",
|
|
1451
|
-
module: "wkt",
|
|
1452
|
-
version: VERSION,
|
|
1453
|
-
worker: true,
|
|
1454
|
-
category: "geometry",
|
|
1455
|
-
extensions: ["wkb"],
|
|
1456
|
-
mimeTypes: [],
|
|
1457
|
-
options: WKBLoader.options,
|
|
1458
|
-
text: true,
|
|
1459
|
-
testText: isHexWKB,
|
|
1460
|
-
parse: async (arrayBuffer) => parseHexWKB(new TextDecoder().decode(arrayBuffer)),
|
|
1461
|
-
parseTextSync: parseHexWKB
|
|
1462
|
-
};
|
|
1463
|
-
}
|
|
1464
|
-
});
|
|
1465
1475
|
|
|
1466
1476
|
// src/lib/utils/binary-reader.ts
|
|
1467
|
-
var BinaryReader
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
} while (nextByte >= 128);
|
|
1526
|
-
this.byteOffset += bytesRead;
|
|
1527
|
-
return result;
|
|
1528
|
-
}
|
|
1529
|
-
};
|
|
1477
|
+
var BinaryReader = class {
|
|
1478
|
+
constructor(arrayBuffer, isBigEndian = false) {
|
|
1479
|
+
this.arrayBuffer = arrayBuffer;
|
|
1480
|
+
this.dataView = new DataView(arrayBuffer);
|
|
1481
|
+
this.byteOffset = 0;
|
|
1482
|
+
this.littleEndian = !isBigEndian;
|
|
1483
|
+
}
|
|
1484
|
+
readUInt8() {
|
|
1485
|
+
const value = this.dataView.getUint8(this.byteOffset);
|
|
1486
|
+
this.byteOffset += 1;
|
|
1487
|
+
return value;
|
|
1488
|
+
}
|
|
1489
|
+
readUInt16() {
|
|
1490
|
+
const value = this.dataView.getUint16(this.byteOffset, this.littleEndian);
|
|
1491
|
+
this.byteOffset += 2;
|
|
1492
|
+
return value;
|
|
1493
|
+
}
|
|
1494
|
+
readUInt32() {
|
|
1495
|
+
const value = this.dataView.getUint32(this.byteOffset, this.littleEndian);
|
|
1496
|
+
this.byteOffset += 4;
|
|
1497
|
+
return value;
|
|
1498
|
+
}
|
|
1499
|
+
readInt8() {
|
|
1500
|
+
const value = this.dataView.getInt8(this.byteOffset);
|
|
1501
|
+
this.byteOffset += 1;
|
|
1502
|
+
return value;
|
|
1503
|
+
}
|
|
1504
|
+
readInt16() {
|
|
1505
|
+
const value = this.dataView.getInt16(this.byteOffset, this.littleEndian);
|
|
1506
|
+
this.byteOffset += 2;
|
|
1507
|
+
return value;
|
|
1508
|
+
}
|
|
1509
|
+
readInt32() {
|
|
1510
|
+
const value = this.dataView.getInt32(this.byteOffset, this.littleEndian);
|
|
1511
|
+
this.byteOffset += 4;
|
|
1512
|
+
return value;
|
|
1513
|
+
}
|
|
1514
|
+
readFloat() {
|
|
1515
|
+
const value = this.dataView.getFloat32(this.byteOffset, this.littleEndian);
|
|
1516
|
+
this.byteOffset += 4;
|
|
1517
|
+
return value;
|
|
1518
|
+
}
|
|
1519
|
+
readDouble() {
|
|
1520
|
+
const value = this.dataView.getFloat64(this.byteOffset, this.littleEndian);
|
|
1521
|
+
this.byteOffset += 8;
|
|
1522
|
+
return value;
|
|
1523
|
+
}
|
|
1524
|
+
readVarInt() {
|
|
1525
|
+
let result = 0;
|
|
1526
|
+
let bytesRead = 0;
|
|
1527
|
+
let nextByte;
|
|
1528
|
+
do {
|
|
1529
|
+
nextByte = this.dataView.getUint8(this.byteOffset + bytesRead);
|
|
1530
|
+
result += (nextByte & 127) << 7 * bytesRead;
|
|
1531
|
+
bytesRead++;
|
|
1532
|
+
} while (nextByte >= 128);
|
|
1533
|
+
this.byteOffset += bytesRead;
|
|
1534
|
+
return result;
|
|
1530
1535
|
}
|
|
1531
|
-
}
|
|
1536
|
+
};
|
|
1532
1537
|
|
|
1533
1538
|
// src/lib/parse-twkb.ts
|
|
1534
1539
|
function isTWKB(arrayBuffer) {
|
|
@@ -1621,13 +1626,22 @@
|
|
|
1621
1626
|
}
|
|
1622
1627
|
function parsePoint3(reader, context) {
|
|
1623
1628
|
if (context.isEmpty) {
|
|
1624
|
-
return {
|
|
1629
|
+
return {
|
|
1630
|
+
type: "Point",
|
|
1631
|
+
coordinates: []
|
|
1632
|
+
};
|
|
1625
1633
|
}
|
|
1626
|
-
return {
|
|
1634
|
+
return {
|
|
1635
|
+
type: "Point",
|
|
1636
|
+
coordinates: readFirstPoint(reader, context)
|
|
1637
|
+
};
|
|
1627
1638
|
}
|
|
1628
1639
|
function parseLineString3(reader, context) {
|
|
1629
1640
|
if (context.isEmpty) {
|
|
1630
|
-
return {
|
|
1641
|
+
return {
|
|
1642
|
+
type: "LineString",
|
|
1643
|
+
coordinates: []
|
|
1644
|
+
};
|
|
1631
1645
|
}
|
|
1632
1646
|
const pointCount = reader.readVarInt();
|
|
1633
1647
|
const previousPoint = makePreviousPoint(context);
|
|
@@ -1635,11 +1649,17 @@
|
|
|
1635
1649
|
for (let i = 0; i < pointCount; i++) {
|
|
1636
1650
|
points.push(parseNextPoint(reader, context, previousPoint));
|
|
1637
1651
|
}
|
|
1638
|
-
return {
|
|
1652
|
+
return {
|
|
1653
|
+
type: "LineString",
|
|
1654
|
+
coordinates: points
|
|
1655
|
+
};
|
|
1639
1656
|
}
|
|
1640
1657
|
function parsePolygon3(reader, context) {
|
|
1641
1658
|
if (context.isEmpty) {
|
|
1642
|
-
return {
|
|
1659
|
+
return {
|
|
1660
|
+
type: "Polygon",
|
|
1661
|
+
coordinates: []
|
|
1662
|
+
};
|
|
1643
1663
|
}
|
|
1644
1664
|
const ringCount = reader.readVarInt();
|
|
1645
1665
|
const previousPoint = makePreviousPoint(context);
|
|
@@ -1657,11 +1677,17 @@
|
|
|
1657
1677
|
}
|
|
1658
1678
|
polygon.push(interiorRing);
|
|
1659
1679
|
}
|
|
1660
|
-
return {
|
|
1680
|
+
return {
|
|
1681
|
+
type: "Polygon",
|
|
1682
|
+
coordinates: polygon
|
|
1683
|
+
};
|
|
1661
1684
|
}
|
|
1662
1685
|
function parseMultiPoint3(reader, context) {
|
|
1663
1686
|
if (context.isEmpty) {
|
|
1664
|
-
return {
|
|
1687
|
+
return {
|
|
1688
|
+
type: "MultiPoint",
|
|
1689
|
+
coordinates: []
|
|
1690
|
+
};
|
|
1665
1691
|
}
|
|
1666
1692
|
const previousPoint = makePreviousPoint(context);
|
|
1667
1693
|
const pointCount = reader.readVarInt();
|
|
@@ -1669,11 +1695,17 @@
|
|
|
1669
1695
|
for (let i = 0; i < pointCount; i++) {
|
|
1670
1696
|
coordinates.push(parseNextPoint(reader, context, previousPoint));
|
|
1671
1697
|
}
|
|
1672
|
-
return {
|
|
1698
|
+
return {
|
|
1699
|
+
type: "MultiPoint",
|
|
1700
|
+
coordinates
|
|
1701
|
+
};
|
|
1673
1702
|
}
|
|
1674
1703
|
function parseMultiLineString3(reader, context) {
|
|
1675
1704
|
if (context.isEmpty) {
|
|
1676
|
-
return {
|
|
1705
|
+
return {
|
|
1706
|
+
type: "MultiLineString",
|
|
1707
|
+
coordinates: []
|
|
1708
|
+
};
|
|
1677
1709
|
}
|
|
1678
1710
|
const previousPoint = makePreviousPoint(context);
|
|
1679
1711
|
const lineStringCount = reader.readVarInt();
|
|
@@ -1686,11 +1718,17 @@
|
|
|
1686
1718
|
}
|
|
1687
1719
|
coordinates.push(lineString);
|
|
1688
1720
|
}
|
|
1689
|
-
return {
|
|
1721
|
+
return {
|
|
1722
|
+
type: "MultiLineString",
|
|
1723
|
+
coordinates
|
|
1724
|
+
};
|
|
1690
1725
|
}
|
|
1691
1726
|
function parseMultiPolygon3(reader, context) {
|
|
1692
1727
|
if (context.isEmpty) {
|
|
1693
|
-
return {
|
|
1728
|
+
return {
|
|
1729
|
+
type: "MultiPolygon",
|
|
1730
|
+
coordinates: []
|
|
1731
|
+
};
|
|
1694
1732
|
}
|
|
1695
1733
|
const previousPoint = makePreviousPoint(context);
|
|
1696
1734
|
const polygonCount = reader.readVarInt();
|
|
@@ -1713,10 +1751,16 @@
|
|
|
1713
1751
|
}
|
|
1714
1752
|
polygons.push(polygon);
|
|
1715
1753
|
}
|
|
1716
|
-
return {
|
|
1754
|
+
return {
|
|
1755
|
+
type: "MultiPolygon",
|
|
1756
|
+
coordinates: polygons
|
|
1757
|
+
};
|
|
1717
1758
|
}
|
|
1718
1759
|
function parseGeometryCollection2(reader, context) {
|
|
1719
|
-
return {
|
|
1760
|
+
return {
|
|
1761
|
+
type: "GeometryCollection",
|
|
1762
|
+
geometries: []
|
|
1763
|
+
};
|
|
1720
1764
|
}
|
|
1721
1765
|
function zigZagDecode(value) {
|
|
1722
1766
|
return value >> 1 ^ -(value & 1);
|
|
@@ -1745,42 +1789,30 @@
|
|
|
1745
1789
|
}
|
|
1746
1790
|
return previousPoint.slice();
|
|
1747
1791
|
}
|
|
1748
|
-
var init_parse_twkb = __esm({
|
|
1749
|
-
"src/lib/parse-twkb.ts"() {
|
|
1750
|
-
init_binary_reader();
|
|
1751
|
-
init_parse_wkb_header();
|
|
1752
|
-
}
|
|
1753
|
-
});
|
|
1754
1792
|
|
|
1755
1793
|
// src/twkb-loader.ts
|
|
1756
|
-
var TWKBWorkerLoader
|
|
1757
|
-
|
|
1758
|
-
"
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
options: {
|
|
1772
|
-
wkb: {
|
|
1773
|
-
shape: "binary-geometry"
|
|
1774
|
-
}
|
|
1775
|
-
}
|
|
1776
|
-
};
|
|
1777
|
-
TWKBLoader = {
|
|
1778
|
-
...TWKBWorkerLoader,
|
|
1779
|
-
parse: async (arrayBuffer) => parseTWKBGeometry(arrayBuffer),
|
|
1780
|
-
parseSync: parseTWKBGeometry
|
|
1781
|
-
};
|
|
1794
|
+
var TWKBWorkerLoader = {
|
|
1795
|
+
name: "TWKB (Tiny Well-Known Binary)",
|
|
1796
|
+
id: "twkb",
|
|
1797
|
+
module: "wkt",
|
|
1798
|
+
version: VERSION,
|
|
1799
|
+
worker: true,
|
|
1800
|
+
category: "geometry",
|
|
1801
|
+
extensions: ["twkb"],
|
|
1802
|
+
mimeTypes: [],
|
|
1803
|
+
// TODO can we define static, serializable tests, eg. some binary strings?
|
|
1804
|
+
tests: [isTWKB],
|
|
1805
|
+
options: {
|
|
1806
|
+
wkb: {
|
|
1807
|
+
shape: "binary-geometry"
|
|
1808
|
+
}
|
|
1782
1809
|
}
|
|
1783
|
-
}
|
|
1810
|
+
};
|
|
1811
|
+
var TWKBLoader = {
|
|
1812
|
+
...TWKBWorkerLoader,
|
|
1813
|
+
parse: async (arrayBuffer) => parseTWKBGeometry(arrayBuffer),
|
|
1814
|
+
parseSync: parseTWKBGeometry
|
|
1815
|
+
};
|
|
1784
1816
|
|
|
1785
1817
|
// src/lib/encode-twkb.ts
|
|
1786
1818
|
function encodeTWKB(geometry, options) {
|
|
@@ -1879,7 +1911,9 @@
|
|
|
1879
1911
|
return writer.arrayBuffer;
|
|
1880
1912
|
}
|
|
1881
1913
|
function encodeMultiPolygon2(writer, context, multiPolygon) {
|
|
1882
|
-
const {
|
|
1914
|
+
const {
|
|
1915
|
+
coordinates
|
|
1916
|
+
} = multiPolygon;
|
|
1883
1917
|
const isEmpty = coordinates.length === 0;
|
|
1884
1918
|
writeTwkbHeader(writer, context, WKBGeometryType.MultiPolygon, isEmpty);
|
|
1885
1919
|
if (!isEmpty) {
|
|
@@ -1898,7 +1932,9 @@
|
|
|
1898
1932
|
}
|
|
1899
1933
|
}
|
|
1900
1934
|
function encodeGeometryCollection2(writer, context, geometryCollection) {
|
|
1901
|
-
const {
|
|
1935
|
+
const {
|
|
1936
|
+
geometries
|
|
1937
|
+
} = geometryCollection;
|
|
1902
1938
|
const isEmpty = geometries.length === 0;
|
|
1903
1939
|
writeTwkbHeader(writer, context, WKBGeometryType.GeometryCollection, isEmpty);
|
|
1904
1940
|
if (geometries.length > 0) {
|
|
@@ -1956,79 +1992,24 @@
|
|
|
1956
1992
|
mFactor: Math.pow(10, mPrecision)
|
|
1957
1993
|
};
|
|
1958
1994
|
}
|
|
1959
|
-
var init_encode_twkb = __esm({
|
|
1960
|
-
"src/lib/encode-twkb.ts"() {
|
|
1961
|
-
init_binary_writer();
|
|
1962
|
-
init_parse_wkb_header();
|
|
1963
|
-
}
|
|
1964
|
-
});
|
|
1965
1995
|
|
|
1966
1996
|
// src/twkb-writer.ts
|
|
1967
|
-
var TWKBWriter
|
|
1968
|
-
|
|
1969
|
-
"
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
twkb: {}
|
|
1981
|
-
}
|
|
1982
|
-
};
|
|
1983
|
-
}
|
|
1984
|
-
});
|
|
1985
|
-
|
|
1986
|
-
// src/index.ts
|
|
1987
|
-
var src_exports = {};
|
|
1988
|
-
__export(src_exports, {
|
|
1989
|
-
HexWKBLoader: () => HexWKBLoader,
|
|
1990
|
-
TWKBLoader: () => TWKBLoader,
|
|
1991
|
-
TWKBWriter: () => TWKBWriter,
|
|
1992
|
-
WKBLoader: () => WKBLoader,
|
|
1993
|
-
WKBWorkerLoader: () => WKBWorkerLoader,
|
|
1994
|
-
WKBWriter: () => WKBWriter,
|
|
1995
|
-
WKTCRSLoader: () => WKTCRSLoader,
|
|
1996
|
-
WKTCRSWriter: () => WKTCRSWriter,
|
|
1997
|
-
WKTLoader: () => WKTLoader,
|
|
1998
|
-
WKTWorkerLoader: () => WKTWorkerLoader,
|
|
1999
|
-
WKTWriter: () => WKTWriter,
|
|
2000
|
-
decodeHex: () => decodeHex,
|
|
2001
|
-
encodeHex: () => encodeHex,
|
|
2002
|
-
isTWKB: () => isTWKB,
|
|
2003
|
-
isWKB: () => isWKB,
|
|
2004
|
-
isWKT: () => isWKT,
|
|
2005
|
-
parseWKBHeader: () => parseWKBHeader
|
|
2006
|
-
});
|
|
2007
|
-
var init_src2 = __esm({
|
|
2008
|
-
"src/index.ts"() {
|
|
2009
|
-
init_wkt_crs_loader();
|
|
2010
|
-
init_wkt_crs_writer();
|
|
2011
|
-
init_wkt_loader();
|
|
2012
|
-
init_wkt_writer();
|
|
2013
|
-
init_wkb_loader();
|
|
2014
|
-
init_wkb_writer();
|
|
2015
|
-
init_hex_wkb_loader();
|
|
2016
|
-
init_twkb_loader();
|
|
2017
|
-
init_twkb_writer();
|
|
2018
|
-
init_parse_wkt();
|
|
2019
|
-
init_parse_wkb_header();
|
|
2020
|
-
init_parse_twkb();
|
|
2021
|
-
init_hex_transcoder();
|
|
2022
|
-
}
|
|
2023
|
-
});
|
|
2024
|
-
|
|
2025
|
-
// src/bundle.ts
|
|
2026
|
-
var require_bundle = __commonJS({
|
|
2027
|
-
"src/bundle.ts"(exports, module) {
|
|
2028
|
-
var moduleExports = (init_src2(), src_exports);
|
|
2029
|
-
globalThis.loaders = globalThis.loaders || {};
|
|
2030
|
-
module.exports = Object.assign(globalThis.loaders, moduleExports);
|
|
1997
|
+
var TWKBWriter = {
|
|
1998
|
+
name: "TWKB (Tiny Well Known Binary)",
|
|
1999
|
+
id: "twkb",
|
|
2000
|
+
module: "wkt",
|
|
2001
|
+
version: VERSION,
|
|
2002
|
+
extensions: ["twkb"],
|
|
2003
|
+
// @ts-expect-error not implemented yet
|
|
2004
|
+
encodeSync: async (data, options) => encodeTWKB,
|
|
2005
|
+
options: {
|
|
2006
|
+
twkb: {
|
|
2007
|
+
// hasZ: false,
|
|
2008
|
+
// hasM: false
|
|
2009
|
+
}
|
|
2031
2010
|
}
|
|
2032
|
-
}
|
|
2033
|
-
|
|
2011
|
+
};
|
|
2012
|
+
return __toCommonJS(src_exports);
|
|
2034
2013
|
})();
|
|
2014
|
+
return __exports__;
|
|
2015
|
+
});
|