@math.gl/dggs 5.0.0-alpha.6 → 5.0.0-alpha.9
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/a5-decoder.d.ts +3 -3
- package/dist/a5-decoder.d.ts.map +1 -1
- package/dist/a5-decoder.js +3 -3
- package/dist/a5-decoder.js.map +1 -1
- package/dist/a5.cjs +59 -2
- package/dist/a5.cjs.map +3 -3
- package/dist/dggs-decoder.d.ts +12 -3
- package/dist/dggs-decoder.d.ts.map +1 -1
- package/dist/dggs-decoder.js +24 -0
- package/dist/dggs-decoder.js.map +1 -1
- package/dist/geohash-decoder.d.ts +3 -3
- package/dist/geohash-decoder.d.ts.map +1 -1
- package/dist/geohash-decoder.js +3 -3
- package/dist/geohash-decoder.js.map +1 -1
- package/dist/geohash.cjs +75 -2
- package/dist/geohash.cjs.map +2 -2
- package/dist/h3-decoder.d.ts +3 -3
- package/dist/h3-decoder.d.ts.map +1 -1
- package/dist/h3-decoder.js +3 -3
- package/dist/h3-decoder.js.map +1 -1
- package/dist/h3.cjs +59 -2
- package/dist/h3.cjs.map +3 -3
- package/dist/index.cjs +71 -13
- package/dist/index.cjs.map +3 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/plus-code-decoder.d.ts +3 -3
- package/dist/plus-code-decoder.d.ts.map +1 -1
- package/dist/plus-code-decoder.js +3 -3
- package/dist/plus-code-decoder.js.map +1 -1
- package/dist/plus-code.cjs +75 -2
- package/dist/plus-code.cjs.map +2 -2
- package/dist/quadkey-decoder.d.ts +3 -3
- package/dist/quadkey-decoder.d.ts.map +1 -1
- package/dist/quadkey-decoder.js +3 -3
- package/dist/quadkey-decoder.js.map +1 -1
- package/dist/quadkey.cjs +75 -2
- package/dist/quadkey.cjs.map +2 -2
- package/dist/s2-decoder.d.ts +3 -3
- package/dist/s2-decoder.d.ts.map +1 -1
- package/dist/s2-decoder.js +3 -2
- package/dist/s2-decoder.js.map +1 -1
- package/dist/s2.cjs +77 -2
- package/dist/s2.cjs.map +2 -2
- package/dist/unwrap-dggs-boundary.d.ts +12 -0
- package/dist/unwrap-dggs-boundary.d.ts.map +1 -0
- package/dist/unwrap-dggs-boundary.js +49 -0
- package/dist/unwrap-dggs-boundary.js.map +1 -0
- package/package.json +3 -3
- package/src/a5-decoder.ts +8 -3
- package/src/dggs-decoder.ts +40 -3
- package/src/geohash-decoder.ts +8 -3
- package/src/h3-decoder.ts +8 -3
- package/src/index.ts +2 -0
- package/src/plus-code-decoder.ts +8 -3
- package/src/quadkey-decoder.ts +8 -3
- package/src/s2-decoder.ts +3 -3
- package/src/unwrap-dggs-boundary.ts +54 -0
package/dist/quadkey.cjs
CHANGED
|
@@ -24,6 +24,42 @@ __export(quadkey_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(quadkey_exports);
|
|
26
26
|
|
|
27
|
+
// dist/unwrap-dggs-boundary.js
|
|
28
|
+
function unwrapDGGSBoundary(boundary, referenceLongitude) {
|
|
29
|
+
const result = boundary.map(([longitude, latitude]) => [longitude, latitude]);
|
|
30
|
+
if (result.length === 0) {
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
let west = Infinity;
|
|
34
|
+
let east = -Infinity;
|
|
35
|
+
for (const [longitude] of boundary) {
|
|
36
|
+
west = Math.min(west, longitude);
|
|
37
|
+
east = Math.max(east, longitude);
|
|
38
|
+
}
|
|
39
|
+
if (east - west >= 360) {
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
let previous = referenceLongitude ?? result[0][0];
|
|
43
|
+
for (const point of result) {
|
|
44
|
+
const delta = point[0] - previous;
|
|
45
|
+
if (delta > 180) {
|
|
46
|
+
point[0] -= 360 * Math.ceil((delta - 180) / 360);
|
|
47
|
+
} else if (delta < -180) {
|
|
48
|
+
point[0] += 360 * Math.ceil((-delta - 180) / 360);
|
|
49
|
+
}
|
|
50
|
+
previous = point[0];
|
|
51
|
+
}
|
|
52
|
+
const first = boundary[0];
|
|
53
|
+
const last = boundary[boundary.length - 1];
|
|
54
|
+
if (first[0] === last[0] && first[1] === last[1]) {
|
|
55
|
+
if (Math.abs(result[result.length - 1][0] - result[0][0]) > 180) {
|
|
56
|
+
return boundary.map(([longitude, latitude]) => [longitude, latitude]);
|
|
57
|
+
}
|
|
58
|
+
result[result.length - 1] = [...result[0]];
|
|
59
|
+
}
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
|
|
27
63
|
// dist/dggs-decoder.js
|
|
28
64
|
function getDGGSCellToken(cell, gridName) {
|
|
29
65
|
if (typeof cell !== "string") {
|
|
@@ -31,10 +67,47 @@ function getDGGSCellToken(cell, gridName) {
|
|
|
31
67
|
}
|
|
32
68
|
return cell;
|
|
33
69
|
}
|
|
70
|
+
function getDGGSCellBounds(boundary) {
|
|
71
|
+
let west = Infinity;
|
|
72
|
+
let south = Infinity;
|
|
73
|
+
let east = -Infinity;
|
|
74
|
+
let north = -Infinity;
|
|
75
|
+
for (const [longitude, latitude] of boundary) {
|
|
76
|
+
west = Math.min(west, longitude);
|
|
77
|
+
south = Math.min(south, latitude);
|
|
78
|
+
east = Math.max(east, longitude);
|
|
79
|
+
north = Math.max(north, latitude);
|
|
80
|
+
}
|
|
81
|
+
return [
|
|
82
|
+
[west, south],
|
|
83
|
+
[east, north]
|
|
84
|
+
];
|
|
85
|
+
}
|
|
86
|
+
function withDGGSBoundaryOptions(decoder) {
|
|
87
|
+
const cellToBoundary = (cell, options) => {
|
|
88
|
+
const boundary = decoder.cellToBoundary(cell);
|
|
89
|
+
return (options == null ? void 0 : options.unwrap) ? unwrapDGGSBoundary(boundary, options.referenceLongitude) : boundary;
|
|
90
|
+
};
|
|
91
|
+
return {
|
|
92
|
+
...decoder,
|
|
93
|
+
cellToBoundary,
|
|
94
|
+
cellToBoundaryFlat: (cell, options) => (options == null ? void 0 : options.unwrap) ? cellToBoundary(cell, options).flat() : decoder.cellToBoundaryFlat(cell),
|
|
95
|
+
cellToBounds: (cell, options) => {
|
|
96
|
+
const bounds = decoder.cellToBounds(cell);
|
|
97
|
+
if (!(options == null ? void 0 : options.unwrap) || bounds[1][0] - bounds[0][0] >= 360) {
|
|
98
|
+
return bounds;
|
|
99
|
+
}
|
|
100
|
+
const unwrapped = getDGGSCellBounds(cellToBoundary(cell, options));
|
|
101
|
+
unwrapped[0][1] = bounds[0][1];
|
|
102
|
+
unwrapped[1][1] = bounds[1][1];
|
|
103
|
+
return unwrapped;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}
|
|
34
107
|
|
|
35
108
|
// dist/quadkey-decoder.js
|
|
36
109
|
var TILE_SIZE = 512;
|
|
37
|
-
var QuadkeyDecoder = {
|
|
110
|
+
var QuadkeyDecoder = withDGGSBoundaryOptions({
|
|
38
111
|
name: "quadkey",
|
|
39
112
|
hasNumericRepresentation: false,
|
|
40
113
|
cellColumnNames: ["quadkey", "quadkeyId", "quadkey_id"],
|
|
@@ -42,7 +115,7 @@ var QuadkeyDecoder = {
|
|
|
42
115
|
cellToBoundary: (cell) => getQuadkeyBoundary(getDGGSCellToken(cell, "Quadkey")),
|
|
43
116
|
cellToBoundaryFlat: (cell) => getQuadkeyBoundaryFlat(getDGGSCellToken(cell, "Quadkey")),
|
|
44
117
|
cellToBounds: (cell) => getQuadkeyBounds(getDGGSCellToken(cell, "Quadkey"))
|
|
45
|
-
};
|
|
118
|
+
});
|
|
46
119
|
function getQuadkeyLngLat(quadkey) {
|
|
47
120
|
const [topLeft, bottomRight] = quadkeyToWorldBounds(quadkey);
|
|
48
121
|
const [w, n] = worldToLngLat(topLeft);
|
package/dist/quadkey.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/quadkey.ts", "../src/dggs-decoder.ts", "../src/quadkey-decoder.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;
|
|
3
|
+
"sources": ["../src/quadkey.ts", "../src/unwrap-dggs-boundary.ts", "../src/dggs-decoder.ts", "../src/quadkey-decoder.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/s2-decoder.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Bounds2D } from '@math.gl/types';
|
|
2
|
-
import { type DGGSCell } from "./dggs-decoder.js";
|
|
2
|
+
import { type DGGSCell, type DGGSDecoder } from "./dggs-decoder.js";
|
|
3
3
|
/** Decoder for the S2 DGGS */
|
|
4
|
-
export declare const S2Decoder: {
|
|
4
|
+
export declare const S2Decoder: Omit<{
|
|
5
5
|
readonly name: "s2";
|
|
6
6
|
readonly hasNumericRepresentation: true;
|
|
7
7
|
readonly cellColumnNames: readonly ["s2", "s2Token", "s2_token", "s2Cell", "s2_cell", "s2CellId", "s2_cell_id"];
|
|
@@ -11,7 +11,7 @@ export declare const S2Decoder: {
|
|
|
11
11
|
readonly cellToBoundary: (cell: DGGSCell) => [number, number][];
|
|
12
12
|
readonly cellToBoundaryFlat: (cell: DGGSCell) => number[];
|
|
13
13
|
readonly cellToBounds: (cell: DGGSCell) => Bounds2D;
|
|
14
|
-
}
|
|
14
|
+
}, "cellToBoundary" | "cellToBoundaryFlat" | "cellToBounds"> & Pick<DGGSDecoder, "cellToBoundary" | "cellToBoundaryFlat" | "cellToBounds">;
|
|
15
15
|
/**
|
|
16
16
|
* Retrieve S2 geometry center
|
|
17
17
|
*/
|
package/dist/s2-decoder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s2-decoder.d.ts","sourceRoot":"","sources":["../src/s2-decoder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"s2-decoder.d.ts","sourceRoot":"","sources":["../src/s2-decoder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAA0B,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAC,0BAAuB;AAMxF,8BAA8B;AAC9B,eAAO,MAAM,SAAS;;;;oCAIG,MAAM,KAAG,MAAM;iCAClB,QAAQ,KAAG,MAAM;kCAChB,QAAQ,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;oCACzB,QAAQ,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;wCACzB,QAAQ,KAAG,MAAM,EAAE;kCACzB,QAAQ,KAAG,QAAQ;0IACT,CAAC;AAElC;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAU5D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAK1D;AAWD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CA4CpD"}
|
package/dist/s2-decoder.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
// math.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { withDGGSBoundaryOptions } from "./dggs-decoder.js";
|
|
4
5
|
import { getS2IndexFromToken, getS2TokenFromIndex } from "./s2-geometry/s2-token.js";
|
|
5
6
|
import { getS2GeoBounds } from "./s2-geometry/s2-to-boundary.js";
|
|
6
7
|
import { getS2Cell, IJToST, STToUV, FaceUVToXYZ, XYZToLngLat } from "./s2-geometry/s2-geometry.js";
|
|
7
8
|
/** Decoder for the S2 DGGS */
|
|
8
|
-
export const S2Decoder = {
|
|
9
|
+
export const S2Decoder = withDGGSBoundaryOptions({
|
|
9
10
|
name: 's2',
|
|
10
11
|
hasNumericRepresentation: true,
|
|
11
12
|
cellColumnNames: ['s2', 's2Token', 's2_token', 's2Cell', 's2_cell', 's2CellId', 's2_cell_id'],
|
|
@@ -15,7 +16,7 @@ export const S2Decoder = {
|
|
|
15
16
|
cellToBoundary: (cell) => getS2Boundary(cell),
|
|
16
17
|
cellToBoundaryFlat: (cell) => getS2BoundaryFlat(cell),
|
|
17
18
|
cellToBounds: (cell) => getS2Bounds(cell)
|
|
18
|
-
};
|
|
19
|
+
});
|
|
19
20
|
/**
|
|
20
21
|
* Retrieve S2 geometry center
|
|
21
22
|
*/
|
package/dist/s2-decoder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s2-decoder.js","sourceRoot":"","sources":["../src/s2-decoder.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"s2-decoder.js","sourceRoot":"","sources":["../src/s2-decoder.ts"],"names":[],"mappings":"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"}
|
package/dist/s2.cjs
CHANGED
|
@@ -34,6 +34,81 @@ __export(s2_exports, {
|
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(s2_exports);
|
|
36
36
|
|
|
37
|
+
// dist/unwrap-dggs-boundary.js
|
|
38
|
+
function unwrapDGGSBoundary(boundary, referenceLongitude) {
|
|
39
|
+
const result = boundary.map(([longitude, latitude]) => [longitude, latitude]);
|
|
40
|
+
if (result.length === 0) {
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
let west = Infinity;
|
|
44
|
+
let east = -Infinity;
|
|
45
|
+
for (const [longitude] of boundary) {
|
|
46
|
+
west = Math.min(west, longitude);
|
|
47
|
+
east = Math.max(east, longitude);
|
|
48
|
+
}
|
|
49
|
+
if (east - west >= 360) {
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
let previous = referenceLongitude ?? result[0][0];
|
|
53
|
+
for (const point of result) {
|
|
54
|
+
const delta = point[0] - previous;
|
|
55
|
+
if (delta > 180) {
|
|
56
|
+
point[0] -= 360 * Math.ceil((delta - 180) / 360);
|
|
57
|
+
} else if (delta < -180) {
|
|
58
|
+
point[0] += 360 * Math.ceil((-delta - 180) / 360);
|
|
59
|
+
}
|
|
60
|
+
previous = point[0];
|
|
61
|
+
}
|
|
62
|
+
const first = boundary[0];
|
|
63
|
+
const last = boundary[boundary.length - 1];
|
|
64
|
+
if (first[0] === last[0] && first[1] === last[1]) {
|
|
65
|
+
if (Math.abs(result[result.length - 1][0] - result[0][0]) > 180) {
|
|
66
|
+
return boundary.map(([longitude, latitude]) => [longitude, latitude]);
|
|
67
|
+
}
|
|
68
|
+
result[result.length - 1] = [...result[0]];
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// dist/dggs-decoder.js
|
|
74
|
+
function getDGGSCellBounds(boundary) {
|
|
75
|
+
let west = Infinity;
|
|
76
|
+
let south = Infinity;
|
|
77
|
+
let east = -Infinity;
|
|
78
|
+
let north = -Infinity;
|
|
79
|
+
for (const [longitude, latitude] of boundary) {
|
|
80
|
+
west = Math.min(west, longitude);
|
|
81
|
+
south = Math.min(south, latitude);
|
|
82
|
+
east = Math.max(east, longitude);
|
|
83
|
+
north = Math.max(north, latitude);
|
|
84
|
+
}
|
|
85
|
+
return [
|
|
86
|
+
[west, south],
|
|
87
|
+
[east, north]
|
|
88
|
+
];
|
|
89
|
+
}
|
|
90
|
+
function withDGGSBoundaryOptions(decoder) {
|
|
91
|
+
const cellToBoundary = (cell, options) => {
|
|
92
|
+
const boundary = decoder.cellToBoundary(cell);
|
|
93
|
+
return (options == null ? void 0 : options.unwrap) ? unwrapDGGSBoundary(boundary, options.referenceLongitude) : boundary;
|
|
94
|
+
};
|
|
95
|
+
return {
|
|
96
|
+
...decoder,
|
|
97
|
+
cellToBoundary,
|
|
98
|
+
cellToBoundaryFlat: (cell, options) => (options == null ? void 0 : options.unwrap) ? cellToBoundary(cell, options).flat() : decoder.cellToBoundaryFlat(cell),
|
|
99
|
+
cellToBounds: (cell, options) => {
|
|
100
|
+
const bounds = decoder.cellToBounds(cell);
|
|
101
|
+
if (!(options == null ? void 0 : options.unwrap) || bounds[1][0] - bounds[0][0] >= 360) {
|
|
102
|
+
return bounds;
|
|
103
|
+
}
|
|
104
|
+
const unwrapped = getDGGSCellBounds(cellToBoundary(cell, options));
|
|
105
|
+
unwrapped[0][1] = bounds[0][1];
|
|
106
|
+
unwrapped[1][1] = bounds[1][1];
|
|
107
|
+
return unwrapped;
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
|
|
37
112
|
// dist/s2-geometry/s2-token.js
|
|
38
113
|
var MAXIMUM_TOKEN_LENGTH = 16;
|
|
39
114
|
var MAXIMUM_S2_INDEX = (1n << 64n) - 1n;
|
|
@@ -352,7 +427,7 @@ function getS2GeoBoundsFromCell({ face, ij, level }) {
|
|
|
352
427
|
}
|
|
353
428
|
|
|
354
429
|
// dist/s2-decoder.js
|
|
355
|
-
var S2Decoder = {
|
|
430
|
+
var S2Decoder = withDGGSBoundaryOptions({
|
|
356
431
|
name: "s2",
|
|
357
432
|
hasNumericRepresentation: true,
|
|
358
433
|
cellColumnNames: ["s2", "s2Token", "s2_token", "s2Cell", "s2_cell", "s2CellId", "s2_cell_id"],
|
|
@@ -362,7 +437,7 @@ var S2Decoder = {
|
|
|
362
437
|
cellToBoundary: (cell) => getS2Boundary(cell),
|
|
363
438
|
cellToBoundaryFlat: (cell) => getS2BoundaryFlat(cell),
|
|
364
439
|
cellToBounds: (cell) => getS2Bounds(cell)
|
|
365
|
-
};
|
|
440
|
+
});
|
|
366
441
|
function getS2LngLat(cell) {
|
|
367
442
|
const s2Index = getS2CellIndex(cell);
|
|
368
443
|
const s2Cell = getS2Cell(s2Index);
|
package/dist/s2.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/s2.ts", "../src/s2-geometry/s2-token.ts", "../src/s2-geometry/s2-geometry.ts", "../src/s2-geometry/s2-to-boundary.ts", "../src/s2-decoder.ts"],
|
|
4
|
-
"mappings": "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",
|
|
3
|
+
"sources": ["../src/s2.ts", "../src/unwrap-dggs-boundary.ts", "../src/dggs-decoder.ts", "../src/s2-geometry/s2-token.ts", "../src/s2-geometry/s2-geometry.ts", "../src/s2-geometry/s2-to-boundary.ts", "../src/s2-decoder.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copy a cell boundary, unwrapping longitudes across the antimeridian.
|
|
3
|
+
* @param boundary Open or closed longitude/latitude pairs in degrees.
|
|
4
|
+
* @param referenceLongitude Optional longitude near which to place the first vertex.
|
|
5
|
+
* @returns Fresh pairs with each longitude nearest the preceding longitude. Exact
|
|
6
|
+
* 180-degree ties retain their direction. Latitudes and vertex order are preserved.
|
|
7
|
+
* @remarks Explicit boundaries spanning at least 360 degrees and closed rings with
|
|
8
|
+
* net longitude winding are copied unchanged. Polar cells need additional topology
|
|
9
|
+
* handling. This helper neither splits polygons nor calculates geodesic edges.
|
|
10
|
+
*/
|
|
11
|
+
export declare function unwrapDGGSBoundary(boundary: ReadonlyArray<readonly [number, number]>, referenceLongitude?: number): [number, number][];
|
|
12
|
+
//# sourceMappingURL=unwrap-dggs-boundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unwrap-dggs-boundary.d.ts","sourceRoot":"","sources":["../src/unwrap-dggs-boundary.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAC1B,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAoCpB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
/**
|
|
5
|
+
* Copy a cell boundary, unwrapping longitudes across the antimeridian.
|
|
6
|
+
* @param boundary Open or closed longitude/latitude pairs in degrees.
|
|
7
|
+
* @param referenceLongitude Optional longitude near which to place the first vertex.
|
|
8
|
+
* @returns Fresh pairs with each longitude nearest the preceding longitude. Exact
|
|
9
|
+
* 180-degree ties retain their direction. Latitudes and vertex order are preserved.
|
|
10
|
+
* @remarks Explicit boundaries spanning at least 360 degrees and closed rings with
|
|
11
|
+
* net longitude winding are copied unchanged. Polar cells need additional topology
|
|
12
|
+
* handling. This helper neither splits polygons nor calculates geodesic edges.
|
|
13
|
+
*/
|
|
14
|
+
export function unwrapDGGSBoundary(boundary, referenceLongitude) {
|
|
15
|
+
const result = boundary.map(([longitude, latitude]) => [longitude, latitude]);
|
|
16
|
+
if (result.length === 0) {
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
let west = Infinity;
|
|
20
|
+
let east = -Infinity;
|
|
21
|
+
for (const [longitude] of boundary) {
|
|
22
|
+
west = Math.min(west, longitude);
|
|
23
|
+
east = Math.max(east, longitude);
|
|
24
|
+
}
|
|
25
|
+
if (east - west >= 360) {
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
let previous = referenceLongitude ?? result[0][0];
|
|
29
|
+
for (const point of result) {
|
|
30
|
+
const delta = point[0] - previous;
|
|
31
|
+
if (delta > 180) {
|
|
32
|
+
point[0] -= 360 * Math.ceil((delta - 180) / 360);
|
|
33
|
+
}
|
|
34
|
+
else if (delta < -180) {
|
|
35
|
+
point[0] += 360 * Math.ceil((-delta - 180) / 360);
|
|
36
|
+
}
|
|
37
|
+
previous = point[0];
|
|
38
|
+
}
|
|
39
|
+
const first = boundary[0];
|
|
40
|
+
const last = boundary[boundary.length - 1];
|
|
41
|
+
if (first[0] === last[0] && first[1] === last[1]) {
|
|
42
|
+
if (Math.abs(result[result.length - 1][0] - result[0][0]) > 180) {
|
|
43
|
+
return boundary.map(([longitude, latitude]) => [longitude, latitude]);
|
|
44
|
+
}
|
|
45
|
+
result[result.length - 1] = [...result[0]];
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=unwrap-dggs-boundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unwrap-dggs-boundary.js","sourceRoot":"","sources":["../src/unwrap-dggs-boundary.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAkD,EAClD,kBAA2B;IAE3B,MAAM,MAAM,GAAuB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;IACrB,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,QAAQ,EAAE,CAAC;QACnC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,GAAG,kBAAkB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAClC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YAChB,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;YACxB,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;YAChE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
9
|
-
"version": "5.0.0-alpha.
|
|
9
|
+
"version": "5.0.0-alpha.9",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"javascript",
|
|
12
12
|
"math",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"src"
|
|
69
69
|
],
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@math.gl/types": "5.0.0-alpha.
|
|
71
|
+
"@math.gl/types": "5.0.0-alpha.9",
|
|
72
72
|
"a5-js": "^0.10.0",
|
|
73
73
|
"h3-js": "^4.5.0",
|
|
74
74
|
"open-location-code": "^1.0.3"
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"s2-geometry": "^1.2.10"
|
|
78
78
|
},
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "adbf70574b89cbb23b2fcd7af1e8ef28b9a8d2be"
|
|
80
80
|
}
|
package/src/a5-decoder.ts
CHANGED
|
@@ -4,10 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
import {cellToBoundary, cellToLonLat, hexToU64, u64ToHex} from 'a5-js';
|
|
6
6
|
import {type Bounds2D} from '@math.gl/types';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
withDGGSBoundaryOptions,
|
|
9
|
+
type DGGSCell,
|
|
10
|
+
type DGGSDecoder,
|
|
11
|
+
getDGGSCellBounds
|
|
12
|
+
} from './dggs-decoder';
|
|
8
13
|
|
|
9
14
|
/** Lightweight cell geometry decoder for the A5 pentagonal DGGS. */
|
|
10
|
-
export const A5Decoder = {
|
|
15
|
+
export const A5Decoder = withDGGSBoundaryOptions({
|
|
11
16
|
name: 'a5',
|
|
12
17
|
hasNumericRepresentation: true,
|
|
13
18
|
cellColumnNames: [
|
|
@@ -27,7 +32,7 @@ export const A5Decoder = {
|
|
|
27
32
|
cellToBoundary: (cell: DGGSCell): [number, number][] => getA5Boundary(cell),
|
|
28
33
|
cellToBoundaryFlat: (cell: DGGSCell): number[] => getA5Boundary(cell).flat(),
|
|
29
34
|
cellToBounds: (cell: DGGSCell): Bounds2D => getDGGSCellBounds(getA5Boundary(cell))
|
|
30
|
-
} as const satisfies DGGSDecoder;
|
|
35
|
+
} as const satisfies DGGSDecoder);
|
|
31
36
|
|
|
32
37
|
function getA5CellIndex(cell: DGGSCell): bigint {
|
|
33
38
|
return typeof cell === 'bigint' ? cell : hexToU64(removeHexPrefix(cell));
|
package/src/dggs-decoder.ts
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import {type Bounds2D} from '@math.gl/types';
|
|
6
|
+
import {unwrapDGGSBoundary} from './unwrap-dggs-boundary';
|
|
7
|
+
|
|
8
|
+
/** Optional continuous-longitude geometry output for DGGS decoders. */
|
|
9
|
+
export type DGGSBoundaryOptions = {
|
|
10
|
+
/** Unwrap ordinary antimeridian crossings. Defaults to false. */
|
|
11
|
+
unwrap?: boolean;
|
|
12
|
+
/** Place the first longitude near this value, in degrees. Used only with unwrap. */
|
|
13
|
+
referenceLongitude?: number;
|
|
14
|
+
};
|
|
6
15
|
|
|
7
16
|
/** Cell identifiers used by the lightweight decoder API. */
|
|
8
17
|
export type DGGSCell = string | bigint;
|
|
@@ -28,12 +37,12 @@ export type DGGSDecoder = {
|
|
|
28
37
|
/** Return the center of the cell as `[longitude, latitude]`. */
|
|
29
38
|
cellToLngLat: (cell: DGGSCell) => [number, number];
|
|
30
39
|
/** Return the closed cell boundary as longitude/latitude pairs. */
|
|
31
|
-
cellToBoundary: (cell: DGGSCell) => [number, number][];
|
|
40
|
+
cellToBoundary: (cell: DGGSCell, options?: DGGSBoundaryOptions) => [number, number][];
|
|
32
41
|
|
|
33
42
|
/** @returns the boundary of the cell, as a flat array */
|
|
34
|
-
cellToBoundaryFlat: (cell: DGGSCell) => number[];
|
|
43
|
+
cellToBoundaryFlat: (cell: DGGSCell, options?: DGGSBoundaryOptions) => number[];
|
|
35
44
|
/** @returns the longitude/latitude bounds of the cell */
|
|
36
|
-
cellToBounds: (cell: DGGSCell) => Bounds2D;
|
|
45
|
+
cellToBounds: (cell: DGGSCell, options?: DGGSBoundaryOptions) => Bounds2D;
|
|
37
46
|
};
|
|
38
47
|
|
|
39
48
|
/** A cell column and the decoder selected for it. */
|
|
@@ -69,3 +78,31 @@ export function getDGGSCellBounds(boundary: [number, number][]): Bounds2D {
|
|
|
69
78
|
[east, north]
|
|
70
79
|
];
|
|
71
80
|
}
|
|
81
|
+
|
|
82
|
+
/** @internal Apply the shared opt-in geometry policy to a decoder. */
|
|
83
|
+
export function withDGGSBoundaryOptions<T extends DGGSDecoder>(
|
|
84
|
+
decoder: T
|
|
85
|
+
): Omit<T, 'cellToBoundary' | 'cellToBoundaryFlat' | 'cellToBounds'> &
|
|
86
|
+
Pick<DGGSDecoder, 'cellToBoundary' | 'cellToBoundaryFlat' | 'cellToBounds'> {
|
|
87
|
+
const cellToBoundary = (cell: DGGSCell, options?: DGGSBoundaryOptions): [number, number][] => {
|
|
88
|
+
const boundary = decoder.cellToBoundary(cell);
|
|
89
|
+
return options?.unwrap ? unwrapDGGSBoundary(boundary, options.referenceLongitude) : boundary;
|
|
90
|
+
};
|
|
91
|
+
return {
|
|
92
|
+
...decoder,
|
|
93
|
+
cellToBoundary,
|
|
94
|
+
cellToBoundaryFlat: (cell, options) =>
|
|
95
|
+
options?.unwrap ? cellToBoundary(cell, options).flat() : decoder.cellToBoundaryFlat(cell),
|
|
96
|
+
cellToBounds: (cell, options) => {
|
|
97
|
+
const bounds = decoder.cellToBounds(cell);
|
|
98
|
+
if (!options?.unwrap || bounds[1][0] - bounds[0][0] >= 360) {
|
|
99
|
+
return bounds;
|
|
100
|
+
}
|
|
101
|
+
const unwrapped = getDGGSCellBounds(cellToBoundary(cell, options));
|
|
102
|
+
// Latitude extrema may occur inside the cell or along curved edges.
|
|
103
|
+
unwrapped[0][1] = bounds[0][1];
|
|
104
|
+
unwrapped[1][1] = bounds[1][1];
|
|
105
|
+
return unwrapped;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
}
|
package/src/geohash-decoder.ts
CHANGED
|
@@ -3,10 +3,15 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import {type Bounds2D} from '@math.gl/types';
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
withDGGSBoundaryOptions,
|
|
8
|
+
type DGGSCell,
|
|
9
|
+
type DGGSDecoder,
|
|
10
|
+
getDGGSCellToken
|
|
11
|
+
} from './dggs-decoder';
|
|
7
12
|
|
|
8
13
|
/** Decoder for the geohash dggs */
|
|
9
|
-
export const GeohashDecoder = {
|
|
14
|
+
export const GeohashDecoder = withDGGSBoundaryOptions({
|
|
10
15
|
name: 'geohash',
|
|
11
16
|
hasNumericRepresentation: false,
|
|
12
17
|
cellColumnNames: ['geohash', 'geohashId', 'geohash_id'],
|
|
@@ -17,7 +22,7 @@ export const GeohashDecoder = {
|
|
|
17
22
|
cellToBoundaryFlat: (cell: DGGSCell): number[] =>
|
|
18
23
|
getGeohashBoundaryFlat(getDGGSCellToken(cell, 'GeoHash')),
|
|
19
24
|
cellToBounds: (cell: DGGSCell): Bounds2D => getGeohashBounds(getDGGSCellToken(cell, 'GeoHash'))
|
|
20
|
-
} as const satisfies DGGSDecoder;
|
|
25
|
+
} as const satisfies DGGSDecoder);
|
|
21
26
|
|
|
22
27
|
const BASE32_CODES = '0123456789bcdefghjkmnpqrstuvwxyz';
|
|
23
28
|
const BASE32_CODES_DICT: Record<string, number> = {};
|
package/src/h3-decoder.ts
CHANGED
|
@@ -4,10 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
import {cellToBoundary, cellToLatLng} from 'h3-js';
|
|
6
6
|
import {type Bounds2D} from '@math.gl/types';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
withDGGSBoundaryOptions,
|
|
9
|
+
type DGGSCell,
|
|
10
|
+
type DGGSDecoder,
|
|
11
|
+
getDGGSCellBounds
|
|
12
|
+
} from './dggs-decoder';
|
|
8
13
|
|
|
9
14
|
/** Lightweight cell geometry decoder for the H3 hexagonal DGGS. */
|
|
10
|
-
export const H3Decoder = {
|
|
15
|
+
export const H3Decoder = withDGGSBoundaryOptions({
|
|
11
16
|
name: 'h3',
|
|
12
17
|
hasNumericRepresentation: true,
|
|
13
18
|
cellColumnNames: [
|
|
@@ -26,7 +31,7 @@ export const H3Decoder = {
|
|
|
26
31
|
cellToBoundary: (cell: DGGSCell): [number, number][] => getH3Boundary(cell),
|
|
27
32
|
cellToBoundaryFlat: (cell: DGGSCell): number[] => getH3Boundary(cell).flat(),
|
|
28
33
|
cellToBounds: (cell: DGGSCell): Bounds2D => getDGGSCellBounds(getH3Boundary(cell))
|
|
29
|
-
} as const satisfies DGGSDecoder;
|
|
34
|
+
} as const satisfies DGGSDecoder);
|
|
30
35
|
|
|
31
36
|
function getH3Token(cell: DGGSCell): string {
|
|
32
37
|
return typeof cell === 'bigint' ? cell.toString(16) : removeHexPrefix(cell);
|
package/src/index.ts
CHANGED
|
@@ -10,7 +10,9 @@ import {PlusCodeDecoder} from './plus-code-decoder';
|
|
|
10
10
|
import {QuadkeyDecoder} from './quadkey-decoder';
|
|
11
11
|
import {S2Decoder} from './s2-decoder';
|
|
12
12
|
|
|
13
|
+
export {type DGGSBoundaryOptions} from './dggs-decoder';
|
|
13
14
|
export {type DGGSCell, type DGGSCellColumn, type DGGSDecoder};
|
|
15
|
+
export {unwrapDGGSBoundary} from './unwrap-dggs-boundary';
|
|
14
16
|
export {A5Decoder};
|
|
15
17
|
export {GeohashDecoder};
|
|
16
18
|
export {H3Decoder};
|
package/src/plus-code-decoder.ts
CHANGED
|
@@ -4,7 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
import OpenLocationCodePackage, {type OpenLocationCodeArea} from 'open-location-code';
|
|
6
6
|
import {type Bounds2D} from '@math.gl/types';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
withDGGSBoundaryOptions,
|
|
9
|
+
type DGGSCell,
|
|
10
|
+
type DGGSDecoder,
|
|
11
|
+
getDGGSCellToken
|
|
12
|
+
} from './dggs-decoder';
|
|
8
13
|
|
|
9
14
|
const openLocationCode = new OpenLocationCodePackage.OpenLocationCode();
|
|
10
15
|
|
|
@@ -12,7 +17,7 @@ const openLocationCode = new OpenLocationCodePackage.OpenLocationCode();
|
|
|
12
17
|
* Lightweight geometry decoder for full Google Plus Codes (Open Location Codes).
|
|
13
18
|
* Short codes require a reference location and are intentionally unsupported.
|
|
14
19
|
*/
|
|
15
|
-
export const PlusCodeDecoder = {
|
|
20
|
+
export const PlusCodeDecoder = withDGGSBoundaryOptions({
|
|
16
21
|
name: 'plus-code',
|
|
17
22
|
hasNumericRepresentation: false,
|
|
18
23
|
cellColumnNames: ['plusCode', 'plus_code', 'openLocationCode', 'open_location_code', 'olc'],
|
|
@@ -29,7 +34,7 @@ export const PlusCodeDecoder = {
|
|
|
29
34
|
[area.longitudeHi, area.latitudeHi]
|
|
30
35
|
];
|
|
31
36
|
}
|
|
32
|
-
} as const satisfies DGGSDecoder;
|
|
37
|
+
} as const satisfies DGGSDecoder);
|
|
33
38
|
|
|
34
39
|
function getPlusCodeLngLat(cell: DGGSCell): [number, number] {
|
|
35
40
|
const area = decodePlusCode(cell);
|