@loaders.gl/wkt 4.0.0-alpha.9 → 4.0.0-beta.1
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/README.md +4 -1
- package/dist/dist.min.js +1449 -404
- package/dist/es5/hex-wkb-loader.js +64 -0
- package/dist/es5/hex-wkb-loader.js.map +1 -0
- package/dist/es5/index.js +76 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/encode-twkb.js +269 -0
- package/dist/es5/lib/encode-twkb.js.map +1 -0
- package/dist/es5/lib/encode-wkb.js +12 -10
- package/dist/es5/lib/encode-wkb.js.map +1 -1
- package/dist/es5/lib/encode-wkt-crs.js +32 -0
- package/dist/es5/lib/encode-wkt-crs.js.map +1 -0
- package/dist/es5/lib/encode-wkt.js +1 -1
- package/dist/es5/lib/encode-wkt.js.map +1 -1
- package/dist/es5/lib/parse-hex-wkb.js +2 -0
- package/dist/es5/lib/parse-hex-wkb.js.map +1 -0
- package/dist/es5/lib/parse-twkb.js +263 -0
- package/dist/es5/lib/parse-twkb.js.map +1 -0
- package/dist/es5/lib/parse-wkb-header.js +114 -0
- package/dist/es5/lib/parse-wkb-header.js.map +1 -0
- package/dist/es5/lib/parse-wkb.js +59 -52
- package/dist/es5/lib/parse-wkb.js.map +1 -1
- package/dist/es5/lib/parse-wkt-crs.js +106 -0
- package/dist/es5/lib/parse-wkt-crs.js.map +1 -0
- package/dist/es5/lib/parse-wkt.js +210 -153
- package/dist/es5/lib/parse-wkt.js.map +1 -1
- package/dist/es5/lib/utils/base64-encoder.js +26 -0
- package/dist/es5/lib/utils/base64-encoder.js.map +1 -0
- package/dist/es5/lib/utils/binary-reader.js +98 -0
- package/dist/es5/lib/utils/binary-reader.js.map +1 -0
- package/dist/es5/lib/utils/binary-writer.js +2 -2
- package/dist/es5/lib/utils/binary-writer.js.map +1 -1
- package/dist/es5/lib/utils/hex-encoder.js +63 -0
- package/dist/es5/lib/utils/hex-encoder.js.map +1 -0
- package/dist/es5/lib/utils/hex-transcoder.js +41 -0
- package/dist/es5/lib/utils/hex-transcoder.js.map +1 -0
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/twkb-loader.js +53 -0
- package/dist/es5/twkb-loader.js.map +1 -0
- package/dist/es5/twkb-writer.js +40 -0
- package/dist/es5/twkb-writer.js.map +1 -0
- package/dist/es5/wkb-loader.js +9 -9
- package/dist/es5/wkb-loader.js.map +1 -1
- package/dist/es5/wkb-writer.js +2 -3
- package/dist/es5/wkb-writer.js.map +1 -1
- package/dist/es5/wkt-crs-loader.js +47 -0
- package/dist/es5/wkt-crs-loader.js.map +1 -0
- package/dist/es5/wkt-crs-writer.js +49 -0
- package/dist/es5/wkt-crs-writer.js.map +1 -0
- package/dist/es5/wkt-loader.js +10 -6
- package/dist/es5/wkt-loader.js.map +1 -1
- package/dist/es5/wkt-writer.js +2 -3
- package/dist/es5/wkt-writer.js.map +1 -1
- package/dist/es5/workers/wkb-worker.js.map +1 -1
- package/dist/es5/workers/wkt-worker.js.map +1 -1
- package/dist/esm/hex-wkb-loader.js +37 -0
- package/dist/esm/hex-wkb-loader.js.map +1 -0
- package/dist/esm/index.js +10 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/encode-twkb.js +180 -0
- package/dist/esm/lib/encode-twkb.js.map +1 -0
- package/dist/esm/lib/encode-wkb.js +4 -4
- package/dist/esm/lib/encode-wkb.js.map +1 -1
- package/dist/esm/lib/encode-wkt-crs.js +21 -0
- package/dist/esm/lib/encode-wkt-crs.js.map +1 -0
- package/dist/esm/lib/encode-wkt.js +1 -1
- package/dist/esm/lib/encode-wkt.js.map +1 -1
- package/dist/esm/lib/parse-hex-wkb.js +2 -0
- package/dist/esm/lib/parse-hex-wkb.js.map +1 -0
- package/dist/esm/lib/parse-twkb.js +256 -0
- package/dist/esm/lib/parse-twkb.js.map +1 -0
- package/dist/esm/lib/parse-wkb-header.js +105 -0
- package/dist/esm/lib/parse-wkb-header.js.map +1 -0
- package/dist/esm/lib/parse-wkb.js +59 -51
- package/dist/esm/lib/parse-wkb.js.map +1 -1
- package/dist/esm/lib/parse-wkt-crs.js +96 -0
- package/dist/esm/lib/parse-wkt-crs.js.map +1 -0
- package/dist/esm/lib/parse-wkt.js +204 -152
- package/dist/esm/lib/parse-wkt.js.map +1 -1
- package/dist/esm/lib/utils/base64-encoder.js +7 -0
- package/dist/esm/lib/utils/base64-encoder.js.map +1 -0
- package/dist/esm/lib/utils/binary-reader.js +67 -0
- package/dist/esm/lib/utils/binary-reader.js.map +1 -0
- package/dist/esm/lib/utils/binary-writer.js +1 -1
- package/dist/esm/lib/utils/binary-writer.js.map +1 -1
- package/dist/esm/lib/utils/hex-encoder.js +40 -0
- package/dist/esm/lib/utils/hex-encoder.js.map +1 -0
- package/dist/esm/lib/utils/hex-transcoder.js +34 -0
- package/dist/esm/lib/utils/hex-transcoder.js.map +1 -0
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/esm/twkb-loader.js +24 -0
- package/dist/esm/twkb-loader.js.map +1 -0
- package/dist/esm/twkb-writer.js +14 -0
- package/dist/esm/twkb-writer.js.map +1 -0
- package/dist/esm/wkb-loader.js +6 -4
- package/dist/esm/wkb-loader.js.map +1 -1
- package/dist/esm/wkb-writer.js +1 -1
- package/dist/esm/wkb-writer.js.map +1 -1
- package/dist/esm/wkt-crs-loader.js +19 -0
- package/dist/esm/wkt-crs-loader.js.map +1 -0
- package/dist/esm/wkt-crs-writer.js +19 -0
- package/dist/esm/wkt-crs-writer.js.map +1 -0
- package/dist/esm/wkt-loader.js +8 -3
- package/dist/esm/wkt-loader.js.map +1 -1
- package/dist/esm/wkt-writer.js +2 -2
- package/dist/esm/wkt-writer.js.map +1 -1
- package/dist/esm/workers/wkb-worker.js.map +1 -1
- package/dist/esm/workers/wkt-worker.js.map +1 -1
- package/dist/src/bundle.d.ts.map +1 -0
- package/dist/src/hex-wkb-loader.d.ts +17 -0
- package/dist/src/hex-wkb-loader.d.ts.map +1 -0
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/lib/encode-twkb.d.ts +6 -0
- package/dist/src/lib/encode-twkb.d.ts.map +1 -0
- package/dist/{lib → src/lib}/encode-wkb.d.ts +16 -3
- package/dist/src/lib/encode-wkb.d.ts.map +1 -0
- package/dist/src/lib/encode-wkt-crs.d.ts +10 -0
- package/dist/src/lib/encode-wkt-crs.d.ts.map +1 -0
- package/dist/{lib → src/lib}/encode-wkt.d.ts +1 -1
- package/dist/src/lib/encode-wkt.d.ts.map +1 -0
- package/dist/src/lib/parse-hex-wkb.d.ts +1 -0
- package/dist/src/lib/parse-hex-wkb.d.ts.map +1 -0
- package/dist/src/lib/parse-twkb.d.ts +9 -0
- package/dist/src/lib/parse-twkb.d.ts.map +1 -0
- package/dist/src/lib/parse-wkb-header.d.ts +39 -0
- package/dist/src/lib/parse-wkb-header.d.ts.map +1 -0
- package/dist/src/lib/parse-wkb.d.ts +5 -0
- package/dist/src/lib/parse-wkb.d.ts.map +1 -0
- package/dist/src/lib/parse-wkt-crs.d.ts +15 -0
- package/dist/src/lib/parse-wkt-crs.d.ts.map +1 -0
- package/dist/src/lib/parse-wkt.d.ts +30 -0
- package/dist/src/lib/parse-wkt.d.ts.map +1 -0
- package/dist/src/lib/utils/base64-encoder.d.ts +5 -0
- package/dist/src/lib/utils/base64-encoder.d.ts.map +1 -0
- package/dist/src/lib/utils/binary-reader.d.ts +18 -0
- package/dist/src/lib/utils/binary-reader.d.ts.map +1 -0
- package/dist/{lib → src/lib}/utils/binary-writer.d.ts +1 -1
- package/dist/src/lib/utils/binary-writer.d.ts.map +1 -0
- package/dist/src/lib/utils/hex-encoder.d.ts +15 -0
- package/dist/src/lib/utils/hex-encoder.d.ts.map +1 -0
- package/dist/src/lib/utils/hex-transcoder.d.ts +15 -0
- package/dist/src/lib/utils/hex-transcoder.d.ts.map +1 -0
- package/dist/src/lib/utils/version.d.ts.map +1 -0
- package/dist/src/twkb-loader.d.ts +16 -0
- package/dist/src/twkb-loader.d.ts.map +1 -0
- package/dist/src/twkb-writer.d.ts +7 -0
- package/dist/src/twkb-writer.d.ts.map +1 -0
- package/dist/src/wkb-loader.d.ts +16 -0
- package/dist/src/wkb-loader.d.ts.map +1 -0
- package/dist/src/wkb-writer.d.ts +7 -0
- package/dist/src/wkb-writer.d.ts.map +1 -0
- package/dist/src/wkt-crs-loader.d.ts +12 -0
- package/dist/src/wkt-crs-loader.d.ts.map +1 -0
- package/dist/src/wkt-crs-writer.d.ts +13 -0
- package/dist/src/wkt-crs-writer.d.ts.map +1 -0
- package/dist/src/wkt-loader.d.ts +18 -0
- package/dist/src/wkt-loader.d.ts.map +1 -0
- package/dist/src/wkt-writer.d.ts +10 -0
- package/dist/src/wkt-writer.d.ts.map +1 -0
- package/dist/{workers → src/workers}/wkb-worker.d.ts.map +1 -1
- package/dist/{workers → src/workers}/wkt-worker.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/wkt-worker.js +230 -186
- package/package.json +4 -4
- package/src/hex-wkb-loader.ts +61 -0
- package/src/index.ts +22 -1
- package/src/lib/encode-twkb.ts +304 -0
- package/src/lib/encode-wkb.ts +5 -5
- package/src/lib/encode-wkt-crs.ts +39 -0
- package/src/lib/encode-wkt.ts +3 -2
- package/src/lib/parse-hex-wkb.ts +0 -0
- package/src/lib/parse-twkb.ts +356 -0
- package/src/lib/parse-wkb-header.ts +172 -0
- package/src/lib/parse-wkb.ts +69 -58
- package/src/lib/parse-wkt-crs.ts +147 -0
- package/src/lib/parse-wkt.ts +275 -174
- package/src/lib/utils/base64-encoder.ts +153 -0
- package/src/lib/utils/binary-reader.ts +72 -0
- package/src/lib/utils/binary-writer.ts +1 -1
- package/src/lib/utils/hex-encoder.ts +58 -0
- package/src/lib/utils/hex-transcoder.ts +50 -0
- package/src/twkb-loader.ts +42 -0
- package/src/twkb-writer.ts +25 -0
- package/src/wkb-loader.ts +19 -8
- package/src/wkb-writer.ts +6 -4
- package/src/wkt-crs-loader.ts +33 -0
- package/src/wkt-crs-writer.ts +37 -0
- package/src/wkt-loader.ts +22 -6
- package/src/wkt-writer.ts +12 -5
- package/src/workers/wkb-worker.ts +2 -0
- package/src/workers/wkt-worker.ts +2 -0
- package/dist/bundle.d.ts.map +0 -1
- package/dist/bundle.js +0 -5
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -13
- package/dist/lib/encode-wkb.d.ts.map +0 -1
- package/dist/lib/encode-wkb.js +0 -295
- package/dist/lib/encode-wkt.d.ts.map +0 -1
- package/dist/lib/encode-wkt.js +0 -46
- package/dist/lib/parse-wkb.d.ts +0 -3
- package/dist/lib/parse-wkb.d.ts.map +0 -1
- package/dist/lib/parse-wkb.js +0 -236
- package/dist/lib/parse-wkt.d.ts +0 -8
- package/dist/lib/parse-wkt.d.ts.map +0 -1
- package/dist/lib/parse-wkt.js +0 -227
- package/dist/lib/utils/binary-writer.d.ts.map +0 -1
- package/dist/lib/utils/binary-writer.js +0 -120
- package/dist/lib/utils/version.d.ts.map +0 -1
- package/dist/lib/utils/version.js +0 -7
- package/dist/wkb-loader.d.ts +0 -39
- package/dist/wkb-loader.d.ts.map +0 -1
- package/dist/wkb-loader.js +0 -34
- package/dist/wkb-writer.d.ts +0 -6
- package/dist/wkb-writer.d.ts.map +0 -1
- package/dist/wkb-writer.js +0 -26
- package/dist/wkt-loader.d.ts +0 -10
- package/dist/wkt-loader.d.ts.map +0 -1
- package/dist/wkt-loader.js +0 -33
- package/dist/wkt-writer.d.ts +0 -6
- package/dist/wkt-writer.d.ts.map +0 -1
- package/dist/wkt-writer.js +0 -23
- package/dist/workers/wkb-worker.js +0 -5
- package/dist/workers/wkt-worker.js +0 -5
- /package/dist/{bundle.d.ts → src/bundle.d.ts} +0 -0
- /package/dist/{lib → src/lib}/utils/version.d.ts +0 -0
- /package/dist/{workers → src/workers}/wkb-worker.d.ts +0 -0
- /package/dist/{workers → src/workers}/wkt-worker.d.ts +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.HexWKBLoader = void 0;
|
|
8
|
+
exports.isHexWKB = isHexWKB;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _wkbLoader = require("./wkb-loader");
|
|
12
|
+
var _version = require("./lib/utils/version");
|
|
13
|
+
var _hexTranscoder = require("./lib/utils/hex-transcoder");
|
|
14
|
+
var HexWKBLoader = {
|
|
15
|
+
name: 'Hexadecimal WKB',
|
|
16
|
+
id: 'wkb',
|
|
17
|
+
module: 'wkt',
|
|
18
|
+
version: _version.VERSION,
|
|
19
|
+
worker: true,
|
|
20
|
+
category: 'geometry',
|
|
21
|
+
extensions: ['wkb'],
|
|
22
|
+
mimeTypes: [],
|
|
23
|
+
options: _wkbLoader.WKBLoader.options,
|
|
24
|
+
text: true,
|
|
25
|
+
testText: isHexWKB,
|
|
26
|
+
parse: function () {
|
|
27
|
+
var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer) {
|
|
28
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
29
|
+
while (1) switch (_context.prev = _context.next) {
|
|
30
|
+
case 0:
|
|
31
|
+
return _context.abrupt("return", parseHexWKB(new TextDecoder().decode(arrayBuffer)));
|
|
32
|
+
case 1:
|
|
33
|
+
case "end":
|
|
34
|
+
return _context.stop();
|
|
35
|
+
}
|
|
36
|
+
}, _callee);
|
|
37
|
+
}));
|
|
38
|
+
function parse(_x) {
|
|
39
|
+
return _parse.apply(this, arguments);
|
|
40
|
+
}
|
|
41
|
+
return parse;
|
|
42
|
+
}(),
|
|
43
|
+
parseTextSync: parseHexWKB
|
|
44
|
+
};
|
|
45
|
+
exports.HexWKBLoader = HexWKBLoader;
|
|
46
|
+
function parseHexWKB(text, options) {
|
|
47
|
+
var _WKBLoader$parseSync;
|
|
48
|
+
var uint8Array = (0, _hexTranscoder.decodeHex)(text);
|
|
49
|
+
var binaryGeometry = (_WKBLoader$parseSync = _wkbLoader.WKBLoader.parseSync) === null || _WKBLoader$parseSync === void 0 ? void 0 : _WKBLoader$parseSync.call(_wkbLoader.WKBLoader, uint8Array.buffer, options);
|
|
50
|
+
return binaryGeometry;
|
|
51
|
+
}
|
|
52
|
+
function isHexWKB(string) {
|
|
53
|
+
if (!string) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
if (string.length < 10 || string.length % 2 !== 0) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
if (!string.startsWith('00') && !string.startsWith('01')) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return /^[0-9a-fA-F]+$/.test(string.slice(2));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=hex-wkb-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hex-wkb-loader.js","names":["_wkbLoader","require","_version","_hexTranscoder","HexWKBLoader","name","id","module","version","VERSION","worker","category","extensions","mimeTypes","options","WKBLoader","text","testText","isHexWKB","parse","_parse","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","wrap","_callee$","_context","prev","next","abrupt","parseHexWKB","TextDecoder","decode","stop","_x","apply","arguments","parseTextSync","exports","_WKBLoader$parseSync","uint8Array","decodeHex","binaryGeometry","parseSync","call","buffer","string","length","startsWith","test","slice"],"sources":["../../src/hex-wkb-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {BinaryGeometry} from '@loaders.gl/schema';\n\nimport type {WKBLoaderOptions} from './wkb-loader';\nimport {WKBLoader} from './wkb-loader';\nimport {VERSION} from './lib/utils/version';\nimport {decodeHex} from './lib/utils/hex-transcoder';\n\nexport type HexWKBLoaderOptions = WKBLoaderOptions;\n\n/**\n * Worker loader for Hex-encoded WKB (Well-Known Binary)\n */\nexport const HexWKBLoader: LoaderWithParser<BinaryGeometry, never, HexWKBLoaderOptions> = {\n name: 'Hexadecimal WKB',\n id: 'wkb',\n module: 'wkt',\n version: VERSION,\n worker: true,\n category: 'geometry',\n extensions: ['wkb'],\n mimeTypes: [],\n options: WKBLoader.options,\n text: true,\n testText: isHexWKB,\n // TODO - encoding here seems wasteful - extend hex transcoder?\n parse: async (arrayBuffer: ArrayBuffer) => parseHexWKB(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseHexWKB\n};\n\nfunction parseHexWKB(text: string, options?: HexWKBLoaderOptions): BinaryGeometry {\n const uint8Array = decodeHex(text);\n const binaryGeometry = WKBLoader.parseSync?.(uint8Array.buffer, options);\n // @ts-expect-error\n return binaryGeometry;\n}\n\n/**\n * Check if string is a valid Well-known binary (WKB) in HEX format\n * https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry\n *\n * @param str input string\n * @returns true if string is a valid WKB in HEX format\n */\nexport function isHexWKB(string: string | null): boolean {\n if (!string) {\n return false;\n }\n // check if the length of the string is even and is at least 10 characters long\n if (string.length < 10 || string.length % 2 !== 0) {\n return false;\n }\n // check if first two characters are 00 or 01\n if (!string.startsWith('00') && !string.startsWith('01')) {\n return false;\n }\n // check if the rest of the string is a valid hex\n return /^[0-9a-fA-F]+$/.test(string.slice(2));\n}\n"],"mappings":";;;;;;;;;;AAMA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAOO,IAAMG,YAA0E,GAAG;EACxFC,IAAI,EAAE,iBAAiB;EACvBC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEC,gBAAO;EAChBC,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,EAAE;EACbC,OAAO,EAAEC,oBAAS,CAACD,OAAO;EAC1BE,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAEC,QAAQ;EAElBC,KAAK;IAAA,IAAAC,MAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,WAAwB;MAAA,OAAAH,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WAAKC,WAAW,CAAC,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACT,WAAW,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,MAAAkB,EAAA;MAAA,OAAAjB,MAAA,CAAAkB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAApB,KAAA;EAAA;EAC7FqB,aAAa,EAAEP;AACjB,CAAC;AAACQ,OAAA,CAAArC,YAAA,GAAAA,YAAA;AAEF,SAAS6B,WAAWA,CAACjB,IAAY,EAAEF,OAA6B,EAAkB;EAAA,IAAA4B,oBAAA;EAChF,IAAMC,UAAU,GAAG,IAAAC,wBAAS,EAAC5B,IAAI,CAAC;EAClC,IAAM6B,cAAc,IAAAH,oBAAA,GAAG3B,oBAAS,CAAC+B,SAAS,cAAAJ,oBAAA,uBAAnBA,oBAAA,CAAAK,IAAA,CAAAhC,oBAAS,EAAa4B,UAAU,CAACK,MAAM,EAAElC,OAAO,CAAC;EAExE,OAAO+B,cAAc;AACvB;AASO,SAAS3B,QAAQA,CAAC+B,MAAqB,EAAW;EACvD,IAAI,CAACA,MAAM,EAAE;IACX,OAAO,KAAK;EACd;EAEA,IAAIA,MAAM,CAACC,MAAM,GAAG,EAAE,IAAID,MAAM,CAACC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;IACjD,OAAO,KAAK;EACd;EAEA,IAAI,CAACD,MAAM,CAACE,UAAU,CAAC,IAAI,CAAC,IAAI,CAACF,MAAM,CAACE,UAAU,CAAC,IAAI,CAAC,EAAE;IACxD,OAAO,KAAK;EACd;EAEA,OAAO,gBAAgB,CAACC,IAAI,CAACH,MAAM,CAACI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/C"}
|
package/dist/es5/index.js
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "HexWKBLoader", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _hexWkbLoader.HexWKBLoader;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "TWKBLoader", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _twkbLoader.TWKBLoader;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "TWKBWriter", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _twkbWriter.TWKBWriter;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
6
24
|
Object.defineProperty(exports, "WKBLoader", {
|
|
7
25
|
enumerable: true,
|
|
8
26
|
get: function get() {
|
|
@@ -21,6 +39,18 @@ Object.defineProperty(exports, "WKBWriter", {
|
|
|
21
39
|
return _wkbWriter.WKBWriter;
|
|
22
40
|
}
|
|
23
41
|
});
|
|
42
|
+
Object.defineProperty(exports, "WKTCRSLoader", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function get() {
|
|
45
|
+
return _wktCrsLoader.WKTCRSLoader;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "WKTCRSWriter", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function get() {
|
|
51
|
+
return _wktCrsWriter.WKTCRSWriter;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
24
54
|
Object.defineProperty(exports, "WKTLoader", {
|
|
25
55
|
enumerable: true,
|
|
26
56
|
get: function get() {
|
|
@@ -39,8 +69,53 @@ Object.defineProperty(exports, "WKTWriter", {
|
|
|
39
69
|
return _wktWriter.WKTWriter;
|
|
40
70
|
}
|
|
41
71
|
});
|
|
42
|
-
|
|
72
|
+
Object.defineProperty(exports, "decodeHex", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function get() {
|
|
75
|
+
return _hexTranscoder.decodeHex;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(exports, "encodeHex", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function get() {
|
|
81
|
+
return _hexTranscoder.encodeHex;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
Object.defineProperty(exports, "isTWKB", {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function get() {
|
|
87
|
+
return _parseTwkb.isTWKB;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(exports, "isWKB", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function get() {
|
|
93
|
+
return _parseWkbHeader.isWKB;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
Object.defineProperty(exports, "isWKT", {
|
|
97
|
+
enumerable: true,
|
|
98
|
+
get: function get() {
|
|
99
|
+
return _parseWkt.isWKT;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
Object.defineProperty(exports, "parseWKBHeader", {
|
|
103
|
+
enumerable: true,
|
|
104
|
+
get: function get() {
|
|
105
|
+
return _parseWkbHeader.parseWKBHeader;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
var _wktCrsLoader = require("./wkt-crs-loader");
|
|
109
|
+
var _wktCrsWriter = require("./wkt-crs-writer");
|
|
43
110
|
var _wktLoader = require("./wkt-loader");
|
|
44
111
|
var _wktWriter = require("./wkt-writer");
|
|
112
|
+
var _wkbLoader = require("./wkb-loader");
|
|
45
113
|
var _wkbWriter = require("./wkb-writer");
|
|
114
|
+
var _hexWkbLoader = require("./hex-wkb-loader");
|
|
115
|
+
var _twkbLoader = require("./twkb-loader");
|
|
116
|
+
var _twkbWriter = require("./twkb-writer");
|
|
117
|
+
var _parseWkt = require("./lib/parse-wkt");
|
|
118
|
+
var _parseWkbHeader = require("./lib/parse-wkb-header");
|
|
119
|
+
var _parseTwkb = require("./lib/parse-twkb");
|
|
120
|
+
var _hexTranscoder = require("./lib/utils/hex-transcoder");
|
|
46
121
|
//# sourceMappingURL=index.js.map
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_wktCrsLoader","require","_wktCrsWriter","_wktLoader","_wktWriter","_wkbLoader","_wkbWriter","_hexWkbLoader","_twkbLoader","_twkbWriter","_parseWkt","_parseWkbHeader","_parseTwkb","_hexTranscoder"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport {WKTCRSLoader} from './wkt-crs-loader';\nexport {WKTCRSWriter} from './wkt-crs-writer';\n\nexport {WKTLoader, WKTWorkerLoader} from './wkt-loader';\nexport {WKTWriter} from './wkt-writer';\n\nexport {WKBLoader, WKBWorkerLoader} from './wkb-loader';\nexport {WKBWriter} from './wkb-writer';\n\nexport {HexWKBLoader} from './hex-wkb-loader';\n\nexport {TWKBLoader} from './twkb-loader';\nexport {TWKBWriter} from './twkb-writer';\n\n// EXPERIMENTAL APIs\nexport {isWKT} from './lib/parse-wkt';\n\nexport {isWKB, parseWKBHeader} from './lib/parse-wkb-header';\nexport type {WKBHeader} from './lib/parse-wkb-header';\n\nexport {isTWKB} from './lib/parse-twkb';\n\nexport {encodeHex, decodeHex} from './lib/utils/hex-transcoder';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAEA,IAAAM,aAAA,GAAAN,OAAA;AAEA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AAGA,IAAAS,SAAA,GAAAT,OAAA;AAEA,IAAAU,eAAA,GAAAV,OAAA;AAGA,IAAAW,UAAA,GAAAX,OAAA;AAEA,IAAAY,cAAA,GAAAZ,OAAA"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.encodeTWKB = encodeTWKB;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _binaryWriter = require("./utils/binary-writer");
|
|
10
|
+
var _parseWkbHeader = require("./parse-wkb-header");
|
|
11
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
12
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
13
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
|
+
function encodeTWKB(geometry, options) {
|
|
17
|
+
var writer = new _binaryWriter.BinaryWriter(0, true);
|
|
18
|
+
var context = _objectSpread(_objectSpread({}, getTwkbPrecision(5, 0, 0)), {}, {
|
|
19
|
+
hasZ: options === null || options === void 0 ? void 0 : options.hasZ,
|
|
20
|
+
hasM: options === null || options === void 0 ? void 0 : options.hasM
|
|
21
|
+
});
|
|
22
|
+
encodeGeometry(writer, geometry, context);
|
|
23
|
+
return writer.arrayBuffer;
|
|
24
|
+
}
|
|
25
|
+
function encodeGeometry(writer, geometry, context) {
|
|
26
|
+
switch (geometry.type) {
|
|
27
|
+
case 'Point':
|
|
28
|
+
return encodePoint(writer, context, geometry);
|
|
29
|
+
case 'LineString':
|
|
30
|
+
return encodeLineString(writer, context, geometry);
|
|
31
|
+
case 'Polygon':
|
|
32
|
+
return encodePolygon(writer, context, geometry);
|
|
33
|
+
case 'MultiPoint':
|
|
34
|
+
return encodeMultiPoint(writer, context, geometry);
|
|
35
|
+
case 'MultiLineString':
|
|
36
|
+
return encodeMultiLineString(writer, context, geometry);
|
|
37
|
+
case 'MultiPolygon':
|
|
38
|
+
return encodeMultiPolygon(writer, context, geometry);
|
|
39
|
+
case 'GeometryCollection':
|
|
40
|
+
return encodeGeometryCollection(writer, context, geometry);
|
|
41
|
+
default:
|
|
42
|
+
throw new Error('unsupported geometry type');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function encodePoint(writer, context, point) {
|
|
46
|
+
var isEmpty = point.coordinates.length === 0 || point[0] === 'undefined' || point[1] === 'undefined';
|
|
47
|
+
writeTwkbHeader(writer, context, _parseWkbHeader.WKBGeometryType.Point, isEmpty);
|
|
48
|
+
if (!isEmpty) {
|
|
49
|
+
var previousPoint = [0, 0, 0, 0];
|
|
50
|
+
writeTwkbPoint(writer, context, point.coordinates, previousPoint);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function encodeLineString(writer, context, lineString) {
|
|
54
|
+
var points = lineString.coordinates;
|
|
55
|
+
var isEmpty = points.length === 0;
|
|
56
|
+
writeTwkbHeader(writer, context, _parseWkbHeader.WKBGeometryType.LineString, isEmpty);
|
|
57
|
+
if (!isEmpty) {
|
|
58
|
+
writer.writeVarInt(points.length);
|
|
59
|
+
var previousPoint = [0, 0, 0, 0];
|
|
60
|
+
var _iterator = _createForOfIteratorHelper(points),
|
|
61
|
+
_step;
|
|
62
|
+
try {
|
|
63
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
64
|
+
var point = _step.value;
|
|
65
|
+
writeTwkbPoint(writer, context, point, previousPoint);
|
|
66
|
+
}
|
|
67
|
+
} catch (err) {
|
|
68
|
+
_iterator.e(err);
|
|
69
|
+
} finally {
|
|
70
|
+
_iterator.f();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return writer.arrayBuffer;
|
|
74
|
+
}
|
|
75
|
+
function encodePolygon(writer, context, polygon) {
|
|
76
|
+
var polygonRings = polygon.coordinates;
|
|
77
|
+
var isEmpty = polygonRings.length === 0;
|
|
78
|
+
writeTwkbHeader(writer, context, _parseWkbHeader.WKBGeometryType.Polygon, isEmpty);
|
|
79
|
+
if (!isEmpty) {
|
|
80
|
+
writer.writeVarInt(polygonRings.length);
|
|
81
|
+
var previousPoint = [0, 0, 0, 0];
|
|
82
|
+
var _iterator2 = _createForOfIteratorHelper(polygonRings),
|
|
83
|
+
_step2;
|
|
84
|
+
try {
|
|
85
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
86
|
+
var ring = _step2.value;
|
|
87
|
+
writer.writeVarInt(ring.length);
|
|
88
|
+
var _iterator3 = _createForOfIteratorHelper(ring),
|
|
89
|
+
_step3;
|
|
90
|
+
try {
|
|
91
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
92
|
+
var point = _step3.value;
|
|
93
|
+
writeTwkbPoint(writer, context, previousPoint, point);
|
|
94
|
+
}
|
|
95
|
+
} catch (err) {
|
|
96
|
+
_iterator3.e(err);
|
|
97
|
+
} finally {
|
|
98
|
+
_iterator3.f();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
} catch (err) {
|
|
102
|
+
_iterator2.e(err);
|
|
103
|
+
} finally {
|
|
104
|
+
_iterator2.f();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return writer.arrayBuffer;
|
|
108
|
+
}
|
|
109
|
+
function encodeMultiPoint(writer, context, multiPoint) {
|
|
110
|
+
var points = multiPoint.coordinates;
|
|
111
|
+
var isEmpty = points.length === 0;
|
|
112
|
+
writeTwkbHeader(writer, context, _parseWkbHeader.WKBGeometryType.MultiPoint, isEmpty);
|
|
113
|
+
if (!isEmpty) {
|
|
114
|
+
writer.writeVarInt(points.length);
|
|
115
|
+
var previousPoint = [0, 0, 0, 0];
|
|
116
|
+
for (var i = 0; i < points.length; i++) {
|
|
117
|
+
writeTwkbPoint(writer, context, previousPoint, points[i]);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function encodeMultiLineString(writer, context, multiLineStrings) {
|
|
122
|
+
var lineStrings = multiLineStrings.coordinates;
|
|
123
|
+
var isEmpty = lineStrings.length === 0;
|
|
124
|
+
writeTwkbHeader(writer, context, _parseWkbHeader.WKBGeometryType.MultiLineString, isEmpty);
|
|
125
|
+
if (!isEmpty) {
|
|
126
|
+
writer.writeVarInt(lineStrings.length);
|
|
127
|
+
var previousPoint = [0, 0, 0, 0];
|
|
128
|
+
var _iterator4 = _createForOfIteratorHelper(lineStrings),
|
|
129
|
+
_step4;
|
|
130
|
+
try {
|
|
131
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
132
|
+
var lineString = _step4.value;
|
|
133
|
+
writer.writeVarInt(lineString.length);
|
|
134
|
+
var _iterator5 = _createForOfIteratorHelper(lineString),
|
|
135
|
+
_step5;
|
|
136
|
+
try {
|
|
137
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
138
|
+
var point = _step5.value;
|
|
139
|
+
writeTwkbPoint(writer, context, previousPoint, point);
|
|
140
|
+
}
|
|
141
|
+
} catch (err) {
|
|
142
|
+
_iterator5.e(err);
|
|
143
|
+
} finally {
|
|
144
|
+
_iterator5.f();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
} catch (err) {
|
|
148
|
+
_iterator4.e(err);
|
|
149
|
+
} finally {
|
|
150
|
+
_iterator4.f();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return writer.arrayBuffer;
|
|
154
|
+
}
|
|
155
|
+
function encodeMultiPolygon(writer, context, multiPolygon) {
|
|
156
|
+
var coordinates = multiPolygon.coordinates;
|
|
157
|
+
var isEmpty = coordinates.length === 0;
|
|
158
|
+
writeTwkbHeader(writer, context, _parseWkbHeader.WKBGeometryType.MultiPolygon, isEmpty);
|
|
159
|
+
if (!isEmpty) {
|
|
160
|
+
var polygons = coordinates;
|
|
161
|
+
writer.writeVarInt(polygons.length);
|
|
162
|
+
var previousPoint = [0, 0, 0, 0];
|
|
163
|
+
var _iterator6 = _createForOfIteratorHelper(polygons),
|
|
164
|
+
_step6;
|
|
165
|
+
try {
|
|
166
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
167
|
+
var polygonRings = _step6.value;
|
|
168
|
+
writer.writeVarInt(polygonRings.length);
|
|
169
|
+
var _iterator7 = _createForOfIteratorHelper(polygonRings),
|
|
170
|
+
_step7;
|
|
171
|
+
try {
|
|
172
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
173
|
+
var ring = _step7.value;
|
|
174
|
+
writer.writeVarInt(ring.length);
|
|
175
|
+
var _iterator8 = _createForOfIteratorHelper(ring),
|
|
176
|
+
_step8;
|
|
177
|
+
try {
|
|
178
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
179
|
+
var point = _step8.value;
|
|
180
|
+
writeTwkbPoint(writer, context, previousPoint, point);
|
|
181
|
+
}
|
|
182
|
+
} catch (err) {
|
|
183
|
+
_iterator8.e(err);
|
|
184
|
+
} finally {
|
|
185
|
+
_iterator8.f();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
} catch (err) {
|
|
189
|
+
_iterator7.e(err);
|
|
190
|
+
} finally {
|
|
191
|
+
_iterator7.f();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
} catch (err) {
|
|
195
|
+
_iterator6.e(err);
|
|
196
|
+
} finally {
|
|
197
|
+
_iterator6.f();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
function encodeGeometryCollection(writer, context, geometryCollection) {
|
|
202
|
+
var geometries = geometryCollection.geometries;
|
|
203
|
+
var isEmpty = geometries.length === 0;
|
|
204
|
+
writeTwkbHeader(writer, context, _parseWkbHeader.WKBGeometryType.GeometryCollection, isEmpty);
|
|
205
|
+
if (geometries.length > 0) {
|
|
206
|
+
writer.writeVarInt(geometries.length);
|
|
207
|
+
var _iterator9 = _createForOfIteratorHelper(geometries),
|
|
208
|
+
_step9;
|
|
209
|
+
try {
|
|
210
|
+
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
211
|
+
var geometry = _step9.value;
|
|
212
|
+
encodeGeometry(writer, geometry, context);
|
|
213
|
+
}
|
|
214
|
+
} catch (err) {
|
|
215
|
+
_iterator9.e(err);
|
|
216
|
+
} finally {
|
|
217
|
+
_iterator9.f();
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function writeTwkbHeader(writer, context, geometryType, isEmpty) {
|
|
222
|
+
var type = (zigZagEncode(context.xy) << 4) + geometryType;
|
|
223
|
+
var metadataHeader = context.hasZ || context.hasM ? 1 << 3 : 0;
|
|
224
|
+
metadataHeader += isEmpty ? 1 << 4 : 0;
|
|
225
|
+
writer.writeUInt8(type);
|
|
226
|
+
writer.writeUInt8(metadataHeader);
|
|
227
|
+
if (context.hasZ || context.hasM) {
|
|
228
|
+
var extendedPrecision = 0;
|
|
229
|
+
if (context.hasZ) {
|
|
230
|
+
extendedPrecision |= 0x1;
|
|
231
|
+
}
|
|
232
|
+
if (context.hasM) {
|
|
233
|
+
extendedPrecision |= 0x2;
|
|
234
|
+
}
|
|
235
|
+
writer.writeUInt8(extendedPrecision);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
function writeTwkbPoint(writer, context, point, previousPoint) {
|
|
239
|
+
var x = point[0] * context.xyFactor;
|
|
240
|
+
var y = point[1] * context.xyFactor;
|
|
241
|
+
var z = point[2] * context.zFactor;
|
|
242
|
+
var m = point[3] * context.mFactor;
|
|
243
|
+
writer.writeVarInt(zigZagEncode(x - previousPoint[0]));
|
|
244
|
+
writer.writeVarInt(zigZagEncode(y - previousPoint[1]));
|
|
245
|
+
if (context.hasZ) {
|
|
246
|
+
writer.writeVarInt(zigZagEncode(z - previousPoint[2]));
|
|
247
|
+
}
|
|
248
|
+
if (context.hasM) {
|
|
249
|
+
writer.writeVarInt(zigZagEncode(m - previousPoint[3]));
|
|
250
|
+
}
|
|
251
|
+
previousPoint[0] = x;
|
|
252
|
+
previousPoint[1] = y;
|
|
253
|
+
previousPoint[2] = z;
|
|
254
|
+
previousPoint[3] = m;
|
|
255
|
+
}
|
|
256
|
+
function zigZagEncode(value) {
|
|
257
|
+
return value << 1 ^ value >> 31;
|
|
258
|
+
}
|
|
259
|
+
function getTwkbPrecision(xyPrecision, zPrecision, mPrecision) {
|
|
260
|
+
return {
|
|
261
|
+
xy: xyPrecision,
|
|
262
|
+
z: zPrecision,
|
|
263
|
+
m: mPrecision,
|
|
264
|
+
xyFactor: Math.pow(10, xyPrecision),
|
|
265
|
+
zFactor: Math.pow(10, zPrecision),
|
|
266
|
+
mFactor: Math.pow(10, mPrecision)
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=encode-twkb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-twkb.js","names":["_binaryWriter","require","_parseWkbHeader","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","encodeTWKB","geometry","options","writer","BinaryWriter","context","getTwkbPrecision","hasZ","hasM","encodeGeometry","arrayBuffer","type","encodePoint","encodeLineString","encodePolygon","encodeMultiPoint","encodeMultiLineString","encodeMultiPolygon","encodeGeometryCollection","Error","point","isEmpty","coordinates","writeTwkbHeader","WKBGeometryType","Point","previousPoint","writeTwkbPoint","lineString","points","LineString","writeVarInt","_iterator","_step","polygon","polygonRings","Polygon","_iterator2","_step2","ring","_iterator3","_step3","multiPoint","MultiPoint","multiLineStrings","lineStrings","MultiLineString","_iterator4","_step4","_iterator5","_step5","multiPolygon","MultiPolygon","polygons","_iterator6","_step6","_iterator7","_step7","_iterator8","_step8","geometryCollection","geometries","GeometryCollection","_iterator9","_step9","geometryType","zigZagEncode","xy","metadataHeader","writeUInt8","extendedPrecision","x","xyFactor","y","z","zFactor","m","mFactor","xyPrecision","zPrecision","mPrecision","Math","pow"],"sources":["../../../src/lib/encode-twkb.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Forked from https://github.com/cschwarz/wkx under MIT license, Copyright (c) 2013 Christian Schwarz\n\nimport type {Point, MultiPoint, LineString} from '@loaders.gl/schema';\nimport type {\n MultiLineString,\n Polygon,\n MultiPolygon,\n GeometryCollection,\n Geometry\n} from '@loaders.gl/schema';\n\nimport {BinaryWriter} from './utils/binary-writer';\nimport {WKBGeometryType} from './parse-wkb-header';\n\ntype TWKBPrecision = {\n xy: number;\n z: number;\n m: number;\n xyFactor: number;\n zFactor: number;\n mFactor: number;\n};\n\ntype TWKBEncoderContext = TWKBPrecision & {\n hasZ?: boolean;\n hasM?: boolean;\n};\n\nexport function encodeTWKB(\n geometry: Geometry,\n options?: {hasZ?: boolean; hasM?: boolean}\n): ArrayBuffer {\n const writer = new BinaryWriter(0, true);\n\n const context: TWKBEncoderContext = {\n ...getTwkbPrecision(5, 0, 0),\n hasZ: options?.hasZ,\n hasM: options?.hasM\n };\n\n encodeGeometry(writer, geometry, context);\n\n // TODO - we need to slice it?\n return writer.arrayBuffer;\n}\n\nfunction encodeGeometry(writer: BinaryWriter, geometry: Geometry, context: TWKBEncoderContext) {\n switch (geometry.type) {\n case 'Point':\n return encodePoint(writer, context, geometry);\n case 'LineString':\n return encodeLineString(writer, context, geometry);\n case 'Polygon':\n return encodePolygon(writer, context, geometry);\n case 'MultiPoint':\n return encodeMultiPoint(writer, context, geometry);\n case 'MultiLineString':\n return encodeMultiLineString(writer, context, geometry);\n case 'MultiPolygon':\n return encodeMultiPolygon(writer, context, geometry);\n case 'GeometryCollection':\n return encodeGeometryCollection(writer, context, geometry);\n default:\n throw new Error('unsupported geometry type');\n }\n}\n\nfunction encodePoint(writer: BinaryWriter, context: TWKBEncoderContext, point: Point): void {\n const isEmpty =\n point.coordinates.length === 0 || point[0] === 'undefined' || point[1] === 'undefined';\n\n writeTwkbHeader(writer, context, WKBGeometryType.Point, isEmpty);\n\n if (!isEmpty) {\n const previousPoint = [0, 0, 0, 0];\n writeTwkbPoint(writer, context, point.coordinates, previousPoint);\n }\n}\n\nfunction encodeLineString(\n writer: BinaryWriter,\n context: TWKBEncoderContext,\n lineString: LineString\n): ArrayBuffer {\n const points = lineString.coordinates;\n const isEmpty = points.length === 0;\n\n writeTwkbHeader(writer, context, WKBGeometryType.LineString, isEmpty);\n\n if (!isEmpty) {\n writer.writeVarInt(points.length);\n const previousPoint = [0, 0, 0, 0];\n for (const point of points) {\n writeTwkbPoint(writer, context, point, previousPoint);\n }\n }\n\n return writer.arrayBuffer;\n}\n\nfunction encodePolygon(\n writer: BinaryWriter,\n context: TWKBEncoderContext,\n polygon: Polygon\n): ArrayBuffer {\n const polygonRings = polygon.coordinates;\n\n const isEmpty = polygonRings.length === 0;\n\n writeTwkbHeader(writer, context, WKBGeometryType.Polygon, isEmpty);\n\n if (!isEmpty) {\n writer.writeVarInt(polygonRings.length);\n\n const previousPoint = [0, 0, 0, 0];\n for (const ring of polygonRings) {\n writer.writeVarInt(ring.length);\n for (const point of ring) {\n writeTwkbPoint(writer, context, previousPoint, point);\n }\n }\n }\n\n return writer.arrayBuffer;\n}\n\nfunction encodeMultiPoint(\n writer: BinaryWriter,\n context: TWKBEncoderContext,\n multiPoint: MultiPoint\n): void {\n const points = multiPoint.coordinates;\n const isEmpty = points.length === 0;\n\n writeTwkbHeader(writer, context, WKBGeometryType.MultiPoint, isEmpty);\n\n if (!isEmpty) {\n writer.writeVarInt(points.length);\n\n const previousPoint = [0, 0, 0, 0];\n for (let i = 0; i < points.length; i++) {\n writeTwkbPoint(writer, context, previousPoint, points[i]);\n }\n }\n}\n\nfunction encodeMultiLineString(\n writer: BinaryWriter,\n context: TWKBEncoderContext,\n multiLineStrings: MultiLineString\n): ArrayBuffer {\n const lineStrings = multiLineStrings.coordinates;\n const isEmpty = lineStrings.length === 0;\n\n writeTwkbHeader(writer, context, WKBGeometryType.MultiLineString, isEmpty);\n\n if (!isEmpty) {\n writer.writeVarInt(lineStrings.length);\n\n const previousPoint = [0, 0, 0, 0];\n for (const lineString of lineStrings) {\n writer.writeVarInt(lineString.length);\n\n for (const point of lineString) {\n writeTwkbPoint(writer, context, previousPoint, point);\n }\n }\n }\n\n return writer.arrayBuffer;\n}\n\nfunction encodeMultiPolygon(\n writer: BinaryWriter,\n context: TWKBEncoderContext,\n multiPolygon: MultiPolygon\n): void {\n const {coordinates} = multiPolygon;\n const isEmpty = coordinates.length === 0;\n\n writeTwkbHeader(writer, context, WKBGeometryType.MultiPolygon, isEmpty);\n\n if (!isEmpty) {\n const polygons = coordinates;\n writer.writeVarInt(polygons.length);\n\n const previousPoint = [0, 0, 0, 0];\n\n for (const polygonRings of polygons) {\n writer.writeVarInt(polygonRings.length);\n for (const ring of polygonRings) {\n writer.writeVarInt(ring.length);\n for (const point of ring) {\n writeTwkbPoint(writer, context, previousPoint, point);\n }\n }\n }\n }\n}\n\nfunction encodeGeometryCollection(\n writer: BinaryWriter,\n context: TWKBEncoderContext,\n geometryCollection: GeometryCollection\n): void {\n const {geometries} = geometryCollection;\n const isEmpty = geometries.length === 0;\n\n writeTwkbHeader(writer, context, WKBGeometryType.GeometryCollection, isEmpty);\n\n if (geometries.length > 0) {\n writer.writeVarInt(geometries.length);\n for (const geometry of geometries) {\n encodeGeometry(writer, geometry, context);\n }\n }\n}\n\n/**\n *\n * @param writer\n * @param context\n * @param geometryType\n * @param isEmpty\n */\nfunction writeTwkbHeader(\n writer: BinaryWriter,\n context: TWKBEncoderContext,\n geometryType: WKBGeometryType,\n isEmpty: boolean\n) {\n const type = (zigZagEncode(context.xy) << 4) + geometryType;\n let metadataHeader = context.hasZ || context.hasM ? 1 << 3 : 0;\n metadataHeader += isEmpty ? 1 << 4 : 0;\n\n writer.writeUInt8(type);\n writer.writeUInt8(metadataHeader);\n\n if (context.hasZ || context.hasM) {\n let extendedPrecision = 0;\n if (context.hasZ) {\n extendedPrecision |= 0x1;\n }\n if (context.hasM) {\n extendedPrecision |= 0x2;\n }\n writer.writeUInt8(extendedPrecision);\n }\n}\n\n/**\n * Write one point to array buffer. ZigZagEncoding the delta fdrom the previous point. Mutates previousPoint.\n * @param writer\n * @param context\n * @param previousPoint - Mutated by this function\n * @param point\n */\nfunction writeTwkbPoint(\n writer: BinaryWriter,\n context: TWKBEncoderContext,\n point: number[],\n previousPoint: number[]\n): void {\n const x = point[0] * context.xyFactor;\n const y = point[1] * context.xyFactor;\n const z = point[2] * context.zFactor;\n const m = point[3] * context.mFactor;\n\n writer.writeVarInt(zigZagEncode(x - previousPoint[0]));\n writer.writeVarInt(zigZagEncode(y - previousPoint[1]));\n if (context.hasZ) {\n writer.writeVarInt(zigZagEncode(z - previousPoint[2]));\n }\n if (context.hasM) {\n writer.writeVarInt(zigZagEncode(m - previousPoint[3]));\n }\n\n previousPoint[0] = x;\n previousPoint[1] = y;\n previousPoint[2] = z;\n previousPoint[3] = m;\n}\n\n// HELPERS\n\nfunction zigZagEncode(value: number): number {\n return (value << 1) ^ (value >> 31);\n}\n\nfunction getTwkbPrecision(\n xyPrecision: number,\n zPrecision: number,\n mPrecision: number\n): TWKBPrecision {\n return {\n xy: xyPrecision,\n z: zPrecision,\n m: mPrecision,\n xyFactor: Math.pow(10, xyPrecision),\n zFactor: Math.pow(10, zPrecision),\n mFactor: Math.pow(10, mPrecision)\n };\n}\n"],"mappings":"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"}
|
|
@@ -4,9 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.WKB = void 0;
|
|
8
|
+
exports.encodeWKB = encodeWKB;
|
|
8
9
|
var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
|
|
9
|
-
var _binaryWriter =
|
|
10
|
+
var _binaryWriter = require("./utils/binary-writer");
|
|
10
11
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
11
12
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
12
13
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
@@ -19,7 +20,8 @@ var WKB = function (WKB) {
|
|
|
19
20
|
WKB[WKB["MultiPolygon"] = 6] = "MultiPolygon";
|
|
20
21
|
WKB[WKB["GeometryCollection"] = 7] = "GeometryCollection";
|
|
21
22
|
return WKB;
|
|
22
|
-
}(
|
|
23
|
+
}({});
|
|
24
|
+
exports.WKB = WKB;
|
|
23
25
|
function encodeWKB(geometry) {
|
|
24
26
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
25
27
|
if (geometry.type === 'Feature') {
|
|
@@ -70,7 +72,7 @@ function getGeometrySize(geometry, options) {
|
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
74
|
function encodePoint(coordinates, options) {
|
|
73
|
-
var writer = new _binaryWriter.
|
|
75
|
+
var writer = new _binaryWriter.BinaryWriter(getPointSize(options));
|
|
74
76
|
writer.writeInt8(1);
|
|
75
77
|
writeWkbType(writer, WKB.Point, options);
|
|
76
78
|
if (typeof coordinates[0] === 'undefined' && typeof coordinates[1] === 'undefined') {
|
|
@@ -103,7 +105,7 @@ function getPointSize(options) {
|
|
|
103
105
|
}
|
|
104
106
|
function encodeLineString(coordinates, options) {
|
|
105
107
|
var size = getLineStringSize(coordinates, options);
|
|
106
|
-
var writer = new _binaryWriter.
|
|
108
|
+
var writer = new _binaryWriter.BinaryWriter(size);
|
|
107
109
|
writer.writeInt8(1);
|
|
108
110
|
writeWkbType(writer, WKB.LineString, options);
|
|
109
111
|
writer.writeUInt32LE(coordinates.length);
|
|
@@ -126,7 +128,7 @@ function getLineStringSize(coordinates, options) {
|
|
|
126
128
|
return 1 + 4 + 4 + coordinates.length * coordinateSize;
|
|
127
129
|
}
|
|
128
130
|
function encodePolygon(coordinates, options) {
|
|
129
|
-
var writer = new _binaryWriter.
|
|
131
|
+
var writer = new _binaryWriter.BinaryWriter(getPolygonSize(coordinates, options));
|
|
130
132
|
writer.writeInt8(1);
|
|
131
133
|
writeWkbType(writer, WKB.Polygon, options);
|
|
132
134
|
var _coordinates = (0, _toArray2.default)(coordinates),
|
|
@@ -200,7 +202,7 @@ function getPolygonSize(coordinates, options) {
|
|
|
200
202
|
return size;
|
|
201
203
|
}
|
|
202
204
|
function encodeMultiPoint(multiPoint, options) {
|
|
203
|
-
var writer = new _binaryWriter.
|
|
205
|
+
var writer = new _binaryWriter.BinaryWriter(getMultiPointSize(multiPoint, options));
|
|
204
206
|
var points = multiPoint.coordinates;
|
|
205
207
|
writer.writeInt8(1);
|
|
206
208
|
writeWkbType(writer, WKB.MultiPoint, options);
|
|
@@ -227,7 +229,7 @@ function getMultiPointSize(multiPoint, options) {
|
|
|
227
229
|
return 1 + 4 + 4 + points.length * coordinateSize;
|
|
228
230
|
}
|
|
229
231
|
function encodeMultiLineString(multiLineString, options) {
|
|
230
|
-
var writer = new _binaryWriter.
|
|
232
|
+
var writer = new _binaryWriter.BinaryWriter(getMultiLineStringSize(multiLineString, options));
|
|
231
233
|
var lineStrings = multiLineString.coordinates;
|
|
232
234
|
writer.writeInt8(1);
|
|
233
235
|
writeWkbType(writer, WKB.MultiLineString, options);
|
|
@@ -265,7 +267,7 @@ function getMultiLineStringSize(multiLineString, options) {
|
|
|
265
267
|
return size;
|
|
266
268
|
}
|
|
267
269
|
function encodeMultiPolygon(multiPolygon, options) {
|
|
268
|
-
var writer = new _binaryWriter.
|
|
270
|
+
var writer = new _binaryWriter.BinaryWriter(getMultiPolygonSize(multiPolygon, options));
|
|
269
271
|
var polygons = multiPolygon.coordinates;
|
|
270
272
|
writer.writeInt8(1);
|
|
271
273
|
writeWkbType(writer, WKB.MultiPolygon, options);
|
|
@@ -303,7 +305,7 @@ function getMultiPolygonSize(multiPolygon, options) {
|
|
|
303
305
|
return size;
|
|
304
306
|
}
|
|
305
307
|
function encodeGeometryCollection(collection, options) {
|
|
306
|
-
var writer = new _binaryWriter.
|
|
308
|
+
var writer = new _binaryWriter.BinaryWriter(getGeometryCollectionSize(collection, options));
|
|
307
309
|
writer.writeInt8(1);
|
|
308
310
|
writeWkbType(writer, WKB.GeometryCollection, options);
|
|
309
311
|
writer.writeUInt32LE(collection.geometries.length);
|