@loaders.gl/wkt 4.2.0-alpha.3 → 4.2.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +133 -220
- package/dist/dist.min.js +10 -0
- package/dist/hex-wkb-loader.d.ts +1 -1
- package/dist/hex-wkb-loader.d.ts.map +1 -1
- package/dist/hex-wkb-loader.js +44 -28
- package/dist/index.cjs +77 -58
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +14 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/lib/encode-twkb.js +158 -143
- package/dist/lib/encode-wkb.js +247 -211
- package/dist/lib/encode-wkt-crs.d.ts +1 -1
- package/dist/lib/encode-wkt-crs.d.ts.map +1 -1
- package/dist/lib/encode-wkt-crs.js +32 -18
- package/dist/lib/encode-wkt.js +35 -27
- package/dist/lib/parse-hex-wkb.js +1 -2
- package/dist/lib/parse-twkb.js +215 -218
- package/dist/lib/parse-wkb-header.js +124 -95
- package/dist/lib/parse-wkb.d.ts +1 -1
- package/dist/lib/parse-wkb.d.ts.map +1 -1
- package/dist/lib/parse-wkb.js +210 -235
- package/dist/lib/parse-wkt-crs.js +110 -86
- package/dist/lib/parse-wkt.js +251 -185
- package/dist/lib/utils/base64-encoder.js +151 -5
- package/dist/lib/utils/binary-reader.js +63 -64
- package/dist/lib/utils/binary-writer.js +115 -109
- package/dist/lib/utils/hex-encoder.js +46 -32
- package/dist/lib/utils/hex-transcoder.js +40 -24
- package/dist/lib/utils/version.js +7 -2
- package/dist/twkb-loader.js +26 -17
- package/dist/twkb-writer.js +18 -13
- package/dist/wkb-loader.js +26 -17
- package/dist/wkb-writer.js +22 -17
- package/dist/wkt-crs-loader.d.ts +1 -1
- package/dist/wkt-crs-loader.d.ts.map +1 -1
- package/dist/wkt-crs-loader.js +22 -15
- package/dist/wkt-crs-writer.d.ts +2 -2
- package/dist/wkt-crs-writer.d.ts.map +1 -1
- package/dist/wkt-crs-writer.js +23 -15
- package/dist/wkt-loader.js +28 -20
- package/dist/wkt-worker.js +1 -1
- package/dist/wkt-writer.js +19 -14
- package/dist/workers/wkb-worker.js +3 -1
- package/dist/workers/wkt-worker.js +3 -1
- package/package.json +10 -6
- package/dist/hex-wkb-loader.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/encode-twkb.js.map +0 -1
- package/dist/lib/encode-wkb.js.map +0 -1
- package/dist/lib/encode-wkt-crs.js.map +0 -1
- package/dist/lib/encode-wkt.js.map +0 -1
- package/dist/lib/parse-hex-wkb.js.map +0 -1
- package/dist/lib/parse-twkb.js.map +0 -1
- package/dist/lib/parse-wkb-header.js.map +0 -1
- package/dist/lib/parse-wkb.js.map +0 -1
- package/dist/lib/parse-wkt-crs.js.map +0 -1
- package/dist/lib/parse-wkt.js.map +0 -1
- package/dist/lib/utils/base64-encoder.js.map +0 -1
- package/dist/lib/utils/binary-reader.js.map +0 -1
- package/dist/lib/utils/binary-writer.js.map +0 -1
- package/dist/lib/utils/hex-encoder.js.map +0 -1
- package/dist/lib/utils/hex-transcoder.js.map +0 -1
- package/dist/lib/utils/version.js.map +0 -1
- package/dist/twkb-loader.js.map +0 -1
- package/dist/twkb-writer.js.map +0 -1
- package/dist/wkb-loader.js.map +0 -1
- package/dist/wkb-writer.js.map +0 -1
- package/dist/wkt-crs-loader.js.map +0 -1
- package/dist/wkt-crs-writer.js.map +0 -1
- package/dist/wkt-loader.js.map +0 -1
- package/dist/wkt-writer.js.map +0 -1
- package/dist/workers/wkb-worker.js.map +0 -1
- package/dist/workers/wkt-worker.js.map +0 -1
|
@@ -1,34 +1,50 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
// Forked from https://github.com/jessetane/hex-transcoder under MIT license
|
|
1
5
|
const alphabet = '0123456789abcdef';
|
|
2
6
|
const encodeLookup = [];
|
|
3
7
|
const decodeLookup = [];
|
|
4
8
|
for (let i = 0; i < 256; i++) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
encodeLookup[i] = alphabet[(i >> 4) & 0xf] + alphabet[i & 0xf];
|
|
10
|
+
if (i < 16) {
|
|
11
|
+
if (i < 10) {
|
|
12
|
+
decodeLookup[0x30 + i] = i;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
decodeLookup[0x61 - 10 + i] = i;
|
|
16
|
+
}
|
|
11
17
|
}
|
|
12
|
-
}
|
|
13
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Encode a Uint8Array to a hex string
|
|
21
|
+
*
|
|
22
|
+
* @param array Bytes to encode to string
|
|
23
|
+
* @return hex string
|
|
24
|
+
*/
|
|
14
25
|
export function encodeHex(array) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
const length = array.length;
|
|
27
|
+
let string = '';
|
|
28
|
+
let i = 0;
|
|
29
|
+
while (i < length) {
|
|
30
|
+
string += encodeLookup[array[i++]];
|
|
31
|
+
}
|
|
32
|
+
return string;
|
|
22
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Decodes a hex string to a Uint8Array
|
|
36
|
+
*
|
|
37
|
+
* @param string hex string to decode to Uint8Array
|
|
38
|
+
* @return Uint8Array
|
|
39
|
+
*/
|
|
23
40
|
export function decodeHex(string) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
41
|
+
const sizeof = string.length >> 1;
|
|
42
|
+
const length = sizeof << 1;
|
|
43
|
+
const array = new Uint8Array(sizeof);
|
|
44
|
+
let n = 0;
|
|
45
|
+
let i = 0;
|
|
46
|
+
while (i < length) {
|
|
47
|
+
array[n++] = (decodeLookup[string.charCodeAt(i++)] << 4) | decodeLookup[string.charCodeAt(i++)];
|
|
48
|
+
}
|
|
49
|
+
return array;
|
|
33
50
|
}
|
|
34
|
-
//# sourceMappingURL=hex-transcoder.js.map
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
// Version constant cannot be imported, it needs to correspond to the build version of **this** module.
|
|
5
|
+
// __VERSION__ is injected by babel-plugin-version-inline
|
|
6
|
+
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
7
|
+
export const VERSION = typeof "4.2.0-alpha.4" !== 'undefined' ? "4.2.0-alpha.4" : 'latest';
|
package/dist/twkb-loader.js
CHANGED
|
@@ -1,24 +1,33 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { VERSION } from "./lib/utils/version.js";
|
|
2
5
|
import { parseTWKBGeometry, isTWKB } from "./lib/parse-twkb.js";
|
|
6
|
+
/**
|
|
7
|
+
* Worker loader for WKB (Well-Known Binary)
|
|
8
|
+
*/
|
|
3
9
|
export const TWKBWorkerLoader = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
name: 'TWKB (Tiny Well-Known Binary)',
|
|
11
|
+
id: 'twkb',
|
|
12
|
+
module: 'wkt',
|
|
13
|
+
version: VERSION,
|
|
14
|
+
worker: true,
|
|
15
|
+
category: 'geometry',
|
|
16
|
+
extensions: ['twkb'],
|
|
17
|
+
mimeTypes: [],
|
|
18
|
+
// TODO can we define static, serializable tests, eg. some binary strings?
|
|
19
|
+
tests: [isTWKB],
|
|
20
|
+
options: {
|
|
21
|
+
wkb: {
|
|
22
|
+
shape: 'binary-geometry' // 'geojson-geometry'
|
|
23
|
+
}
|
|
16
24
|
}
|
|
17
|
-
}
|
|
18
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* Loader for WKB (Well-Known Binary)
|
|
28
|
+
*/
|
|
19
29
|
export const TWKBLoader = {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
30
|
+
...TWKBWorkerLoader,
|
|
31
|
+
parse: async (arrayBuffer) => parseTWKBGeometry(arrayBuffer),
|
|
32
|
+
parseSync: parseTWKBGeometry
|
|
23
33
|
};
|
|
24
|
-
//# sourceMappingURL=twkb-loader.js.map
|
package/dist/twkb-writer.js
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { VERSION } from "./lib/utils/version.js";
|
|
2
5
|
import { encodeTWKB } from "./lib/encode-twkb.js";
|
|
6
|
+
/**
|
|
7
|
+
* WKB exporter
|
|
8
|
+
*/
|
|
3
9
|
export const TWKBWriter = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
name: 'TWKB (Tiny Well Known Binary)',
|
|
11
|
+
id: 'twkb',
|
|
12
|
+
module: 'wkt',
|
|
13
|
+
version: VERSION,
|
|
14
|
+
extensions: ['twkb'],
|
|
15
|
+
encode: async (geometry, options) => encodeTWKB(geometry, options?.twkb),
|
|
16
|
+
encodeSync: (geometry, options) => encodeTWKB(geometry, options?.twkb),
|
|
17
|
+
options: {
|
|
18
|
+
twkb: {
|
|
19
|
+
hasZ: false,
|
|
20
|
+
hasM: false
|
|
21
|
+
}
|
|
15
22
|
}
|
|
16
|
-
}
|
|
17
23
|
};
|
|
18
|
-
//# sourceMappingURL=twkb-writer.js.map
|
package/dist/wkb-loader.js
CHANGED
|
@@ -1,25 +1,34 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { VERSION } from "./lib/utils/version.js";
|
|
2
5
|
import { parseWKB } from "./lib/parse-wkb.js";
|
|
3
6
|
import { isWKB } from "./lib/parse-wkb-header.js";
|
|
7
|
+
/**
|
|
8
|
+
* Worker loader for WKB (Well-Known Binary)
|
|
9
|
+
*/
|
|
4
10
|
export const WKBWorkerLoader = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
name: 'WKB',
|
|
12
|
+
id: 'wkb',
|
|
13
|
+
module: 'wkt',
|
|
14
|
+
version: VERSION,
|
|
15
|
+
worker: true,
|
|
16
|
+
category: 'geometry',
|
|
17
|
+
extensions: ['wkb'],
|
|
18
|
+
mimeTypes: [],
|
|
19
|
+
// TODO can we define static, serializable tests, eg. some binary strings?
|
|
20
|
+
tests: [isWKB],
|
|
21
|
+
options: {
|
|
22
|
+
wkb: {
|
|
23
|
+
shape: 'binary-geometry' // 'geojson-geometry'
|
|
24
|
+
}
|
|
17
25
|
}
|
|
18
|
-
}
|
|
19
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* Loader for WKB (Well-Known Binary)
|
|
29
|
+
*/
|
|
20
30
|
export const WKBLoader = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
31
|
+
...WKBWorkerLoader,
|
|
32
|
+
parse: async (arrayBuffer) => parseWKB(arrayBuffer),
|
|
33
|
+
parseSync: parseWKB
|
|
24
34
|
};
|
|
25
|
-
//# sourceMappingURL=wkb-loader.js.map
|
package/dist/wkb-writer.js
CHANGED
|
@@ -1,22 +1,27 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { VERSION } from "./lib/utils/version.js";
|
|
2
5
|
import { encodeWKB } from "./lib/encode-wkb.js";
|
|
6
|
+
/**
|
|
7
|
+
* WKB exporter
|
|
8
|
+
*/
|
|
3
9
|
export const WKBWriter = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
name: 'WKB (Well Known Binary)',
|
|
11
|
+
id: 'wkb',
|
|
12
|
+
module: 'wkt',
|
|
13
|
+
version: VERSION,
|
|
14
|
+
extensions: ['wkb'],
|
|
15
|
+
options: {
|
|
16
|
+
wkb: {
|
|
17
|
+
hasZ: false,
|
|
18
|
+
hasM: false
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
async encode(data, options) {
|
|
22
|
+
return encodeWKB(data, options?.wkb);
|
|
23
|
+
},
|
|
24
|
+
encodeSync(data, options) {
|
|
25
|
+
return encodeWKB(data, options?.wkb);
|
|
13
26
|
}
|
|
14
|
-
},
|
|
15
|
-
async encode(data, options) {
|
|
16
|
-
return encodeWKB(data, options === null || options === void 0 ? void 0 : options.wkb);
|
|
17
|
-
},
|
|
18
|
-
encodeSync(data, options) {
|
|
19
|
-
return encodeWKB(data, options === null || options === void 0 ? void 0 : options.wkb);
|
|
20
|
-
}
|
|
21
27
|
};
|
|
22
|
-
//# sourceMappingURL=wkb-writer.js.map
|
package/dist/wkt-crs-loader.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LoaderWithParser, LoaderOptions } from '@loaders.gl/loader-utils';
|
|
2
|
-
import type { ParseWKTCRSOptions, WKTCRS } from
|
|
2
|
+
import type { ParseWKTCRSOptions, WKTCRS } from "./lib/parse-wkt-crs.js";
|
|
3
3
|
export type WKTCRSLoaderOptions = LoaderOptions & {
|
|
4
4
|
'wkt-crs'?: ParseWKTCRSOptions;
|
|
5
5
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wkt-crs-loader.d.ts","sourceRoot":"","sources":["../src/wkt-crs-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAE9E,OAAO,KAAK,EAAC,kBAAkB,EAAE,MAAM,EAAC
|
|
1
|
+
{"version":3,"file":"wkt-crs-loader.d.ts","sourceRoot":"","sources":["../src/wkt-crs-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAE9E,OAAO,KAAK,EAAC,kBAAkB,EAAE,MAAM,EAAC,+BAA4B;AAGpE,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,mBAAmB,CAgB7E,CAAC"}
|
package/dist/wkt-crs-loader.js
CHANGED
|
@@ -1,19 +1,26 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { VERSION } from "./lib/utils/version.js";
|
|
2
5
|
import { parseWKTCRS } from "./lib/parse-wkt-crs.js";
|
|
6
|
+
/**
|
|
7
|
+
* Well-Known text CRS loader
|
|
8
|
+
* @see OGC Standard: https://www.ogc.org/standards/wkt-crs
|
|
9
|
+
* @see Wikipedia Page: https://en.wikipedia.org/wiki/Well-known_text_representation_of_coordinate_reference_systems
|
|
10
|
+
*/
|
|
3
11
|
export const WKTCRSLoader = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
name: 'WKT CRS (Well-Known Text Coordinate Reference System)',
|
|
13
|
+
id: 'wkt-crs',
|
|
14
|
+
module: 'wkt-crs',
|
|
15
|
+
version: VERSION,
|
|
16
|
+
worker: true,
|
|
17
|
+
extensions: [],
|
|
18
|
+
mimeTypes: ['text/plain'],
|
|
19
|
+
category: 'json',
|
|
20
|
+
text: true,
|
|
21
|
+
options: {
|
|
22
|
+
'wkt-crs': {}
|
|
23
|
+
},
|
|
24
|
+
parse: async (arrayBuffer, options) => parseWKTCRS(new TextDecoder().decode(arrayBuffer), options?.['wkt-crs']),
|
|
25
|
+
parseTextSync: (string, options) => parseWKTCRS(string, options?.['wkt-crs'])
|
|
18
26
|
};
|
|
19
|
-
//# sourceMappingURL=wkt-crs-loader.js.map
|
package/dist/wkt-crs-writer.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { WriterWithEncoder, WriterOptions } from '@loaders.gl/loader-utils';
|
|
2
|
-
import type { WKTCRS } from
|
|
3
|
-
import type { EncodeWKTCRSOptions } from
|
|
2
|
+
import type { WKTCRS } from "./lib/parse-wkt-crs.js";
|
|
3
|
+
import type { EncodeWKTCRSOptions } from "./lib/encode-wkt-crs.js";
|
|
4
4
|
export type WKTCRSWriterOptions = WriterOptions & {
|
|
5
5
|
'wkt-crs'?: EncodeWKTCRSOptions;
|
|
6
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wkt-crs-writer.d.ts","sourceRoot":"","sources":["../src/wkt-crs-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAG/E,OAAO,KAAK,EAAC,MAAM,EAAC
|
|
1
|
+
{"version":3,"file":"wkt-crs-writer.d.ts","sourceRoot":"","sources":["../src/wkt-crs-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAG/E,OAAO,KAAK,EAAC,MAAM,EAAC,+BAA4B;AAChD,OAAO,KAAK,EAAC,mBAAmB,EAAC,gCAA6B;AAG9D,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,mBAAmB,CAkB9E,CAAC"}
|
package/dist/wkt-crs-writer.js
CHANGED
|
@@ -1,19 +1,27 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { VERSION } from "./lib/utils/version.js";
|
|
2
5
|
import { encodeWKTCRS } from "./lib/encode-wkt-crs.js";
|
|
6
|
+
/**
|
|
7
|
+
* Well-Known text CRS loader
|
|
8
|
+
* @see OGC Standard: https://www.ogc.org/standards/wkt-crs
|
|
9
|
+
* @see Wikipedia Page: https://en.wikipedia.org/wiki/Well-known_text_representation_of_coordinate_reference_systems
|
|
10
|
+
*/
|
|
3
11
|
export const WKTCRSWriter = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
name: 'WKT CRS (Well-Known Text Coordinate Reference System)',
|
|
13
|
+
id: 'wkt-crs',
|
|
14
|
+
module: 'wkt-crs',
|
|
15
|
+
version: VERSION,
|
|
16
|
+
worker: true,
|
|
17
|
+
extensions: [],
|
|
18
|
+
mimeTypes: ['text/plain'],
|
|
19
|
+
// category: 'json',
|
|
20
|
+
text: true,
|
|
21
|
+
options: {
|
|
22
|
+
'wkt-crs': {}
|
|
23
|
+
},
|
|
24
|
+
encode: async (wktcrs, options) => new TextEncoder().encode(encodeWKTCRS(wktcrs, options?.['wkt-crs'])),
|
|
25
|
+
encodeSync: (wktcrs, options) => new TextEncoder().encode(encodeWKTCRS(wktcrs, options?.['wkt-crs'])),
|
|
26
|
+
encodeTextSync: (wktcrs, options) => encodeWKTCRS(wktcrs, options?.['wkt-crs'])
|
|
18
27
|
};
|
|
19
|
-
//# sourceMappingURL=wkt-crs-writer.js.map
|
package/dist/wkt-loader.js
CHANGED
|
@@ -1,28 +1,36 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { VERSION } from "./lib/utils/version.js";
|
|
2
5
|
import { parseWKT } from "./lib/parse-wkt.js";
|
|
3
6
|
import { isWKT, WKT_MAGIC_STRINGS } from "./lib/parse-wkt.js";
|
|
7
|
+
/**
|
|
8
|
+
* Well-Known text worker loader
|
|
9
|
+
*/
|
|
4
10
|
export const WKTWorkerLoader = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
name: 'WKT (Well-Known Text)',
|
|
12
|
+
id: 'wkt',
|
|
13
|
+
module: 'wkt',
|
|
14
|
+
version: VERSION,
|
|
15
|
+
worker: true,
|
|
16
|
+
extensions: ['wkt'],
|
|
17
|
+
mimeTypes: ['text/plain'],
|
|
18
|
+
category: 'geometry',
|
|
19
|
+
text: true,
|
|
20
|
+
tests: WKT_MAGIC_STRINGS,
|
|
21
|
+
testText: isWKT,
|
|
22
|
+
options: {
|
|
23
|
+
wkt: {
|
|
24
|
+
shape: 'geojson-geometry',
|
|
25
|
+
crs: true
|
|
26
|
+
}
|
|
20
27
|
}
|
|
21
|
-
}
|
|
22
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* Well-Known text loader
|
|
31
|
+
*/
|
|
23
32
|
export const WKTLoader = {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
33
|
+
...WKTWorkerLoader,
|
|
34
|
+
parse: async (arrayBuffer, options) => parseWKT(new TextDecoder().decode(arrayBuffer), options),
|
|
35
|
+
parseTextSync: parseWKT
|
|
27
36
|
};
|
|
28
|
-
//# sourceMappingURL=wkt-loader.js.map
|
package/dist/wkt-worker.js
CHANGED
|
@@ -198,7 +198,7 @@
|
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
// src/lib/utils/version.ts
|
|
201
|
-
var VERSION = true ? "4.2.0-alpha.
|
|
201
|
+
var VERSION = true ? "4.2.0-alpha.4" : "latest";
|
|
202
202
|
|
|
203
203
|
// src/lib/parse-wkt.ts
|
|
204
204
|
var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
|
package/dist/wkt-writer.js
CHANGED
|
@@ -1,20 +1,25 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { VERSION } from "./lib/utils/version.js";
|
|
2
5
|
import { encodeWKT } from "./lib/encode-wkt.js";
|
|
6
|
+
/**
|
|
7
|
+
* WKT exporter
|
|
8
|
+
*/
|
|
3
9
|
export const WKTWriter = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
name: 'WKT (Well Known Text)',
|
|
11
|
+
id: 'wkt',
|
|
12
|
+
module: 'wkt',
|
|
13
|
+
version: VERSION,
|
|
14
|
+
extensions: ['wkt'],
|
|
15
|
+
text: true,
|
|
16
|
+
encode: async (geometry) => encodeWKTSync(geometry),
|
|
17
|
+
encodeSync: encodeWKTSync,
|
|
18
|
+
encodeTextSync: encodeWKT,
|
|
19
|
+
options: {
|
|
20
|
+
wkt: {}
|
|
21
|
+
}
|
|
16
22
|
};
|
|
17
23
|
function encodeWKTSync(geometry) {
|
|
18
|
-
|
|
24
|
+
return new TextEncoder().encode(encodeWKT(geometry)).buffer;
|
|
19
25
|
}
|
|
20
|
-
//# sourceMappingURL=wkt-writer.js.map
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { createLoaderWorker } from '@loaders.gl/loader-utils';
|
|
2
5
|
import { WKBLoader } from "../wkb-loader.js";
|
|
3
6
|
createLoaderWorker(WKBLoader);
|
|
4
|
-
//# sourceMappingURL=wkb-worker.js.map
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { createLoaderWorker } from '@loaders.gl/loader-utils';
|
|
2
5
|
import { WKTLoader } from "../wkt-loader.js";
|
|
3
6
|
createLoaderWorker(WKTLoader);
|
|
4
|
-
//# sourceMappingURL=wkt-worker.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/wkt",
|
|
3
3
|
"description": "Loader and Writer for the WKT (Well Known Text) Format",
|
|
4
|
-
"version": "4.2.0-alpha.
|
|
4
|
+
"version": "4.2.0-alpha.5",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"publishConfig": {
|
|
@@ -35,16 +35,20 @@
|
|
|
35
35
|
"README.md"
|
|
36
36
|
],
|
|
37
37
|
"scripts": {
|
|
38
|
-
"pre-build": "npm run build-worker && npm run build-bundle && npm run build-bundle
|
|
39
|
-
"build-bundle": "ocular-bundle ./
|
|
38
|
+
"pre-build": "npm run build-worker && npm run build-bundle && npm run build-bundle-dev",
|
|
39
|
+
"build-bundle": "ocular-bundle ./bundle.ts --output=dist/dist.min.js",
|
|
40
|
+
"build-bundle-dev": "ocular-bundle ./bundle.ts --env=dev --output=dist/dist.dev.js",
|
|
40
41
|
"build-worker": "esbuild src/workers/wkt-worker.ts --bundle --outfile=dist/wkt-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
44
|
"fuzzer": "^0.2.1"
|
|
44
45
|
},
|
|
45
46
|
"dependencies": {
|
|
46
|
-
"@loaders.gl/loader-utils": "4.2.0-alpha.
|
|
47
|
-
"@loaders.gl/schema": "4.2.0-alpha.
|
|
47
|
+
"@loaders.gl/loader-utils": "4.2.0-alpha.5",
|
|
48
|
+
"@loaders.gl/schema": "4.2.0-alpha.5"
|
|
48
49
|
},
|
|
49
|
-
"
|
|
50
|
+
"peerDependencies": {
|
|
51
|
+
"@loaders.gl/core": "^4.0.0"
|
|
52
|
+
},
|
|
53
|
+
"gitHead": "32d95a81971f104e4dfeb88ab57065f05321a76a"
|
|
50
54
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hex-wkb-loader.js","names":["WKBLoader","VERSION","decodeHex","HexWKBLoader","name","id","module","version","worker","category","extensions","mimeTypes","options","text","testText","isHexWKB","parse","arrayBuffer","parseHexWKB","TextDecoder","decode","parseTextSync","_WKBLoader$parseSync","uint8Array","binaryGeometry","parseSync","call","buffer","string","length","startsWith","test","slice"],"sources":["../src/hex-wkb-loader.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\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":"SAQQA,SAAS;AAAA,SACTC,OAAO;AAAA,SACPC,SAAS;AAOjB,OAAO,MAAMC,YAA0E,GAAG;EACxFC,IAAI,EAAE,iBAAiB;EACvBC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEN,OAAO;EAChBO,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,EAAE;EACbC,OAAO,EAAEZ,SAAS,CAACY,OAAO;EAC1BC,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAEC,QAAQ;EAElBC,KAAK,EAAE,MAAOC,WAAwB,IAAKC,WAAW,CAAC,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACH,WAAW,CAAC,CAAC;EAC7FI,aAAa,EAAEH;AACjB,CAAC;AAED,SAASA,WAAWA,CAACL,IAAY,EAAED,OAA6B,EAAkB;EAAA,IAAAU,oBAAA;EAChF,MAAMC,UAAU,GAAGrB,SAAS,CAACW,IAAI,CAAC;EAClC,MAAMW,cAAc,IAAAF,oBAAA,GAAGtB,SAAS,CAACyB,SAAS,cAAAH,oBAAA,uBAAnBA,oBAAA,CAAAI,IAAA,CAAA1B,SAAS,EAAauB,UAAU,CAACI,MAAM,EAAEf,OAAO,CAAC;EAExE,OAAOY,cAAc;AACvB;AASA,OAAO,SAAST,QAAQA,CAACa,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/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["WKTCRSLoader","WKTCRSWriter","WKTLoader","WKTWorkerLoader","WKTWriter","WKBLoader","WKBWorkerLoader","WKBWriter","HexWKBLoader","TWKBLoader","TWKBWriter","isWKT","isWKB","parseWKBHeader","isTWKB","encodeHex","decodeHex"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\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":"SAIQA,YAAY;AAAA,SACZC,YAAY;AAAA,SAEZC,SAAS,EAAEC,eAAe;AAAA,SAC1BC,SAAS;AAAA,SAETC,SAAS,EAAEC,eAAe;AAAA,SAC1BC,SAAS;AAAA,SAETC,YAAY;AAAA,SAEZC,UAAU;AAAA,SACVC,UAAU;AAAA,SAGVC,KAAK;AAAA,SAELC,KAAK,EAAEC,cAAc;AAAA,SAGrBC,MAAM;AAAA,SAENC,SAAS,EAAEC,SAAS"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"encode-twkb.js","names":["BinaryWriter","WKBGeometryType","encodeTWKB","geometry","options","writer","context","getTwkbPrecision","hasZ","hasM","encodeGeometry","arrayBuffer","type","encodePoint","encodeLineString","encodePolygon","encodeMultiPoint","encodeMultiLineString","encodeMultiPolygon","encodeGeometryCollection","Error","point","isEmpty","coordinates","length","writeTwkbHeader","Point","previousPoint","writeTwkbPoint","lineString","points","LineString","writeVarInt","polygon","polygonRings","Polygon","ring","multiPoint","MultiPoint","i","multiLineStrings","lineStrings","MultiLineString","multiPolygon","MultiPolygon","polygons","geometryCollection","geometries","GeometryCollection","geometryType","zigZagEncode","xy","metadataHeader","writeUInt8","extendedPrecision","x","xyFactor","y","z","zFactor","m","mFactor","value","xyPrecision","zPrecision","mPrecision","Math","pow"],"sources":["../../src/lib/encode-twkb.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\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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"}
|