@loaders.gl/wkt 4.0.0-beta.2 → 4.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{dist.min.js → dist.dev.js} +563 -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,29 @@
|
|
|
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
|
+
text: true,
|
|
201
|
+
options: {
|
|
202
|
+
"wkt-crs": {}
|
|
203
|
+
},
|
|
204
|
+
encode: async (wktcrs, options) => new TextEncoder().encode(encodeWKTCRS(wktcrs, options?.["wkt-crs"])),
|
|
205
|
+
encodeSync: (wktcrs, options) => new TextEncoder().encode(encodeWKTCRS(wktcrs, options?.["wkt-crs"])),
|
|
206
|
+
encodeTextSync: (wktcrs, options) => encodeWKTCRS(wktcrs, options?.["wkt-crs"])
|
|
207
|
+
};
|
|
202
208
|
|
|
203
209
|
// src/lib/parse-wkt.ts
|
|
210
|
+
var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
|
|
211
|
+
var tuples = new RegExp("^" + numberRegexp.source + "(\\s" + numberRegexp.source + "){1,}");
|
|
212
|
+
var WKT_MAGIC_STRINGS = ["POINT(", "LINESTRING(", "POLYGON(", "MULTIPOINT(", "MULTILINESTRING(", "MULTIPOLYGON(", "GEOMETRYCOLLECTION("];
|
|
204
213
|
function isWKT(input) {
|
|
205
214
|
return WKT_MAGIC_STRINGS.some((magicString) => input.startsWith(magicString));
|
|
206
215
|
}
|
|
@@ -211,7 +220,11 @@
|
|
|
211
220
|
const parts = input.split(";");
|
|
212
221
|
let _ = parts.pop();
|
|
213
222
|
const srid = (parts.shift() || "").split("=").pop();
|
|
214
|
-
const state = {
|
|
223
|
+
const state = {
|
|
224
|
+
parts,
|
|
225
|
+
_,
|
|
226
|
+
i: 0
|
|
227
|
+
};
|
|
215
228
|
const geometry = parseGeometry(state);
|
|
216
229
|
return options?.wkt?.crs ? addCRS(geometry, srid) : geometry;
|
|
217
230
|
}
|
|
@@ -423,55 +436,31 @@
|
|
|
423
436
|
function white(state) {
|
|
424
437
|
$(/^\s*/, state);
|
|
425
438
|
}
|
|
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
439
|
|
|
443
440
|
// 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
|
-
};
|
|
441
|
+
var WKTWorkerLoader = {
|
|
442
|
+
name: "WKT (Well-Known Text)",
|
|
443
|
+
id: "wkt",
|
|
444
|
+
module: "wkt",
|
|
445
|
+
version: VERSION,
|
|
446
|
+
worker: true,
|
|
447
|
+
extensions: ["wkt"],
|
|
448
|
+
mimeTypes: ["text/plain"],
|
|
449
|
+
category: "geometry",
|
|
450
|
+
text: true,
|
|
451
|
+
tests: WKT_MAGIC_STRINGS,
|
|
452
|
+
testText: isWKT,
|
|
453
|
+
options: {
|
|
454
|
+
wkt: {
|
|
455
|
+
crs: true
|
|
456
|
+
}
|
|
473
457
|
}
|
|
474
|
-
}
|
|
458
|
+
};
|
|
459
|
+
var WKTLoader = {
|
|
460
|
+
...WKTWorkerLoader,
|
|
461
|
+
parse: async (arrayBuffer, options) => parseWKT(new TextDecoder().decode(arrayBuffer), options),
|
|
462
|
+
parseTextSync: parseWKT
|
|
463
|
+
};
|
|
475
464
|
|
|
476
465
|
// src/lib/encode-wkt.ts
|
|
477
466
|
function encodeWKT(geometry) {
|
|
@@ -512,30 +501,19 @@
|
|
|
512
501
|
function wrapParens(s) {
|
|
513
502
|
return `(${s})`;
|
|
514
503
|
}
|
|
515
|
-
var init_encode_wkt = __esm({
|
|
516
|
-
"src/lib/encode-wkt.ts"() {
|
|
517
|
-
}
|
|
518
|
-
});
|
|
519
504
|
|
|
520
505
|
// src/wkt-writer.ts
|
|
521
|
-
var WKTWriter
|
|
522
|
-
|
|
523
|
-
"
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
version: VERSION,
|
|
531
|
-
extensions: ["wkt"],
|
|
532
|
-
encodeSync: encodeWKT,
|
|
533
|
-
options: {
|
|
534
|
-
wkt: {}
|
|
535
|
-
}
|
|
536
|
-
};
|
|
506
|
+
var WKTWriter = {
|
|
507
|
+
name: "WKT (Well Known Text)",
|
|
508
|
+
id: "wkt",
|
|
509
|
+
module: "wkt",
|
|
510
|
+
version: VERSION,
|
|
511
|
+
extensions: ["wkt"],
|
|
512
|
+
encodeSync: encodeWKT,
|
|
513
|
+
options: {
|
|
514
|
+
wkt: {}
|
|
537
515
|
}
|
|
538
|
-
}
|
|
516
|
+
};
|
|
539
517
|
|
|
540
518
|
// ../gis/src/lib/binary-to-geojson.ts
|
|
541
519
|
function binaryToGeometry(data, startIndex, endIndex) {
|
|
@@ -552,7 +530,9 @@
|
|
|
552
530
|
}
|
|
553
531
|
}
|
|
554
532
|
function polygonToGeoJson(data, startIndex = -Infinity, endIndex = Infinity) {
|
|
555
|
-
const {
|
|
533
|
+
const {
|
|
534
|
+
positions
|
|
535
|
+
} = data;
|
|
556
536
|
const polygonIndices = data.polygonIndices.value.filter((x) => x >= startIndex && x <= endIndex);
|
|
557
537
|
const primitivePolygonIndices = data.primitivePolygonIndices.value.filter((x) => x >= startIndex && x <= endIndex);
|
|
558
538
|
const multi = polygonIndices.length > 2;
|
|
@@ -564,7 +544,10 @@
|
|
|
564
544
|
const ringCoordinates = ringToGeoJson(positions, startRingIndex, endRingIndex);
|
|
565
545
|
coordinates2.push(ringCoordinates);
|
|
566
546
|
}
|
|
567
|
-
return {
|
|
547
|
+
return {
|
|
548
|
+
type: "Polygon",
|
|
549
|
+
coordinates: coordinates2
|
|
550
|
+
};
|
|
568
551
|
}
|
|
569
552
|
const coordinates = [];
|
|
570
553
|
for (let i = 0; i < polygonIndices.length - 1; i++) {
|
|
@@ -573,31 +556,50 @@
|
|
|
573
556
|
const polygonCoordinates = polygonToGeoJson(data, startPolygonIndex, endPolygonIndex).coordinates;
|
|
574
557
|
coordinates.push(polygonCoordinates);
|
|
575
558
|
}
|
|
576
|
-
return {
|
|
559
|
+
return {
|
|
560
|
+
type: "MultiPolygon",
|
|
561
|
+
coordinates
|
|
562
|
+
};
|
|
577
563
|
}
|
|
578
564
|
function lineStringToGeoJson(data, startIndex = -Infinity, endIndex = Infinity) {
|
|
579
|
-
const {
|
|
565
|
+
const {
|
|
566
|
+
positions
|
|
567
|
+
} = data;
|
|
580
568
|
const pathIndices = data.pathIndices.value.filter((x) => x >= startIndex && x <= endIndex);
|
|
581
569
|
const multi = pathIndices.length > 2;
|
|
582
570
|
if (!multi) {
|
|
583
571
|
const coordinates2 = ringToGeoJson(positions, pathIndices[0], pathIndices[1]);
|
|
584
|
-
return {
|
|
572
|
+
return {
|
|
573
|
+
type: "LineString",
|
|
574
|
+
coordinates: coordinates2
|
|
575
|
+
};
|
|
585
576
|
}
|
|
586
577
|
const coordinates = [];
|
|
587
578
|
for (let i = 0; i < pathIndices.length - 1; i++) {
|
|
588
579
|
const ringCoordinates = ringToGeoJson(positions, pathIndices[i], pathIndices[i + 1]);
|
|
589
580
|
coordinates.push(ringCoordinates);
|
|
590
581
|
}
|
|
591
|
-
return {
|
|
582
|
+
return {
|
|
583
|
+
type: "MultiLineString",
|
|
584
|
+
coordinates
|
|
585
|
+
};
|
|
592
586
|
}
|
|
593
587
|
function pointToGeoJson(data, startIndex, endIndex) {
|
|
594
|
-
const {
|
|
588
|
+
const {
|
|
589
|
+
positions
|
|
590
|
+
} = data;
|
|
595
591
|
const coordinates = ringToGeoJson(positions, startIndex, endIndex);
|
|
596
592
|
const multi = coordinates.length > 1;
|
|
597
593
|
if (multi) {
|
|
598
|
-
return {
|
|
594
|
+
return {
|
|
595
|
+
type: "MultiPoint",
|
|
596
|
+
coordinates
|
|
597
|
+
};
|
|
599
598
|
}
|
|
600
|
-
return {
|
|
599
|
+
return {
|
|
600
|
+
type: "Point",
|
|
601
|
+
coordinates: coordinates[0]
|
|
602
|
+
};
|
|
601
603
|
}
|
|
602
604
|
function ringToGeoJson(positions, startIndex, endIndex) {
|
|
603
605
|
startIndex = startIndex || 0;
|
|
@@ -612,19 +614,22 @@
|
|
|
612
614
|
}
|
|
613
615
|
return ringCoordinates;
|
|
614
616
|
}
|
|
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
617
|
|
|
627
618
|
// src/lib/parse-wkb-header.ts
|
|
619
|
+
var EWKB_FLAG_Z = 2147483648;
|
|
620
|
+
var EWKB_FLAG_M = 1073741824;
|
|
621
|
+
var EWKB_FLAG_SRID = 536870912;
|
|
622
|
+
var MAX_SRID = 1e4;
|
|
623
|
+
var WKBGeometryType = function(WKBGeometryType2) {
|
|
624
|
+
WKBGeometryType2[WKBGeometryType2["Point"] = 1] = "Point";
|
|
625
|
+
WKBGeometryType2[WKBGeometryType2["LineString"] = 2] = "LineString";
|
|
626
|
+
WKBGeometryType2[WKBGeometryType2["Polygon"] = 3] = "Polygon";
|
|
627
|
+
WKBGeometryType2[WKBGeometryType2["MultiPoint"] = 4] = "MultiPoint";
|
|
628
|
+
WKBGeometryType2[WKBGeometryType2["MultiLineString"] = 5] = "MultiLineString";
|
|
629
|
+
WKBGeometryType2[WKBGeometryType2["MultiPolygon"] = 6] = "MultiPolygon";
|
|
630
|
+
WKBGeometryType2[WKBGeometryType2["GeometryCollection"] = 7] = "GeometryCollection";
|
|
631
|
+
return WKBGeometryType2;
|
|
632
|
+
}({});
|
|
628
633
|
function isWKB(arrayBuffer) {
|
|
629
634
|
const dataView = new DataView(arrayBuffer);
|
|
630
635
|
let byteOffset = 0;
|
|
@@ -715,24 +720,6 @@
|
|
|
715
720
|
}
|
|
716
721
|
return wkbHeader;
|
|
717
722
|
}
|
|
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
723
|
|
|
737
724
|
// src/lib/parse-wkb.ts
|
|
738
725
|
function parseWKB(arrayBuffer, options) {
|
|
@@ -750,7 +737,11 @@
|
|
|
750
737
|
function parseWKBToBinary(arrayBuffer, options) {
|
|
751
738
|
const dataView = new DataView(arrayBuffer);
|
|
752
739
|
const wkbHeader = parseWKBHeader(dataView);
|
|
753
|
-
const {
|
|
740
|
+
const {
|
|
741
|
+
geometryType,
|
|
742
|
+
dimensions,
|
|
743
|
+
littleEndian
|
|
744
|
+
} = wkbHeader;
|
|
754
745
|
const offset = wkbHeader.byteOffset;
|
|
755
746
|
switch (geometryType) {
|
|
756
747
|
case WKBGeometryType.Point:
|
|
@@ -785,7 +776,13 @@
|
|
|
785
776
|
offset += 8;
|
|
786
777
|
}
|
|
787
778
|
return {
|
|
788
|
-
geometry: {
|
|
779
|
+
geometry: {
|
|
780
|
+
type: "Point",
|
|
781
|
+
positions: {
|
|
782
|
+
value: positions,
|
|
783
|
+
size: dimension
|
|
784
|
+
}
|
|
785
|
+
},
|
|
789
786
|
offset
|
|
790
787
|
};
|
|
791
788
|
}
|
|
@@ -804,19 +801,28 @@
|
|
|
804
801
|
return {
|
|
805
802
|
geometry: {
|
|
806
803
|
type: "LineString",
|
|
807
|
-
positions: {
|
|
808
|
-
|
|
804
|
+
positions: {
|
|
805
|
+
value: positions,
|
|
806
|
+
size: dimension
|
|
807
|
+
},
|
|
808
|
+
pathIndices: {
|
|
809
|
+
value: new Uint16Array(pathIndices),
|
|
810
|
+
size: 1
|
|
811
|
+
}
|
|
809
812
|
},
|
|
810
813
|
offset
|
|
811
814
|
};
|
|
812
815
|
}
|
|
816
|
+
var cumulativeSum = (sum) => (value) => sum += value;
|
|
813
817
|
function parsePolygon2(dataView, offset, dimension, littleEndian) {
|
|
814
818
|
const nRings = dataView.getUint32(offset, littleEndian);
|
|
815
819
|
offset += 4;
|
|
816
820
|
const rings = [];
|
|
817
821
|
for (let i = 0; i < nRings; i++) {
|
|
818
822
|
const parsed = parseLineString2(dataView, offset, dimension, littleEndian);
|
|
819
|
-
const {
|
|
823
|
+
const {
|
|
824
|
+
positions
|
|
825
|
+
} = parsed.geometry;
|
|
820
826
|
offset = parsed.offset;
|
|
821
827
|
rings.push(positions.value);
|
|
822
828
|
}
|
|
@@ -830,12 +836,18 @@
|
|
|
830
836
|
return {
|
|
831
837
|
geometry: {
|
|
832
838
|
type: "Polygon",
|
|
833
|
-
positions: {
|
|
839
|
+
positions: {
|
|
840
|
+
value: concatenatedPositions,
|
|
841
|
+
size: dimension
|
|
842
|
+
},
|
|
834
843
|
polygonIndices: {
|
|
835
844
|
value: new Uint16Array(polygonIndices),
|
|
836
845
|
size: 1
|
|
837
846
|
},
|
|
838
|
-
primitivePolygonIndices: {
|
|
847
|
+
primitivePolygonIndices: {
|
|
848
|
+
value: new Uint16Array(primitivePolygonIndices),
|
|
849
|
+
size: 1
|
|
850
|
+
}
|
|
839
851
|
},
|
|
840
852
|
offset
|
|
841
853
|
};
|
|
@@ -896,7 +908,10 @@
|
|
|
896
908
|
const concatenatedPositions = new Float64Array(concatTypedArrays(positions).buffer);
|
|
897
909
|
return {
|
|
898
910
|
type: "Point",
|
|
899
|
-
positions: {
|
|
911
|
+
positions: {
|
|
912
|
+
value: concatenatedPositions,
|
|
913
|
+
size: dimension
|
|
914
|
+
}
|
|
900
915
|
};
|
|
901
916
|
}
|
|
902
917
|
function concatenateBinaryLineGeometries(binaryLineGeometries, dimension) {
|
|
@@ -906,15 +921,24 @@
|
|
|
906
921
|
pathIndices.unshift(0);
|
|
907
922
|
return {
|
|
908
923
|
type: "LineString",
|
|
909
|
-
positions: {
|
|
910
|
-
|
|
924
|
+
positions: {
|
|
925
|
+
value: concatenatedPositions,
|
|
926
|
+
size: dimension
|
|
927
|
+
},
|
|
928
|
+
pathIndices: {
|
|
929
|
+
value: new Uint16Array(pathIndices),
|
|
930
|
+
size: 1
|
|
931
|
+
}
|
|
911
932
|
};
|
|
912
933
|
}
|
|
913
934
|
function concatenateBinaryPolygonGeometries(binaryPolygonGeometries, dimension) {
|
|
914
935
|
const polygons = [];
|
|
915
936
|
const primitivePolygons = [];
|
|
916
937
|
for (const binaryPolygon of binaryPolygonGeometries) {
|
|
917
|
-
const {
|
|
938
|
+
const {
|
|
939
|
+
positions,
|
|
940
|
+
primitivePolygonIndices: primitivePolygonIndices2
|
|
941
|
+
} = binaryPolygon;
|
|
918
942
|
polygons.push(positions.value);
|
|
919
943
|
primitivePolygons.push(primitivePolygonIndices2.value);
|
|
920
944
|
}
|
|
@@ -927,9 +951,18 @@
|
|
|
927
951
|
}
|
|
928
952
|
return {
|
|
929
953
|
type: "Polygon",
|
|
930
|
-
positions: {
|
|
931
|
-
|
|
932
|
-
|
|
954
|
+
positions: {
|
|
955
|
+
value: concatenatedPositions,
|
|
956
|
+
size: dimension
|
|
957
|
+
},
|
|
958
|
+
polygonIndices: {
|
|
959
|
+
value: new Uint16Array(polygonIndices),
|
|
960
|
+
size: 1
|
|
961
|
+
},
|
|
962
|
+
primitivePolygonIndices: {
|
|
963
|
+
value: new Uint16Array(primitivePolygonIndices),
|
|
964
|
+
size: 1
|
|
965
|
+
}
|
|
933
966
|
};
|
|
934
967
|
}
|
|
935
968
|
function concatTypedArrays(arrays) {
|
|
@@ -948,164 +981,153 @@
|
|
|
948
981
|
}
|
|
949
982
|
return buffer;
|
|
950
983
|
}
|
|
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
984
|
|
|
960
985
|
// src/wkb-loader.ts
|
|
961
|
-
var WKBWorkerLoader
|
|
962
|
-
|
|
963
|
-
"
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
mimeTypes: [],
|
|
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
|
-
};
|
|
986
|
+
var WKBWorkerLoader = {
|
|
987
|
+
name: "WKB",
|
|
988
|
+
id: "wkb",
|
|
989
|
+
module: "wkt",
|
|
990
|
+
version: VERSION,
|
|
991
|
+
worker: true,
|
|
992
|
+
category: "geometry",
|
|
993
|
+
extensions: ["wkb"],
|
|
994
|
+
mimeTypes: [],
|
|
995
|
+
tests: [isWKB],
|
|
996
|
+
options: {
|
|
997
|
+
wkb: {
|
|
998
|
+
shape: "binary-geometry"
|
|
999
|
+
}
|
|
988
1000
|
}
|
|
989
|
-
}
|
|
1001
|
+
};
|
|
1002
|
+
var WKBLoader = {
|
|
1003
|
+
...WKBWorkerLoader,
|
|
1004
|
+
parse: async (arrayBuffer) => parseWKB(arrayBuffer),
|
|
1005
|
+
parseSync: parseWKB
|
|
1006
|
+
};
|
|
990
1007
|
|
|
991
1008
|
// 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
|
-
this.arrayBuffer = newArrayBuffer;
|
|
1099
|
-
} else {
|
|
1100
|
-
throw new Error("BinaryWriter overflow");
|
|
1101
|
-
}
|
|
1102
|
-
}
|
|
1009
|
+
var LE = true;
|
|
1010
|
+
var BE = false;
|
|
1011
|
+
var BinaryWriter = class {
|
|
1012
|
+
byteOffset = 0;
|
|
1013
|
+
allowResize = false;
|
|
1014
|
+
constructor(size, allowResize) {
|
|
1015
|
+
this.arrayBuffer = new ArrayBuffer(size);
|
|
1016
|
+
this.dataView = new DataView(this.arrayBuffer);
|
|
1017
|
+
this.byteOffset = 0;
|
|
1018
|
+
this.allowResize = allowResize || false;
|
|
1019
|
+
}
|
|
1020
|
+
writeUInt8(value) {
|
|
1021
|
+
this._ensureSize(1);
|
|
1022
|
+
this.dataView.setUint8(this.byteOffset, value);
|
|
1023
|
+
this.byteOffset += 1;
|
|
1024
|
+
}
|
|
1025
|
+
writeUInt16LE(value) {
|
|
1026
|
+
this._ensureSize(2);
|
|
1027
|
+
this.dataView.setUint16(this.byteOffset, value, LE);
|
|
1028
|
+
this.byteOffset += 2;
|
|
1029
|
+
}
|
|
1030
|
+
writeUInt16BE(value) {
|
|
1031
|
+
this._ensureSize(2);
|
|
1032
|
+
this.dataView.setUint16(this.byteOffset, value, BE);
|
|
1033
|
+
this.byteOffset += 2;
|
|
1034
|
+
}
|
|
1035
|
+
writeUInt32LE(value) {
|
|
1036
|
+
this._ensureSize(4);
|
|
1037
|
+
this.dataView.setUint32(this.byteOffset, value, LE);
|
|
1038
|
+
this.byteOffset += 4;
|
|
1039
|
+
}
|
|
1040
|
+
writeUInt32BE(value) {
|
|
1041
|
+
this._ensureSize(4);
|
|
1042
|
+
this.dataView.setUint32(this.byteOffset, value, BE);
|
|
1043
|
+
this.byteOffset += 4;
|
|
1044
|
+
}
|
|
1045
|
+
writeInt8(value) {
|
|
1046
|
+
this._ensureSize(1);
|
|
1047
|
+
this.dataView.setInt8(this.byteOffset, value);
|
|
1048
|
+
this.byteOffset += 1;
|
|
1049
|
+
}
|
|
1050
|
+
writeInt16LE(value) {
|
|
1051
|
+
this._ensureSize(2);
|
|
1052
|
+
this.dataView.setInt16(this.byteOffset, value, LE);
|
|
1053
|
+
this.byteOffset += 2;
|
|
1054
|
+
}
|
|
1055
|
+
writeInt16BE(value) {
|
|
1056
|
+
this._ensureSize(2);
|
|
1057
|
+
this.dataView.setInt16(this.byteOffset, value, BE);
|
|
1058
|
+
this.byteOffset += 2;
|
|
1059
|
+
}
|
|
1060
|
+
writeInt32LE(value) {
|
|
1061
|
+
this._ensureSize(4);
|
|
1062
|
+
this.dataView.setInt32(this.byteOffset, value, LE);
|
|
1063
|
+
this.byteOffset += 4;
|
|
1064
|
+
}
|
|
1065
|
+
writeInt32BE(value) {
|
|
1066
|
+
this._ensureSize(4);
|
|
1067
|
+
this.dataView.setInt32(this.byteOffset, value, BE);
|
|
1068
|
+
this.byteOffset += 4;
|
|
1069
|
+
}
|
|
1070
|
+
writeFloatLE(value) {
|
|
1071
|
+
this._ensureSize(4);
|
|
1072
|
+
this.dataView.setFloat32(this.byteOffset, value, LE);
|
|
1073
|
+
this.byteOffset += 4;
|
|
1074
|
+
}
|
|
1075
|
+
writeFloatBE(value) {
|
|
1076
|
+
this._ensureSize(4);
|
|
1077
|
+
this.dataView.setFloat32(this.byteOffset, value, BE);
|
|
1078
|
+
this.byteOffset += 4;
|
|
1079
|
+
}
|
|
1080
|
+
writeDoubleLE(value) {
|
|
1081
|
+
this._ensureSize(8);
|
|
1082
|
+
this.dataView.setFloat64(this.byteOffset, value, LE);
|
|
1083
|
+
this.byteOffset += 8;
|
|
1084
|
+
}
|
|
1085
|
+
writeDoubleBE(value) {
|
|
1086
|
+
this._ensureSize(8);
|
|
1087
|
+
this.dataView.setFloat64(this.byteOffset, value, BE);
|
|
1088
|
+
this.byteOffset += 8;
|
|
1089
|
+
}
|
|
1090
|
+
writeVarInt(value) {
|
|
1091
|
+
let length = 1;
|
|
1092
|
+
while ((value & 4294967168) !== 0) {
|
|
1093
|
+
this.writeUInt8(value & 127 | 128);
|
|
1094
|
+
value >>>= 7;
|
|
1095
|
+
length++;
|
|
1096
|
+
}
|
|
1097
|
+
this.writeUInt8(value & 127);
|
|
1098
|
+
return length;
|
|
1099
|
+
}
|
|
1100
|
+
writeBuffer(arrayBuffer) {
|
|
1101
|
+
this._ensureSize(arrayBuffer.byteLength);
|
|
1102
|
+
const tempArray = new Uint8Array(this.arrayBuffer);
|
|
1103
|
+
tempArray.set(new Uint8Array(arrayBuffer), this.byteOffset);
|
|
1104
|
+
this.byteOffset += arrayBuffer.byteLength;
|
|
1105
|
+
}
|
|
1106
|
+
_ensureSize(size) {
|
|
1107
|
+
if (this.arrayBuffer.byteLength < this.byteOffset + size) {
|
|
1108
|
+
if (this.allowResize) {
|
|
1109
|
+
const newArrayBuffer = new ArrayBuffer(this.byteOffset + size);
|
|
1110
|
+
const tempArray = new Uint8Array(newArrayBuffer);
|
|
1111
|
+
tempArray.set(new Uint8Array(this.arrayBuffer));
|
|
1112
|
+
this.arrayBuffer = newArrayBuffer;
|
|
1113
|
+
} else {
|
|
1114
|
+
throw new Error("BinaryWriter overflow");
|
|
1103
1115
|
}
|
|
1104
|
-
}
|
|
1116
|
+
}
|
|
1105
1117
|
}
|
|
1106
|
-
}
|
|
1118
|
+
};
|
|
1107
1119
|
|
|
1108
1120
|
// src/lib/encode-wkb.ts
|
|
1121
|
+
var WKB = function(WKB2) {
|
|
1122
|
+
WKB2[WKB2["Point"] = 1] = "Point";
|
|
1123
|
+
WKB2[WKB2["LineString"] = 2] = "LineString";
|
|
1124
|
+
WKB2[WKB2["Polygon"] = 3] = "Polygon";
|
|
1125
|
+
WKB2[WKB2["MultiPoint"] = 4] = "MultiPoint";
|
|
1126
|
+
WKB2[WKB2["MultiLineString"] = 5] = "MultiLineString";
|
|
1127
|
+
WKB2[WKB2["MultiPolygon"] = 6] = "MultiPolygon";
|
|
1128
|
+
WKB2[WKB2["GeometryCollection"] = 7] = "GeometryCollection";
|
|
1129
|
+
return WKB2;
|
|
1130
|
+
}({});
|
|
1109
1131
|
function encodeWKB(geometry, options = {}) {
|
|
1110
1132
|
if (geometry.type === "Feature") {
|
|
1111
1133
|
geometry = geometry.geometry;
|
|
@@ -1157,7 +1179,7 @@
|
|
|
1157
1179
|
function encodePoint(coordinates, options) {
|
|
1158
1180
|
const writer = new BinaryWriter(getPointSize(options));
|
|
1159
1181
|
writer.writeInt8(1);
|
|
1160
|
-
writeWkbType(writer,
|
|
1182
|
+
writeWkbType(writer, WKB.Point, options);
|
|
1161
1183
|
if (typeof coordinates[0] === "undefined" && typeof coordinates[1] === "undefined") {
|
|
1162
1184
|
writer.writeDoubleLE(NaN);
|
|
1163
1185
|
writer.writeDoubleLE(NaN);
|
|
@@ -1190,7 +1212,7 @@
|
|
|
1190
1212
|
const size = getLineStringSize(coordinates, options);
|
|
1191
1213
|
const writer = new BinaryWriter(size);
|
|
1192
1214
|
writer.writeInt8(1);
|
|
1193
|
-
writeWkbType(writer,
|
|
1215
|
+
writeWkbType(writer, WKB.LineString, options);
|
|
1194
1216
|
writer.writeUInt32LE(coordinates.length);
|
|
1195
1217
|
for (const coordinate of coordinates) {
|
|
1196
1218
|
writeCoordinate(writer, coordinate, options);
|
|
@@ -1204,7 +1226,7 @@
|
|
|
1204
1226
|
function encodePolygon(coordinates, options) {
|
|
1205
1227
|
const writer = new BinaryWriter(getPolygonSize(coordinates, options));
|
|
1206
1228
|
writer.writeInt8(1);
|
|
1207
|
-
writeWkbType(writer,
|
|
1229
|
+
writeWkbType(writer, WKB.Polygon, options);
|
|
1208
1230
|
const [exteriorRing, ...interiorRings] = coordinates;
|
|
1209
1231
|
if (exteriorRing.length > 0) {
|
|
1210
1232
|
writer.writeUInt32LE(1 + interiorRings.length);
|
|
@@ -1239,7 +1261,7 @@
|
|
|
1239
1261
|
const writer = new BinaryWriter(getMultiPointSize(multiPoint, options));
|
|
1240
1262
|
const points = multiPoint.coordinates;
|
|
1241
1263
|
writer.writeInt8(1);
|
|
1242
|
-
writeWkbType(writer,
|
|
1264
|
+
writeWkbType(writer, WKB.MultiPoint, options);
|
|
1243
1265
|
writer.writeUInt32LE(points.length);
|
|
1244
1266
|
for (const point of points) {
|
|
1245
1267
|
const arrayBuffer = encodePoint(point, options);
|
|
@@ -1257,7 +1279,7 @@
|
|
|
1257
1279
|
const writer = new BinaryWriter(getMultiLineStringSize(multiLineString, options));
|
|
1258
1280
|
const lineStrings = multiLineString.coordinates;
|
|
1259
1281
|
writer.writeInt8(1);
|
|
1260
|
-
writeWkbType(writer,
|
|
1282
|
+
writeWkbType(writer, WKB.MultiLineString, options);
|
|
1261
1283
|
writer.writeUInt32LE(lineStrings.length);
|
|
1262
1284
|
for (const lineString of lineStrings) {
|
|
1263
1285
|
const encodedLineString = encodeLineString(lineString, options);
|
|
@@ -1277,7 +1299,7 @@
|
|
|
1277
1299
|
const writer = new BinaryWriter(getMultiPolygonSize(multiPolygon, options));
|
|
1278
1300
|
const polygons = multiPolygon.coordinates;
|
|
1279
1301
|
writer.writeInt8(1);
|
|
1280
|
-
writeWkbType(writer,
|
|
1302
|
+
writeWkbType(writer, WKB.MultiPolygon, options);
|
|
1281
1303
|
writer.writeUInt32LE(polygons.length);
|
|
1282
1304
|
for (const polygon of polygons) {
|
|
1283
1305
|
const encodedPolygon = encodePolygon(polygon, options);
|
|
@@ -1296,7 +1318,7 @@
|
|
|
1296
1318
|
function encodeGeometryCollection(collection, options) {
|
|
1297
1319
|
const writer = new BinaryWriter(getGeometryCollectionSize(collection, options));
|
|
1298
1320
|
writer.writeInt8(1);
|
|
1299
|
-
writeWkbType(writer,
|
|
1321
|
+
writeWkbType(writer, WKB.GeometryCollection, options);
|
|
1300
1322
|
writer.writeUInt32LE(collection.geometries.length);
|
|
1301
1323
|
for (const geometry of collection.geometries) {
|
|
1302
1324
|
const arrayBuffer = encodeWKB(geometry, options);
|
|
@@ -1312,7 +1334,11 @@
|
|
|
1312
1334
|
return size;
|
|
1313
1335
|
}
|
|
1314
1336
|
function writeWkbType(writer, geometryType, options) {
|
|
1315
|
-
const {
|
|
1337
|
+
const {
|
|
1338
|
+
hasZ,
|
|
1339
|
+
hasM,
|
|
1340
|
+
srid
|
|
1341
|
+
} = options;
|
|
1316
1342
|
let dimensionType = 0;
|
|
1317
1343
|
if (!srid) {
|
|
1318
1344
|
if (hasZ && hasM) {
|
|
@@ -1342,46 +1368,37 @@
|
|
|
1342
1368
|
}
|
|
1343
1369
|
return coordinateSize;
|
|
1344
1370
|
}
|
|
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
1371
|
|
|
1361
1372
|
// 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
|
-
};
|
|
1373
|
+
var WKBWriter = {
|
|
1374
|
+
name: "WKB (Well Known Binary)",
|
|
1375
|
+
id: "wkb",
|
|
1376
|
+
module: "wkt",
|
|
1377
|
+
version: VERSION,
|
|
1378
|
+
extensions: ["wkb"],
|
|
1379
|
+
encodeSync: encodeWKB,
|
|
1380
|
+
options: {
|
|
1381
|
+
wkb: {
|
|
1382
|
+
hasZ: false,
|
|
1383
|
+
hasM: false
|
|
1384
|
+
}
|
|
1381
1385
|
}
|
|
1382
|
-
}
|
|
1386
|
+
};
|
|
1383
1387
|
|
|
1384
1388
|
// src/lib/utils/hex-transcoder.ts
|
|
1389
|
+
var alphabet = "0123456789abcdef";
|
|
1390
|
+
var encodeLookup = [];
|
|
1391
|
+
var decodeLookup = [];
|
|
1392
|
+
for (let i = 0; i < 256; i++) {
|
|
1393
|
+
encodeLookup[i] = alphabet[i >> 4 & 15] + alphabet[i & 15];
|
|
1394
|
+
if (i < 16) {
|
|
1395
|
+
if (i < 10) {
|
|
1396
|
+
decodeLookup[48 + i] = i;
|
|
1397
|
+
} else {
|
|
1398
|
+
decodeLookup[97 - 10 + i] = i;
|
|
1399
|
+
}
|
|
1400
|
+
}
|
|
1401
|
+
}
|
|
1385
1402
|
function encodeHex(array) {
|
|
1386
1403
|
const length = array.length;
|
|
1387
1404
|
let string = "";
|
|
@@ -1402,26 +1419,23 @@
|
|
|
1402
1419
|
}
|
|
1403
1420
|
return array;
|
|
1404
1421
|
}
|
|
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
1422
|
|
|
1424
1423
|
// src/hex-wkb-loader.ts
|
|
1424
|
+
var HexWKBLoader = {
|
|
1425
|
+
name: "Hexadecimal WKB",
|
|
1426
|
+
id: "wkb",
|
|
1427
|
+
module: "wkt",
|
|
1428
|
+
version: VERSION,
|
|
1429
|
+
worker: true,
|
|
1430
|
+
category: "geometry",
|
|
1431
|
+
extensions: ["wkb"],
|
|
1432
|
+
mimeTypes: [],
|
|
1433
|
+
options: WKBLoader.options,
|
|
1434
|
+
text: true,
|
|
1435
|
+
testText: isHexWKB,
|
|
1436
|
+
parse: async (arrayBuffer) => parseHexWKB(new TextDecoder().decode(arrayBuffer)),
|
|
1437
|
+
parseTextSync: parseHexWKB
|
|
1438
|
+
};
|
|
1425
1439
|
function parseHexWKB(text, options) {
|
|
1426
1440
|
const uint8Array = decodeHex(text);
|
|
1427
1441
|
const binaryGeometry = WKBLoader.parseSync?.(uint8Array.buffer, options);
|
|
@@ -1439,96 +1453,68 @@
|
|
|
1439
1453
|
}
|
|
1440
1454
|
return /^[0-9a-fA-F]+$/.test(string.slice(2));
|
|
1441
1455
|
}
|
|
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
1456
|
|
|
1466
1457
|
// 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
|
-
};
|
|
1458
|
+
var BinaryReader = class {
|
|
1459
|
+
constructor(arrayBuffer, isBigEndian = false) {
|
|
1460
|
+
this.arrayBuffer = arrayBuffer;
|
|
1461
|
+
this.dataView = new DataView(arrayBuffer);
|
|
1462
|
+
this.byteOffset = 0;
|
|
1463
|
+
this.littleEndian = !isBigEndian;
|
|
1464
|
+
}
|
|
1465
|
+
readUInt8() {
|
|
1466
|
+
const value = this.dataView.getUint8(this.byteOffset);
|
|
1467
|
+
this.byteOffset += 1;
|
|
1468
|
+
return value;
|
|
1469
|
+
}
|
|
1470
|
+
readUInt16() {
|
|
1471
|
+
const value = this.dataView.getUint16(this.byteOffset, this.littleEndian);
|
|
1472
|
+
this.byteOffset += 2;
|
|
1473
|
+
return value;
|
|
1474
|
+
}
|
|
1475
|
+
readUInt32() {
|
|
1476
|
+
const value = this.dataView.getUint32(this.byteOffset, this.littleEndian);
|
|
1477
|
+
this.byteOffset += 4;
|
|
1478
|
+
return value;
|
|
1479
|
+
}
|
|
1480
|
+
readInt8() {
|
|
1481
|
+
const value = this.dataView.getInt8(this.byteOffset);
|
|
1482
|
+
this.byteOffset += 1;
|
|
1483
|
+
return value;
|
|
1484
|
+
}
|
|
1485
|
+
readInt16() {
|
|
1486
|
+
const value = this.dataView.getInt16(this.byteOffset, this.littleEndian);
|
|
1487
|
+
this.byteOffset += 2;
|
|
1488
|
+
return value;
|
|
1489
|
+
}
|
|
1490
|
+
readInt32() {
|
|
1491
|
+
const value = this.dataView.getInt32(this.byteOffset, this.littleEndian);
|
|
1492
|
+
this.byteOffset += 4;
|
|
1493
|
+
return value;
|
|
1494
|
+
}
|
|
1495
|
+
readFloat() {
|
|
1496
|
+
const value = this.dataView.getFloat32(this.byteOffset, this.littleEndian);
|
|
1497
|
+
this.byteOffset += 4;
|
|
1498
|
+
return value;
|
|
1499
|
+
}
|
|
1500
|
+
readDouble() {
|
|
1501
|
+
const value = this.dataView.getFloat64(this.byteOffset, this.littleEndian);
|
|
1502
|
+
this.byteOffset += 8;
|
|
1503
|
+
return value;
|
|
1504
|
+
}
|
|
1505
|
+
readVarInt() {
|
|
1506
|
+
let result = 0;
|
|
1507
|
+
let bytesRead = 0;
|
|
1508
|
+
let nextByte;
|
|
1509
|
+
do {
|
|
1510
|
+
nextByte = this.dataView.getUint8(this.byteOffset + bytesRead);
|
|
1511
|
+
result += (nextByte & 127) << 7 * bytesRead;
|
|
1512
|
+
bytesRead++;
|
|
1513
|
+
} while (nextByte >= 128);
|
|
1514
|
+
this.byteOffset += bytesRead;
|
|
1515
|
+
return result;
|
|
1530
1516
|
}
|
|
1531
|
-
}
|
|
1517
|
+
};
|
|
1532
1518
|
|
|
1533
1519
|
// src/lib/parse-twkb.ts
|
|
1534
1520
|
function isTWKB(arrayBuffer) {
|
|
@@ -1621,13 +1607,22 @@
|
|
|
1621
1607
|
}
|
|
1622
1608
|
function parsePoint3(reader, context) {
|
|
1623
1609
|
if (context.isEmpty) {
|
|
1624
|
-
return {
|
|
1610
|
+
return {
|
|
1611
|
+
type: "Point",
|
|
1612
|
+
coordinates: []
|
|
1613
|
+
};
|
|
1625
1614
|
}
|
|
1626
|
-
return {
|
|
1615
|
+
return {
|
|
1616
|
+
type: "Point",
|
|
1617
|
+
coordinates: readFirstPoint(reader, context)
|
|
1618
|
+
};
|
|
1627
1619
|
}
|
|
1628
1620
|
function parseLineString3(reader, context) {
|
|
1629
1621
|
if (context.isEmpty) {
|
|
1630
|
-
return {
|
|
1622
|
+
return {
|
|
1623
|
+
type: "LineString",
|
|
1624
|
+
coordinates: []
|
|
1625
|
+
};
|
|
1631
1626
|
}
|
|
1632
1627
|
const pointCount = reader.readVarInt();
|
|
1633
1628
|
const previousPoint = makePreviousPoint(context);
|
|
@@ -1635,11 +1630,17 @@
|
|
|
1635
1630
|
for (let i = 0; i < pointCount; i++) {
|
|
1636
1631
|
points.push(parseNextPoint(reader, context, previousPoint));
|
|
1637
1632
|
}
|
|
1638
|
-
return {
|
|
1633
|
+
return {
|
|
1634
|
+
type: "LineString",
|
|
1635
|
+
coordinates: points
|
|
1636
|
+
};
|
|
1639
1637
|
}
|
|
1640
1638
|
function parsePolygon3(reader, context) {
|
|
1641
1639
|
if (context.isEmpty) {
|
|
1642
|
-
return {
|
|
1640
|
+
return {
|
|
1641
|
+
type: "Polygon",
|
|
1642
|
+
coordinates: []
|
|
1643
|
+
};
|
|
1643
1644
|
}
|
|
1644
1645
|
const ringCount = reader.readVarInt();
|
|
1645
1646
|
const previousPoint = makePreviousPoint(context);
|
|
@@ -1657,11 +1658,17 @@
|
|
|
1657
1658
|
}
|
|
1658
1659
|
polygon.push(interiorRing);
|
|
1659
1660
|
}
|
|
1660
|
-
return {
|
|
1661
|
+
return {
|
|
1662
|
+
type: "Polygon",
|
|
1663
|
+
coordinates: polygon
|
|
1664
|
+
};
|
|
1661
1665
|
}
|
|
1662
1666
|
function parseMultiPoint3(reader, context) {
|
|
1663
1667
|
if (context.isEmpty) {
|
|
1664
|
-
return {
|
|
1668
|
+
return {
|
|
1669
|
+
type: "MultiPoint",
|
|
1670
|
+
coordinates: []
|
|
1671
|
+
};
|
|
1665
1672
|
}
|
|
1666
1673
|
const previousPoint = makePreviousPoint(context);
|
|
1667
1674
|
const pointCount = reader.readVarInt();
|
|
@@ -1669,11 +1676,17 @@
|
|
|
1669
1676
|
for (let i = 0; i < pointCount; i++) {
|
|
1670
1677
|
coordinates.push(parseNextPoint(reader, context, previousPoint));
|
|
1671
1678
|
}
|
|
1672
|
-
return {
|
|
1679
|
+
return {
|
|
1680
|
+
type: "MultiPoint",
|
|
1681
|
+
coordinates
|
|
1682
|
+
};
|
|
1673
1683
|
}
|
|
1674
1684
|
function parseMultiLineString3(reader, context) {
|
|
1675
1685
|
if (context.isEmpty) {
|
|
1676
|
-
return {
|
|
1686
|
+
return {
|
|
1687
|
+
type: "MultiLineString",
|
|
1688
|
+
coordinates: []
|
|
1689
|
+
};
|
|
1677
1690
|
}
|
|
1678
1691
|
const previousPoint = makePreviousPoint(context);
|
|
1679
1692
|
const lineStringCount = reader.readVarInt();
|
|
@@ -1686,11 +1699,17 @@
|
|
|
1686
1699
|
}
|
|
1687
1700
|
coordinates.push(lineString);
|
|
1688
1701
|
}
|
|
1689
|
-
return {
|
|
1702
|
+
return {
|
|
1703
|
+
type: "MultiLineString",
|
|
1704
|
+
coordinates
|
|
1705
|
+
};
|
|
1690
1706
|
}
|
|
1691
1707
|
function parseMultiPolygon3(reader, context) {
|
|
1692
1708
|
if (context.isEmpty) {
|
|
1693
|
-
return {
|
|
1709
|
+
return {
|
|
1710
|
+
type: "MultiPolygon",
|
|
1711
|
+
coordinates: []
|
|
1712
|
+
};
|
|
1694
1713
|
}
|
|
1695
1714
|
const previousPoint = makePreviousPoint(context);
|
|
1696
1715
|
const polygonCount = reader.readVarInt();
|
|
@@ -1713,10 +1732,16 @@
|
|
|
1713
1732
|
}
|
|
1714
1733
|
polygons.push(polygon);
|
|
1715
1734
|
}
|
|
1716
|
-
return {
|
|
1735
|
+
return {
|
|
1736
|
+
type: "MultiPolygon",
|
|
1737
|
+
coordinates: polygons
|
|
1738
|
+
};
|
|
1717
1739
|
}
|
|
1718
1740
|
function parseGeometryCollection2(reader, context) {
|
|
1719
|
-
return {
|
|
1741
|
+
return {
|
|
1742
|
+
type: "GeometryCollection",
|
|
1743
|
+
geometries: []
|
|
1744
|
+
};
|
|
1720
1745
|
}
|
|
1721
1746
|
function zigZagDecode(value) {
|
|
1722
1747
|
return value >> 1 ^ -(value & 1);
|
|
@@ -1745,42 +1770,29 @@
|
|
|
1745
1770
|
}
|
|
1746
1771
|
return previousPoint.slice();
|
|
1747
1772
|
}
|
|
1748
|
-
var init_parse_twkb = __esm({
|
|
1749
|
-
"src/lib/parse-twkb.ts"() {
|
|
1750
|
-
init_binary_reader();
|
|
1751
|
-
init_parse_wkb_header();
|
|
1752
|
-
}
|
|
1753
|
-
});
|
|
1754
1773
|
|
|
1755
1774
|
// src/twkb-loader.ts
|
|
1756
|
-
var TWKBWorkerLoader
|
|
1757
|
-
|
|
1758
|
-
"
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
tests: [isTWKB],
|
|
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
|
-
};
|
|
1775
|
+
var TWKBWorkerLoader = {
|
|
1776
|
+
name: "TWKB (Tiny Well-Known Binary)",
|
|
1777
|
+
id: "twkb",
|
|
1778
|
+
module: "wkt",
|
|
1779
|
+
version: VERSION,
|
|
1780
|
+
worker: true,
|
|
1781
|
+
category: "geometry",
|
|
1782
|
+
extensions: ["twkb"],
|
|
1783
|
+
mimeTypes: [],
|
|
1784
|
+
tests: [isTWKB],
|
|
1785
|
+
options: {
|
|
1786
|
+
wkb: {
|
|
1787
|
+
shape: "binary-geometry"
|
|
1788
|
+
}
|
|
1782
1789
|
}
|
|
1783
|
-
}
|
|
1790
|
+
};
|
|
1791
|
+
var TWKBLoader = {
|
|
1792
|
+
...TWKBWorkerLoader,
|
|
1793
|
+
parse: async (arrayBuffer) => parseTWKBGeometry(arrayBuffer),
|
|
1794
|
+
parseSync: parseTWKBGeometry
|
|
1795
|
+
};
|
|
1784
1796
|
|
|
1785
1797
|
// src/lib/encode-twkb.ts
|
|
1786
1798
|
function encodeTWKB(geometry, options) {
|
|
@@ -1879,7 +1891,9 @@
|
|
|
1879
1891
|
return writer.arrayBuffer;
|
|
1880
1892
|
}
|
|
1881
1893
|
function encodeMultiPolygon2(writer, context, multiPolygon) {
|
|
1882
|
-
const {
|
|
1894
|
+
const {
|
|
1895
|
+
coordinates
|
|
1896
|
+
} = multiPolygon;
|
|
1883
1897
|
const isEmpty = coordinates.length === 0;
|
|
1884
1898
|
writeTwkbHeader(writer, context, WKBGeometryType.MultiPolygon, isEmpty);
|
|
1885
1899
|
if (!isEmpty) {
|
|
@@ -1898,7 +1912,9 @@
|
|
|
1898
1912
|
}
|
|
1899
1913
|
}
|
|
1900
1914
|
function encodeGeometryCollection2(writer, context, geometryCollection) {
|
|
1901
|
-
const {
|
|
1915
|
+
const {
|
|
1916
|
+
geometries
|
|
1917
|
+
} = geometryCollection;
|
|
1902
1918
|
const isEmpty = geometries.length === 0;
|
|
1903
1919
|
writeTwkbHeader(writer, context, WKBGeometryType.GeometryCollection, isEmpty);
|
|
1904
1920
|
if (geometries.length > 0) {
|
|
@@ -1956,79 +1972,20 @@
|
|
|
1956
1972
|
mFactor: Math.pow(10, mPrecision)
|
|
1957
1973
|
};
|
|
1958
1974
|
}
|
|
1959
|
-
var init_encode_twkb = __esm({
|
|
1960
|
-
"src/lib/encode-twkb.ts"() {
|
|
1961
|
-
init_binary_writer();
|
|
1962
|
-
init_parse_wkb_header();
|
|
1963
|
-
}
|
|
1964
|
-
});
|
|
1965
1975
|
|
|
1966
1976
|
// src/twkb-writer.ts
|
|
1967
|
-
var TWKBWriter
|
|
1968
|
-
|
|
1969
|
-
"
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
version: VERSION,
|
|
1977
|
-
extensions: ["twkb"],
|
|
1978
|
-
encodeSync: async (data, options) => encodeTWKB,
|
|
1979
|
-
options: {
|
|
1980
|
-
twkb: {}
|
|
1981
|
-
}
|
|
1982
|
-
};
|
|
1977
|
+
var TWKBWriter = {
|
|
1978
|
+
name: "TWKB (Tiny Well Known Binary)",
|
|
1979
|
+
id: "twkb",
|
|
1980
|
+
module: "wkt",
|
|
1981
|
+
version: VERSION,
|
|
1982
|
+
extensions: ["twkb"],
|
|
1983
|
+
encodeSync: async (data, options) => encodeTWKB,
|
|
1984
|
+
options: {
|
|
1985
|
+
twkb: {}
|
|
1983
1986
|
}
|
|
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);
|
|
2031
|
-
}
|
|
2032
|
-
});
|
|
2033
|
-
require_bundle();
|
|
1987
|
+
};
|
|
1988
|
+
return __toCommonJS(src_exports);
|
|
2034
1989
|
})();
|
|
1990
|
+
return __exports__;
|
|
1991
|
+
});
|