@math.gl/dggs 5.0.0-alpha.10

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.
Files changed (118) hide show
  1. package/LICENSE +140 -0
  2. package/README.md +7 -0
  3. package/dist/a5-decoder.d.ts +15 -0
  4. package/dist/a5-decoder.d.ts.map +1 -0
  5. package/dist/a5-decoder.js +36 -0
  6. package/dist/a5-decoder.js.map +1 -0
  7. package/dist/a5.cjs +134 -0
  8. package/dist/a5.cjs.map +6 -0
  9. package/dist/a5.d.ts +2 -0
  10. package/dist/a5.d.ts.map +1 -0
  11. package/dist/a5.js +5 -0
  12. package/dist/a5.js.map +1 -0
  13. package/dist/converters/s2-to-obb-points.d.ts +15 -0
  14. package/dist/converters/s2-to-obb-points.d.ts.map +1 -0
  15. package/dist/converters/s2-to-obb-points.js +60 -0
  16. package/dist/converters/s2-to-obb-points.js.map +1 -0
  17. package/dist/converters/s2-to-region.d.ts +6 -0
  18. package/dist/converters/s2-to-region.d.ts.map +1 -0
  19. package/dist/converters/s2-to-region.js +27 -0
  20. package/dist/converters/s2-to-region.js.map +1 -0
  21. package/dist/dggs-decoder.d.ts +46 -0
  22. package/dist/dggs-decoder.d.ts.map +1 -0
  23. package/dist/dggs-decoder.js +52 -0
  24. package/dist/dggs-decoder.js.map +1 -0
  25. package/dist/geohash-decoder.d.ts +17 -0
  26. package/dist/geohash-decoder.d.ts.map +1 -0
  27. package/dist/geohash-decoder.js +88 -0
  28. package/dist/geohash-decoder.js.map +1 -0
  29. package/dist/geohash.cjs +181 -0
  30. package/dist/geohash.cjs.map +6 -0
  31. package/dist/geohash.d.ts +2 -0
  32. package/dist/geohash.d.ts.map +1 -0
  33. package/dist/geohash.js +5 -0
  34. package/dist/geohash.js.map +1 -0
  35. package/dist/h3-decoder.d.ts +15 -0
  36. package/dist/h3-decoder.d.ts.map +1 -0
  37. package/dist/h3-decoder.js +46 -0
  38. package/dist/h3-decoder.js.map +1 -0
  39. package/dist/h3.cjs +144 -0
  40. package/dist/h3.cjs.map +6 -0
  41. package/dist/h3.d.ts +2 -0
  42. package/dist/h3.d.ts.map +1 -0
  43. package/dist/h3.js +5 -0
  44. package/dist/h3.js.map +1 -0
  45. package/dist/index.cjs +863 -0
  46. package/dist/index.cjs.map +6 -0
  47. package/dist/index.d.ts +27 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +54 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/plus-code-decoder.d.ts +16 -0
  52. package/dist/plus-code-decoder.d.ts.map +1 -0
  53. package/dist/plus-code-decoder.js +50 -0
  54. package/dist/plus-code-decoder.js.map +1 -0
  55. package/dist/plus-code.cjs +161 -0
  56. package/dist/plus-code.cjs.map +6 -0
  57. package/dist/plus-code.d.ts +2 -0
  58. package/dist/plus-code.d.ts.map +1 -0
  59. package/dist/plus-code.js +5 -0
  60. package/dist/plus-code.js.map +1 -0
  61. package/dist/quadkey-decoder.d.ts +14 -0
  62. package/dist/quadkey-decoder.d.ts.map +1 -0
  63. package/dist/quadkey-decoder.js +86 -0
  64. package/dist/quadkey-decoder.js.map +1 -0
  65. package/dist/quadkey.cjs +179 -0
  66. package/dist/quadkey.cjs.map +6 -0
  67. package/dist/quadkey.d.ts +2 -0
  68. package/dist/quadkey.d.ts.map +1 -0
  69. package/dist/quadkey.js +5 -0
  70. package/dist/quadkey.js.map +1 -0
  71. package/dist/s2-decoder.d.ts +36 -0
  72. package/dist/s2-decoder.d.ts.map +1 -0
  73. package/dist/s2-decoder.js +144 -0
  74. package/dist/s2-decoder.js.map +1 -0
  75. package/dist/s2-geometry/s2-geometry.d.ts +33 -0
  76. package/dist/s2-geometry/s2-geometry.d.ts.map +1 -0
  77. package/dist/s2-geometry/s2-geometry.js +249 -0
  78. package/dist/s2-geometry/s2-geometry.js.map +1 -0
  79. package/dist/s2-geometry/s2-to-boundary.d.ts +14 -0
  80. package/dist/s2-geometry/s2-to-boundary.d.ts.map +1 -0
  81. package/dist/s2-geometry/s2-to-boundary.js +60 -0
  82. package/dist/s2-geometry/s2-to-boundary.js.map +1 -0
  83. package/dist/s2-geometry/s2-token.d.ts +43 -0
  84. package/dist/s2-geometry/s2-token.d.ts.map +1 -0
  85. package/dist/s2-geometry/s2-token.js +127 -0
  86. package/dist/s2-geometry/s2-token.js.map +1 -0
  87. package/dist/s2.cjs +543 -0
  88. package/dist/s2.cjs.map +6 -0
  89. package/dist/s2.d.ts +5 -0
  90. package/dist/s2.d.ts.map +1 -0
  91. package/dist/s2.js +7 -0
  92. package/dist/s2.js.map +1 -0
  93. package/dist/unwrap-dggs-boundary.d.ts +12 -0
  94. package/dist/unwrap-dggs-boundary.d.ts.map +1 -0
  95. package/dist/unwrap-dggs-boundary.js +49 -0
  96. package/dist/unwrap-dggs-boundary.js.map +1 -0
  97. package/package.json +80 -0
  98. package/src/a5-decoder.ts +47 -0
  99. package/src/a5.ts +5 -0
  100. package/src/converters/s2-to-obb-points.ts +78 -0
  101. package/src/converters/s2-to-region.ts +30 -0
  102. package/src/dggs-decoder.ts +108 -0
  103. package/src/geohash-decoder.ts +104 -0
  104. package/src/geohash.ts +5 -0
  105. package/src/h3-decoder.ts +58 -0
  106. package/src/h3.ts +5 -0
  107. package/src/index.ts +72 -0
  108. package/src/open-location-code.d.ts +19 -0
  109. package/src/plus-code-decoder.ts +61 -0
  110. package/src/plus-code.ts +5 -0
  111. package/src/quadkey-decoder.ts +103 -0
  112. package/src/quadkey.ts +5 -0
  113. package/src/s2-decoder.ts +157 -0
  114. package/src/s2-geometry/s2-geometry.ts +303 -0
  115. package/src/s2-geometry/s2-to-boundary.ts +76 -0
  116. package/src/s2-geometry/s2-token.ts +139 -0
  117. package/src/s2.ts +15 -0
  118. package/src/unwrap-dggs-boundary.ts +54 -0
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/a5-decoder.ts", "../src/unwrap-dggs-boundary.ts", "../src/dggs-decoder.ts", "../src/geohash-decoder.ts", "../src/h3-decoder.ts", "../src/plus-code-decoder.ts", "../src/quadkey-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
+ "names": ["cellToBoundary", "removeHexPrefix", "OpenLocationCodePackage"]
6
+ }
@@ -0,0 +1,27 @@
1
+ import { type DGGSCell, type DGGSCellColumn, type DGGSDecoder } from "./dggs-decoder.js";
2
+ import { A5Decoder } from "./a5-decoder.js";
3
+ import { GeohashDecoder } from "./geohash-decoder.js";
4
+ import { H3Decoder } from "./h3-decoder.js";
5
+ import { PlusCodeDecoder } from "./plus-code-decoder.js";
6
+ export { type DGGSBoundaryOptions } from "./dggs-decoder.js";
7
+ export { type DGGSCell, type DGGSCellColumn, type DGGSDecoder };
8
+ export { unwrapDGGSBoundary } from "./unwrap-dggs-boundary.js";
9
+ export { A5Decoder };
10
+ export { GeohashDecoder };
11
+ export { H3Decoder };
12
+ export { PlusCodeDecoder };
13
+ export { QuadkeyDecoder, quadkeyToWorldBounds } from "./quadkey-decoder.js";
14
+ export { S2Decoder, getS2Bounds, getS2LngLat, getS2BoundaryFlat } from "./s2-decoder.js";
15
+ export { getS2ChildIndex, getS2IndexFromToken, getS2Level, getS2TokenFromIndex, isS2IndexValid, isS2TokenValid } from "./s2-geometry/s2-token.js";
16
+ export { getS2DescendantIndex, getS2IndexFromCell } from "./s2-geometry/s2-geometry.js";
17
+ export type { S2Cell } from "./s2-geometry/s2-geometry.js";
18
+ /** Lightweight decoders bundled with this module. */
19
+ export declare const DGGS_DECODERS: readonly DGGSDecoder[];
20
+ /**
21
+ * Finds a conventional DGGS cell column by name.
22
+ *
23
+ * Returns `null` when there is no match or when columns from more than one
24
+ * decoder match. Callers should ask the user to choose in the ambiguous case.
25
+ */
26
+ export declare function findDGGSCellColumn(columnNames: Iterable<string>, decoders?: readonly DGGSDecoder[]): DGGSCellColumn | null;
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAC,0BAAuB;AACpF,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,OAAO,EAAC,cAAc,EAAC,6BAA0B;AACjD,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,OAAO,EAAC,eAAe,EAAC,+BAA4B;AAIpD,OAAO,EAAC,KAAK,mBAAmB,EAAC,0BAAuB;AACxD,OAAO,EAAC,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAC,CAAC;AAC9D,OAAO,EAAC,kBAAkB,EAAC,kCAA+B;AAC1D,OAAO,EAAC,SAAS,EAAC,CAAC;AACnB,OAAO,EAAC,cAAc,EAAC,CAAC;AACxB,OAAO,EAAC,SAAS,EAAC,CAAC;AACnB,OAAO,EAAC,eAAe,EAAC,CAAC;AACzB,OAAO,EAAC,cAAc,EAAE,oBAAoB,EAAC,6BAA0B;AACvE,OAAO,EAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAC,wBAAqB;AACpF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,cAAc,EACf,kCAA+B;AAChC,OAAO,EAAC,oBAAoB,EAAE,kBAAkB,EAAC,qCAAkC;AACnF,YAAY,EAAC,MAAM,EAAC,qCAAkC;AAEtD,qDAAqD;AACrD,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAO/C,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC7B,QAAQ,GAAE,SAAS,WAAW,EAAkB,GAC/C,cAAc,GAAG,IAAI,CAoBvB"}
package/dist/index.js ADDED
@@ -0,0 +1,54 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { A5Decoder } from "./a5-decoder.js";
5
+ import { GeohashDecoder } from "./geohash-decoder.js";
6
+ import { H3Decoder } from "./h3-decoder.js";
7
+ import { PlusCodeDecoder } from "./plus-code-decoder.js";
8
+ import { QuadkeyDecoder } from "./quadkey-decoder.js";
9
+ import { S2Decoder } from "./s2-decoder.js";
10
+ export { unwrapDGGSBoundary } from "./unwrap-dggs-boundary.js";
11
+ export { A5Decoder };
12
+ export { GeohashDecoder };
13
+ export { H3Decoder };
14
+ export { PlusCodeDecoder };
15
+ export { QuadkeyDecoder, quadkeyToWorldBounds } from "./quadkey-decoder.js";
16
+ export { S2Decoder, getS2Bounds, getS2LngLat, getS2BoundaryFlat } from "./s2-decoder.js";
17
+ export { getS2ChildIndex, getS2IndexFromToken, getS2Level, getS2TokenFromIndex, isS2IndexValid, isS2TokenValid } from "./s2-geometry/s2-token.js";
18
+ export { getS2DescendantIndex, getS2IndexFromCell } from "./s2-geometry/s2-geometry.js";
19
+ /** Lightweight decoders bundled with this module. */
20
+ export const DGGS_DECODERS = [
21
+ A5Decoder,
22
+ GeohashDecoder,
23
+ H3Decoder,
24
+ PlusCodeDecoder,
25
+ QuadkeyDecoder,
26
+ S2Decoder
27
+ ];
28
+ /**
29
+ * Finds a conventional DGGS cell column by name.
30
+ *
31
+ * Returns `null` when there is no match or when columns from more than one
32
+ * decoder match. Callers should ask the user to choose in the ambiguous case.
33
+ */
34
+ export function findDGGSCellColumn(columnNames, decoders = DGGS_DECODERS) {
35
+ const actualNames = new Map();
36
+ for (const columnName of columnNames) {
37
+ actualNames.set(columnName.toLowerCase(), columnName);
38
+ }
39
+ let match = null;
40
+ for (const decoder of decoders) {
41
+ for (const candidate of decoder.cellColumnNames) {
42
+ const columnName = actualNames.get(candidate.toLowerCase());
43
+ if (!columnName) {
44
+ continue;
45
+ }
46
+ if (match && (match.decoder !== decoder || match.columnName !== columnName)) {
47
+ return null;
48
+ }
49
+ match = { columnName, decoder };
50
+ }
51
+ }
52
+ return match;
53
+ }
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,OAAO,EAAC,cAAc,EAAC,6BAA0B;AACjD,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,OAAO,EAAC,eAAe,EAAC,+BAA4B;AACpD,OAAO,EAAC,cAAc,EAAC,6BAA0B;AACjD,OAAO,EAAC,SAAS,EAAC,wBAAqB;AAIvC,OAAO,EAAC,kBAAkB,EAAC,kCAA+B;AAC1D,OAAO,EAAC,SAAS,EAAC,CAAC;AACnB,OAAO,EAAC,cAAc,EAAC,CAAC;AACxB,OAAO,EAAC,SAAS,EAAC,CAAC;AACnB,OAAO,EAAC,eAAe,EAAC,CAAC;AACzB,OAAO,EAAC,cAAc,EAAE,oBAAoB,EAAC,6BAA0B;AACvE,OAAO,EAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAC,wBAAqB;AACpF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,cAAc,EACf,kCAA+B;AAChC,OAAO,EAAC,oBAAoB,EAAE,kBAAkB,EAAC,qCAAkC;AAGnF,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,SAAS;IACT,cAAc;IACd,SAAS;IACT,eAAe;IACf,cAAc;IACd,SAAS;CACV,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAA6B,EAC7B,WAAmC,aAAa;IAEhD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,KAAK,GAA0B,IAAI,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,SAAS;YACX,CAAC;YACD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,EAAE,CAAC;gBAC5E,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,GAAG,EAAC,UAAU,EAAE,OAAO,EAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type Bounds2D } from '@math.gl/types';
2
+ import { type DGGSCell, type DGGSDecoder } from "./dggs-decoder.js";
3
+ /**
4
+ * Lightweight geometry decoder for full Google Plus Codes (Open Location Codes).
5
+ * Short codes require a reference location and are intentionally unsupported.
6
+ */
7
+ export declare const PlusCodeDecoder: Omit<{
8
+ readonly name: "plus-code";
9
+ readonly hasNumericRepresentation: false;
10
+ readonly cellColumnNames: readonly ["plusCode", "plus_code", "openLocationCode", "open_location_code", "olc"];
11
+ readonly cellToLngLat: (cell: DGGSCell) => [number, number];
12
+ readonly cellToBoundary: (cell: DGGSCell) => [number, number][];
13
+ readonly cellToBoundaryFlat: (cell: DGGSCell) => number[];
14
+ readonly cellToBounds: (cell: DGGSCell) => Bounds2D;
15
+ }, "cellToBoundary" | "cellToBoundaryFlat" | "cellToBounds"> & Pick<DGGSDecoder, "cellToBoundary" | "cellToBoundaryFlat" | "cellToBounds">;
16
+ //# sourceMappingURL=plus-code-decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plus-code-decoder.d.ts","sourceRoot":"","sources":["../src/plus-code-decoder.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,KAAK,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,WAAW,EAEjB,0BAAuB;AAIxB;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;kCAIL,QAAQ,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;oCACzB,QAAQ,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;wCACzB,QAAQ,KAAG,MAAM,EAAE;kCAIzB,QAAQ,KAAG,QAAQ;0IAOT,CAAC"}
@@ -0,0 +1,50 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import OpenLocationCodePackage from 'open-location-code';
5
+ import { withDGGSBoundaryOptions, getDGGSCellToken } from "./dggs-decoder.js";
6
+ const openLocationCode = new OpenLocationCodePackage.OpenLocationCode();
7
+ /**
8
+ * Lightweight geometry decoder for full Google Plus Codes (Open Location Codes).
9
+ * Short codes require a reference location and are intentionally unsupported.
10
+ */
11
+ export const PlusCodeDecoder = withDGGSBoundaryOptions({
12
+ name: 'plus-code',
13
+ hasNumericRepresentation: false,
14
+ cellColumnNames: ['plusCode', 'plus_code', 'openLocationCode', 'open_location_code', 'olc'],
15
+ cellToLngLat: (cell) => getPlusCodeLngLat(cell),
16
+ cellToBoundary: (cell) => getPlusCodeBoundary(decodePlusCode(cell)),
17
+ cellToBoundaryFlat: (cell) => {
18
+ const area = decodePlusCode(cell);
19
+ return getPlusCodeBoundary(area).flat();
20
+ },
21
+ cellToBounds: (cell) => {
22
+ const area = decodePlusCode(cell);
23
+ return [
24
+ [area.longitudeLo, area.latitudeLo],
25
+ [area.longitudeHi, area.latitudeHi]
26
+ ];
27
+ }
28
+ });
29
+ function getPlusCodeLngLat(cell) {
30
+ const area = decodePlusCode(cell);
31
+ return [area.longitudeCenter, area.latitudeCenter];
32
+ }
33
+ function decodePlusCode(cell) {
34
+ const code = getDGGSCellToken(cell, 'Plus Code');
35
+ if (!openLocationCode.isFull(code)) {
36
+ throw new Error(`Plus Code decoder requires a full code: ${code}`);
37
+ }
38
+ return openLocationCode.decode(code);
39
+ }
40
+ function getPlusCodeBoundary(area) {
41
+ const { longitudeLo: west, latitudeLo: south, longitudeHi: east, latitudeHi: north } = area;
42
+ return [
43
+ [east, north],
44
+ [east, south],
45
+ [west, south],
46
+ [west, north],
47
+ [east, north]
48
+ ];
49
+ }
50
+ //# sourceMappingURL=plus-code-decoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plus-code-decoder.js","sourceRoot":"","sources":["../src/plus-code-decoder.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,uBAAoD,MAAM,oBAAoB,CAAC;AAEtF,OAAO,EACL,uBAAuB,EAGvB,gBAAgB,EACjB,0BAAuB;AAExB,MAAM,gBAAgB,GAAG,IAAI,uBAAuB,CAAC,gBAAgB,EAAE,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;IACrD,IAAI,EAAE,WAAW;IACjB,wBAAwB,EAAE,KAAK;IAC/B,eAAe,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,KAAK,CAAC;IAC3F,YAAY,EAAE,CAAC,IAAc,EAAoB,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;IAC3E,cAAc,EAAE,CAAC,IAAc,EAAsB,EAAE,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACjG,kBAAkB,EAAE,CAAC,IAAc,EAAY,EAAE;QAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,YAAY,EAAE,CAAC,IAAc,EAAY,EAAE;QACzC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO;YACL,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC;YACnC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC;SACpC,CAAC;IACJ,CAAC;CAC6B,CAAC,CAAC;AAElC,SAAS,iBAAiB,CAAC,IAAc;IACvC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,cAAc,CAAC,IAAc;IACpC,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA0B;IACrD,MAAM,EAAC,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAC,GAAG,IAAI,CAAC;IAC1F,OAAO;QACL,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,IAAI,EAAE,KAAK,CAAC;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,161 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // dist/plus-code.js
30
+ var plus_code_exports = {};
31
+ __export(plus_code_exports, {
32
+ PlusCodeDecoder: () => PlusCodeDecoder
33
+ });
34
+ module.exports = __toCommonJS(plus_code_exports);
35
+
36
+ // dist/plus-code-decoder.js
37
+ var import_open_location_code = __toESM(require("open-location-code"), 1);
38
+
39
+ // dist/unwrap-dggs-boundary.js
40
+ function unwrapDGGSBoundary(boundary, referenceLongitude) {
41
+ const result = boundary.map(([longitude, latitude]) => [longitude, latitude]);
42
+ if (result.length === 0) {
43
+ return result;
44
+ }
45
+ let west = Infinity;
46
+ let east = -Infinity;
47
+ for (const [longitude] of boundary) {
48
+ west = Math.min(west, longitude);
49
+ east = Math.max(east, longitude);
50
+ }
51
+ if (east - west >= 360) {
52
+ return result;
53
+ }
54
+ let previous = referenceLongitude ?? result[0][0];
55
+ for (const point of result) {
56
+ const delta = point[0] - previous;
57
+ if (delta > 180) {
58
+ point[0] -= 360 * Math.ceil((delta - 180) / 360);
59
+ } else if (delta < -180) {
60
+ point[0] += 360 * Math.ceil((-delta - 180) / 360);
61
+ }
62
+ previous = point[0];
63
+ }
64
+ const first = boundary[0];
65
+ const last = boundary[boundary.length - 1];
66
+ if (first[0] === last[0] && first[1] === last[1]) {
67
+ if (Math.abs(result[result.length - 1][0] - result[0][0]) > 180) {
68
+ return boundary.map(([longitude, latitude]) => [longitude, latitude]);
69
+ }
70
+ result[result.length - 1] = [...result[0]];
71
+ }
72
+ return result;
73
+ }
74
+
75
+ // dist/dggs-decoder.js
76
+ function getDGGSCellToken(cell, gridName) {
77
+ if (typeof cell !== "string") {
78
+ throw new Error(`${gridName} cell identifiers must be strings`);
79
+ }
80
+ return cell;
81
+ }
82
+ function getDGGSCellBounds(boundary) {
83
+ let west = Infinity;
84
+ let south = Infinity;
85
+ let east = -Infinity;
86
+ let north = -Infinity;
87
+ for (const [longitude, latitude] of boundary) {
88
+ west = Math.min(west, longitude);
89
+ south = Math.min(south, latitude);
90
+ east = Math.max(east, longitude);
91
+ north = Math.max(north, latitude);
92
+ }
93
+ return [
94
+ [west, south],
95
+ [east, north]
96
+ ];
97
+ }
98
+ function withDGGSBoundaryOptions(decoder) {
99
+ const cellToBoundary = (cell, options) => {
100
+ const boundary = decoder.cellToBoundary(cell);
101
+ return (options == null ? void 0 : options.unwrap) ? unwrapDGGSBoundary(boundary, options.referenceLongitude) : boundary;
102
+ };
103
+ return {
104
+ ...decoder,
105
+ cellToBoundary,
106
+ cellToBoundaryFlat: (cell, options) => (options == null ? void 0 : options.unwrap) ? cellToBoundary(cell, options).flat() : decoder.cellToBoundaryFlat(cell),
107
+ cellToBounds: (cell, options) => {
108
+ const bounds = decoder.cellToBounds(cell);
109
+ if (!(options == null ? void 0 : options.unwrap) || bounds[1][0] - bounds[0][0] >= 360) {
110
+ return bounds;
111
+ }
112
+ const unwrapped = getDGGSCellBounds(cellToBoundary(cell, options));
113
+ unwrapped[0][1] = bounds[0][1];
114
+ unwrapped[1][1] = bounds[1][1];
115
+ return unwrapped;
116
+ }
117
+ };
118
+ }
119
+
120
+ // dist/plus-code-decoder.js
121
+ var openLocationCode = new import_open_location_code.default.OpenLocationCode();
122
+ var PlusCodeDecoder = withDGGSBoundaryOptions({
123
+ name: "plus-code",
124
+ hasNumericRepresentation: false,
125
+ cellColumnNames: ["plusCode", "plus_code", "openLocationCode", "open_location_code", "olc"],
126
+ cellToLngLat: (cell) => getPlusCodeLngLat(cell),
127
+ cellToBoundary: (cell) => getPlusCodeBoundary(decodePlusCode(cell)),
128
+ cellToBoundaryFlat: (cell) => {
129
+ const area = decodePlusCode(cell);
130
+ return getPlusCodeBoundary(area).flat();
131
+ },
132
+ cellToBounds: (cell) => {
133
+ const area = decodePlusCode(cell);
134
+ return [
135
+ [area.longitudeLo, area.latitudeLo],
136
+ [area.longitudeHi, area.latitudeHi]
137
+ ];
138
+ }
139
+ });
140
+ function getPlusCodeLngLat(cell) {
141
+ const area = decodePlusCode(cell);
142
+ return [area.longitudeCenter, area.latitudeCenter];
143
+ }
144
+ function decodePlusCode(cell) {
145
+ const code = getDGGSCellToken(cell, "Plus Code");
146
+ if (!openLocationCode.isFull(code)) {
147
+ throw new Error(`Plus Code decoder requires a full code: ${code}`);
148
+ }
149
+ return openLocationCode.decode(code);
150
+ }
151
+ function getPlusCodeBoundary(area) {
152
+ const { longitudeLo: west, latitudeLo: south, longitudeHi: east, latitudeHi: north } = area;
153
+ return [
154
+ [east, north],
155
+ [east, south],
156
+ [west, south],
157
+ [west, north],
158
+ [east, north]
159
+ ];
160
+ }
161
+ //# sourceMappingURL=plus-code.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/plus-code.ts", "../src/plus-code-decoder.ts", "../src/unwrap-dggs-boundary.ts", "../src/dggs-decoder.ts"],
4
+ "mappings": "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",
5
+ "names": ["OpenLocationCodePackage"]
6
+ }
@@ -0,0 +1,2 @@
1
+ export { PlusCodeDecoder } from "./plus-code-decoder.js";
2
+ //# sourceMappingURL=plus-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plus-code.d.ts","sourceRoot":"","sources":["../src/plus-code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,eAAe,EAAC,+BAA4B"}
@@ -0,0 +1,5 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export { PlusCodeDecoder } from "./plus-code-decoder.js";
5
+ //# sourceMappingURL=plus-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plus-code.js","sourceRoot":"","sources":["../src/plus-code.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,eAAe,EAAC,+BAA4B"}
@@ -0,0 +1,14 @@
1
+ import { type Bounds2D } from '@math.gl/types';
2
+ import { type DGGSCell, type DGGSDecoder } from "./dggs-decoder.js";
3
+ /** Decoder for the quadkey DGGS */
4
+ export declare const QuadkeyDecoder: Omit<{
5
+ readonly name: "quadkey";
6
+ readonly hasNumericRepresentation: false;
7
+ readonly cellColumnNames: readonly ["quadkey", "quadkeyId", "quadkey_id"];
8
+ readonly cellToLngLat: (cell: DGGSCell) => [number, number];
9
+ readonly cellToBoundary: (cell: DGGSCell) => [number, number][];
10
+ readonly cellToBoundaryFlat: (cell: DGGSCell) => number[];
11
+ readonly cellToBounds: (cell: DGGSCell) => Bounds2D;
12
+ }, "cellToBoundary" | "cellToBoundaryFlat" | "cellToBounds"> & Pick<DGGSDecoder, "cellToBoundary" | "cellToBoundaryFlat" | "cellToBounds">;
13
+ export declare function quadkeyToWorldBounds(quadkey: string): [[number, number], [number, number]];
14
+ //# sourceMappingURL=quadkey-decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quadkey-decoder.d.ts","sourceRoot":"","sources":["../src/quadkey-decoder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,WAAW,EAEjB,0BAAuB;AAIxB,mCAAmC;AACnC,eAAO,MAAM,cAAc;;;;kCAIJ,QAAQ,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC;oCAEzB,QAAQ,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;wCAEzB,QAAQ,KAAG,MAAM,EAAE;kCAEzB,QAAQ,KAAG,QAAQ;0IACT,CAAC;AAuClC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgB1F"}
@@ -0,0 +1,86 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { withDGGSBoundaryOptions, getDGGSCellToken } from "./dggs-decoder.js";
5
+ const TILE_SIZE = 512;
6
+ /** Decoder for the quadkey DGGS */
7
+ export const QuadkeyDecoder = withDGGSBoundaryOptions({
8
+ name: 'quadkey',
9
+ hasNumericRepresentation: false,
10
+ cellColumnNames: ['quadkey', 'quadkeyId', 'quadkey_id'],
11
+ cellToLngLat: (cell) => getQuadkeyLngLat(getDGGSCellToken(cell, 'Quadkey')),
12
+ cellToBoundary: (cell) => getQuadkeyBoundary(getDGGSCellToken(cell, 'Quadkey')),
13
+ cellToBoundaryFlat: (cell) => getQuadkeyBoundaryFlat(getDGGSCellToken(cell, 'Quadkey')),
14
+ cellToBounds: (cell) => getQuadkeyBounds(getDGGSCellToken(cell, 'Quadkey'))
15
+ });
16
+ function getQuadkeyLngLat(quadkey) {
17
+ const [topLeft, bottomRight] = quadkeyToWorldBounds(quadkey);
18
+ const [w, n] = worldToLngLat(topLeft);
19
+ const [e, s] = worldToLngLat(bottomRight);
20
+ return [(e + w) / 2, (s + n) / 2];
21
+ }
22
+ function getQuadkeyBoundary(quadkey) {
23
+ const [topLeft, bottomRight] = quadkeyToWorldBounds(quadkey);
24
+ const [w, n] = worldToLngLat(topLeft);
25
+ const [e, s] = worldToLngLat(bottomRight);
26
+ return [
27
+ [e, n],
28
+ [e, s],
29
+ [w, s],
30
+ [w, n],
31
+ [e, n]
32
+ ];
33
+ }
34
+ function getQuadkeyBoundaryFlat(quadkey) {
35
+ const [topLeft, bottomRight] = quadkeyToWorldBounds(quadkey);
36
+ const [w, n] = worldToLngLat(topLeft);
37
+ const [e, s] = worldToLngLat(bottomRight);
38
+ return [e, n, e, s, w, s, w, n, e, n];
39
+ }
40
+ function getQuadkeyBounds(quadkey) {
41
+ const [topLeft, bottomRight] = quadkeyToWorldBounds(quadkey);
42
+ const [w, n] = worldToLngLat(topLeft);
43
+ const [e, s] = worldToLngLat(bottomRight);
44
+ return [
45
+ [w, s],
46
+ [e, n]
47
+ ];
48
+ }
49
+ export function quadkeyToWorldBounds(quadkey) {
50
+ let x = 0;
51
+ let y = 0;
52
+ let mask = 1 << quadkey.length;
53
+ const scale = mask / TILE_SIZE;
54
+ for (let i = 0; i < quadkey.length; i++) {
55
+ mask >>= 1;
56
+ const q = parseInt(quadkey[i], 10);
57
+ if (q % 2)
58
+ x |= mask;
59
+ if (q > 1)
60
+ y |= mask;
61
+ }
62
+ return [
63
+ [x / scale, TILE_SIZE - y / scale],
64
+ [(x + 0.99) / scale, TILE_SIZE - (y + 0.99) / scale]
65
+ ];
66
+ }
67
+ // CONSTANTS
68
+ const PI = Math.PI;
69
+ const PI_4 = PI / 4;
70
+ const RADIANS_TO_DEGREES = 180 / PI;
71
+ /**
72
+ * Unproject world point [x,y] on map onto {lat, lon} on sphere
73
+ *
74
+ * @param xy - array with [x,y] members
75
+ * representing point on projected map plane
76
+ * @return - array with [x,y] of point on sphere.
77
+ * Has toArray method if you need a GeoJSON Array.
78
+ * Per cartographic tradition, lat and lon are specified as degrees.
79
+ */
80
+ function worldToLngLat(xy) {
81
+ const [x, y] = xy;
82
+ const lambda2 = (x / TILE_SIZE) * (2 * PI) - PI;
83
+ const phi2 = 2 * (Math.atan(Math.exp((y / TILE_SIZE) * (2 * PI) - PI)) - PI_4);
84
+ return [lambda2 * RADIANS_TO_DEGREES, phi2 * RADIANS_TO_DEGREES];
85
+ }
86
+ //# sourceMappingURL=quadkey-decoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quadkey-decoder.js","sourceRoot":"","sources":["../src/quadkey-decoder.ts"],"names":[],"mappings":"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"}