@math.gl/geospatial 5.0.0-beta.1 → 5.0.0-beta.2

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 (90) hide show
  1. package/dist/crs/crs-identifier.d.ts +23 -0
  2. package/dist/crs/crs-identifier.d.ts.map +1 -0
  3. package/dist/crs/crs-identifier.js +74 -0
  4. package/dist/crs/crs-identifier.js.map +1 -0
  5. package/dist/crs/index.cjs +48 -0
  6. package/dist/crs/index.cjs.map +2 -2
  7. package/dist/crs/index.d.ts +1 -0
  8. package/dist/crs/index.d.ts.map +1 -1
  9. package/dist/crs/index.js +1 -0
  10. package/dist/crs/index.js.map +1 -1
  11. package/dist/discontinuous/cap-map.d.ts.map +1 -1
  12. package/dist/discontinuous/cap-map.js +197 -13
  13. package/dist/discontinuous/cap-map.js.map +1 -1
  14. package/dist/discontinuous/elastic/geometry.d.ts +1 -1
  15. package/dist/discontinuous/elastic/geometry.d.ts.map +1 -1
  16. package/dist/discontinuous/elastic/geometry.js +7 -7
  17. package/dist/discontinuous/elastic/geometry.js.map +1 -1
  18. package/dist/discontinuous/elastic/map.d.ts.map +1 -1
  19. package/dist/discontinuous/elastic/map.js +263 -23
  20. package/dist/discontinuous/elastic/map.js.map +1 -1
  21. package/dist/discontinuous/elastic/source-arc.d.ts +10 -0
  22. package/dist/discontinuous/elastic/source-arc.d.ts.map +1 -0
  23. package/dist/discontinuous/elastic/source-arc.js +111 -0
  24. package/dist/discontinuous/elastic/source-arc.js.map +1 -0
  25. package/dist/discontinuous/global-polygons.d.ts +1 -1
  26. package/dist/discontinuous/global-polygons.d.ts.map +1 -1
  27. package/dist/discontinuous/global-polygons.js +49 -1
  28. package/dist/discontinuous/global-polygons.js.map +1 -1
  29. package/dist/discontinuous/map-engine.d.ts +9 -0
  30. package/dist/discontinuous/map-engine.d.ts.map +1 -1
  31. package/dist/discontinuous/map-layout.d.ts +21 -0
  32. package/dist/discontinuous/map-layout.d.ts.map +1 -1
  33. package/dist/discontinuous/map-layout.js +116 -1
  34. package/dist/discontinuous/map-layout.js.map +1 -1
  35. package/dist/discontinuous/map-transition.d.ts.map +1 -1
  36. package/dist/discontinuous/map-transition.js +66 -3
  37. package/dist/discontinuous/map-transition.js.map +1 -1
  38. package/dist/discontinuous/mercator-map.d.ts +2 -2
  39. package/dist/discontinuous/mercator-map.d.ts.map +1 -1
  40. package/dist/discontinuous/mercator-map.js +123 -11
  41. package/dist/discontinuous/mercator-map.js.map +1 -1
  42. package/dist/discontinuous/polygon-constraints.d.ts +16 -0
  43. package/dist/discontinuous/polygon-constraints.d.ts.map +1 -0
  44. package/dist/discontinuous/polygon-constraints.js +157 -0
  45. package/dist/discontinuous/polygon-constraints.js.map +1 -0
  46. package/dist/discontinuous/prepare-features.d.ts +27 -0
  47. package/dist/discontinuous/prepare-features.d.ts.map +1 -1
  48. package/dist/discontinuous/prepare-features.js +106 -5
  49. package/dist/discontinuous/prepare-features.js.map +1 -1
  50. package/dist/discontinuous/rotated-map.d.ts +9 -0
  51. package/dist/discontinuous/rotated-map.d.ts.map +1 -1
  52. package/dist/discontinuous/source-arc.d.ts +4 -0
  53. package/dist/discontinuous/source-arc.d.ts.map +1 -0
  54. package/dist/discontinuous/source-arc.js +23 -0
  55. package/dist/discontinuous/source-arc.js.map +1 -0
  56. package/dist/discontinuous/world-kernels.d.ts +1 -1
  57. package/dist/discontinuous.cjs +1047 -75
  58. package/dist/discontinuous.cjs.map +3 -3
  59. package/dist/index.cjs +48 -0
  60. package/dist/index.cjs.map +2 -2
  61. package/dist/index.d.ts +1 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +1 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/turf.cjs +69 -5
  66. package/dist/turf.cjs.map +2 -2
  67. package/dist/turf.d.ts +9 -0
  68. package/dist/turf.d.ts.map +1 -1
  69. package/dist/turf.js +67 -0
  70. package/dist/turf.js.map +1 -1
  71. package/dist/workers/index.cjs +1075 -79
  72. package/dist/workers/index.cjs.map +3 -3
  73. package/dist/workers/operations.cjs +1049 -77
  74. package/dist/workers/operations.cjs.map +3 -3
  75. package/package.json +5 -5
  76. package/src/crs/crs-identifier.ts +86 -0
  77. package/src/crs/index.ts +1 -0
  78. package/src/discontinuous/cap-map.ts +248 -19
  79. package/src/discontinuous/elastic/geometry.ts +18 -7
  80. package/src/discontinuous/elastic/map.ts +334 -30
  81. package/src/discontinuous/elastic/source-arc.ts +129 -0
  82. package/src/discontinuous/global-polygons.ts +56 -2
  83. package/src/discontinuous/map-layout.ts +165 -2
  84. package/src/discontinuous/map-transition.ts +67 -3
  85. package/src/discontinuous/mercator-map.ts +151 -12
  86. package/src/discontinuous/polygon-constraints.ts +184 -0
  87. package/src/discontinuous/prepare-features.ts +154 -6
  88. package/src/discontinuous/source-arc.ts +31 -0
  89. package/src/index.ts +1 -0
  90. package/src/turf.ts +86 -0
@@ -0,0 +1,23 @@
1
+ import type { CRSIdentifier } from "./crs.js";
2
+ /**
3
+ * Normalizes recognized spellings of an authority CRS identifier to `AUTHORITY:CODE`.
4
+ *
5
+ * Recognized forms are `AUTHORITY:CODE`, the WMS 1.3 codes `CRS:84`, `CRS:83` and `CRS:27`,
6
+ * OGC URNs (`urn:ogc:def:crs:EPSG::32619`) and OGC URIs
7
+ * (`http://www.opengis.net/def/crs/EPSG/0/32619`). Known authority prefixes (EPSG, OGC, ESRI and IAU) and explicitly known OGC CRS codes
8
+ * accept case-insensitive input aliases. Other authority and code spellings are preserved.
9
+ *
10
+ * A version is removed only when it is empty or `0`, or when it is `1.3` on an OGC `CRS84`,
11
+ * `CRS83` or `CRS27` code, which the OGC register publishes only at that version. Any other
12
+ * versioned identifier is returned unchanged, so it does not compare equal to an unversioned one.
13
+ * Unrecognized strings are also returned unchanged.
14
+ *
15
+ * The result identifies a registry entry only. Different codes are never equated: `EPSG:4326` and
16
+ * `OGC:CRS84` stay distinct, as do Web Mercator aliases. No datum equivalence, axis-order
17
+ * convention or registry lookup is applied.
18
+ *
19
+ * @param identifier - CRS identifier as written by a source or service.
20
+ * @returns The canonical `AUTHORITY:CODE` identifier, or `identifier` unchanged.
21
+ */
22
+ export declare function normalizeCRSIdentifier(identifier: CRSIdentifier): CRSIdentifier;
23
+ //# sourceMappingURL=crs-identifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crs-identifier.d.ts","sourceRoot":"","sources":["../../src/crs/crs-identifier.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAC,iBAAc;AAsBzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,aAAa,GAAG,aAAa,CAoB/E"}
@@ -0,0 +1,74 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
+ /** WMS 1.3 `CRS:` codes and the OGC register entries they abbreviate. */
5
+ const WMS_CRS_CODES = new Map([
6
+ ['84', 'CRS84'],
7
+ ['83', 'CRS83'],
8
+ ['27', 'CRS27']
9
+ ]);
10
+ /** Explicit input conveniences, not a case-insensitivity rule for all registry names. */
11
+ const KNOWN_AUTHORITIES = new Set(['EPSG', 'OGC', 'ESRI', 'IAU']);
12
+ const OGC_CRS_CODES = new Map([
13
+ ['CRS84', 'CRS84'],
14
+ ['CRS83', 'CRS83'],
15
+ ['CRS27', 'CRS27'],
16
+ ['CRS84H', 'CRS84h']
17
+ ]);
18
+ const AUTHORITY_CODE = /^([A-Z][A-Z0-9_-]*):([A-Z0-9_.-]+)$/i;
19
+ const OGC_URN = /^urn:ogc:def:crs:([A-Z][A-Z0-9_-]*):([^:]*):([A-Z0-9_.-]+)$/i;
20
+ const OGC_URI = /^https?:\/\/www\.opengis\.net\/def\/crs\/([A-Z][A-Z0-9_-]*)\/([^/]+)\/([A-Z0-9_.-]+)\/?$/i;
21
+ /**
22
+ * Normalizes recognized spellings of an authority CRS identifier to `AUTHORITY:CODE`.
23
+ *
24
+ * Recognized forms are `AUTHORITY:CODE`, the WMS 1.3 codes `CRS:84`, `CRS:83` and `CRS:27`,
25
+ * OGC URNs (`urn:ogc:def:crs:EPSG::32619`) and OGC URIs
26
+ * (`http://www.opengis.net/def/crs/EPSG/0/32619`). Known authority prefixes (EPSG, OGC, ESRI and IAU) and explicitly known OGC CRS codes
27
+ * accept case-insensitive input aliases. Other authority and code spellings are preserved.
28
+ *
29
+ * A version is removed only when it is empty or `0`, or when it is `1.3` on an OGC `CRS84`,
30
+ * `CRS83` or `CRS27` code, which the OGC register publishes only at that version. Any other
31
+ * versioned identifier is returned unchanged, so it does not compare equal to an unversioned one.
32
+ * Unrecognized strings are also returned unchanged.
33
+ *
34
+ * The result identifies a registry entry only. Different codes are never equated: `EPSG:4326` and
35
+ * `OGC:CRS84` stay distinct, as do Web Mercator aliases. No datum equivalence, axis-order
36
+ * convention or registry lookup is applied.
37
+ *
38
+ * @param identifier - CRS identifier as written by a source or service.
39
+ * @returns The canonical `AUTHORITY:CODE` identifier, or `identifier` unchanged.
40
+ */
41
+ export function normalizeCRSIdentifier(identifier) {
42
+ const text = identifier.trim();
43
+ const authorityCode = AUTHORITY_CODE.exec(text);
44
+ if (authorityCode) {
45
+ const [, authority, code] = authorityCode;
46
+ if (authority.toUpperCase() === 'CRS') {
47
+ const ogcCode = WMS_CRS_CODES.get(code);
48
+ return ogcCode ? `OGC:${ogcCode}` : identifier;
49
+ }
50
+ return formatIdentifier(authority, code);
51
+ }
52
+ const versioned = OGC_URN.exec(text) || OGC_URI.exec(text);
53
+ if (versioned) {
54
+ const [, authority, version, code] = versioned;
55
+ return isUnversioned(authority, version, code) ? formatIdentifier(authority, code) : identifier;
56
+ }
57
+ return identifier;
58
+ }
59
+ /** Whether a URN or URI version names no particular revision of the registry entry. */
60
+ function isUnversioned(authority, version, code) {
61
+ if (version === '' || version === '0')
62
+ return true;
63
+ const ogcCode = code.toUpperCase();
64
+ return (authority.toUpperCase() === 'OGC' &&
65
+ version === '1.3' &&
66
+ Array.from(WMS_CRS_CODES.values()).includes(ogcCode));
67
+ }
68
+ function formatIdentifier(authority, code) {
69
+ const upperAuthority = authority.toUpperCase();
70
+ const canonicalAuthority = KNOWN_AUTHORITIES.has(upperAuthority) ? upperAuthority : authority;
71
+ const canonicalCode = canonicalAuthority === 'OGC' ? OGC_CRS_CODES.get(code.toUpperCase()) || code : code;
72
+ return `${canonicalAuthority}:${canonicalCode}`;
73
+ }
74
+ //# sourceMappingURL=crs-identifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crs-identifier.js","sourceRoot":"","sources":["../../src/crs/crs-identifier.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ __export(index_exports, {
37
37
  getCRSSignature: () => getCRSSignature,
38
38
  inferCRSRepresentation: () => inferCRSRepresentation,
39
39
  linearUnits: () => linearUnits,
40
+ normalizeCRSIdentifier: () => normalizeCRSIdentifier,
40
41
  parsePROJString: () => parsePROJString,
41
42
  parseWKTCRS: () => parseWKTCRS,
42
43
  validateWKTCRS: () => validateWKTCRS
@@ -103,6 +104,53 @@ function cloneAndFreezeJsonValue(value) {
103
104
  return value;
104
105
  }
105
106
 
107
+ // dist/crs/crs-identifier.js
108
+ var WMS_CRS_CODES = /* @__PURE__ */ new Map([
109
+ ["84", "CRS84"],
110
+ ["83", "CRS83"],
111
+ ["27", "CRS27"]
112
+ ]);
113
+ var KNOWN_AUTHORITIES = /* @__PURE__ */ new Set(["EPSG", "OGC", "ESRI", "IAU"]);
114
+ var OGC_CRS_CODES = /* @__PURE__ */ new Map([
115
+ ["CRS84", "CRS84"],
116
+ ["CRS83", "CRS83"],
117
+ ["CRS27", "CRS27"],
118
+ ["CRS84H", "CRS84h"]
119
+ ]);
120
+ var AUTHORITY_CODE = /^([A-Z][A-Z0-9_-]*):([A-Z0-9_.-]+)$/i;
121
+ var OGC_URN = /^urn:ogc:def:crs:([A-Z][A-Z0-9_-]*):([^:]*):([A-Z0-9_.-]+)$/i;
122
+ var OGC_URI = /^https?:\/\/www\.opengis\.net\/def\/crs\/([A-Z][A-Z0-9_-]*)\/([^/]+)\/([A-Z0-9_.-]+)\/?$/i;
123
+ function normalizeCRSIdentifier(identifier) {
124
+ const text = identifier.trim();
125
+ const authorityCode = AUTHORITY_CODE.exec(text);
126
+ if (authorityCode) {
127
+ const [, authority, code] = authorityCode;
128
+ if (authority.toUpperCase() === "CRS") {
129
+ const ogcCode = WMS_CRS_CODES.get(code);
130
+ return ogcCode ? `OGC:${ogcCode}` : identifier;
131
+ }
132
+ return formatIdentifier(authority, code);
133
+ }
134
+ const versioned = OGC_URN.exec(text) || OGC_URI.exec(text);
135
+ if (versioned) {
136
+ const [, authority, version, code] = versioned;
137
+ return isUnversioned(authority, version, code) ? formatIdentifier(authority, code) : identifier;
138
+ }
139
+ return identifier;
140
+ }
141
+ function isUnversioned(authority, version, code) {
142
+ if (version === "" || version === "0")
143
+ return true;
144
+ const ogcCode = code.toUpperCase();
145
+ return authority.toUpperCase() === "OGC" && version === "1.3" && Array.from(WMS_CRS_CODES.values()).includes(ogcCode);
146
+ }
147
+ function formatIdentifier(authority, code) {
148
+ const upperAuthority = authority.toUpperCase();
149
+ const canonicalAuthority = KNOWN_AUTHORITIES.has(upperAuthority) ? upperAuthority : authority;
150
+ const canonicalCode = canonicalAuthority === "OGC" ? OGC_CRS_CODES.get(code.toUpperCase()) || code : code;
151
+ return `${canonicalAuthority}:${canonicalCode}`;
152
+ }
153
+
106
154
  // dist/crs/wkt-crs.js
107
155
  var WKTCRSSyntaxError = class extends SyntaxError {
108
156
  /** Create a WKT syntax error at a source location. */
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/crs/index.ts", "../../src/crs/projjson-schema-constants.ts", "../../src/crs/spatial-reference.ts", "../../src/crs/wkt-crs.ts", "../../src/crs/proj-string.ts", "../../src/crs/units-table.ts", "../../src/crs/crs-metadata.ts", "../../src/crs/resolver.ts", "../../src/crs/projection-domain.ts", "../../src/crs/execution-identity.ts", "../../src/crs/crs-descriptor.ts"],
4
- "mappings": "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EACA;EACA;EACA;CACD;AAED,IAAM,0BAA0B,oBAAI,IAAI;EACtC,GAAG;EACH;EACA;EACA;EACA;EACA;EACA;CACD;AAID,IAAM,gBAAgB,oBAAI,IAAI;EAC5B,GAAG;EACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AAED,IAAM,8BAA8B,oBAAI,IAAI;EAC1C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AAED,IAAM,qBAAqB,IAAI,IAC7B,CAAC,GAAG,aAAa,EAAE,OAAO,aAAW,CAAC,4BAA4B,IAAI,OAAO,CAAC,CAAC;AAGjF,IAAM,wBAAoE;EACxE,MAAM;EACN,MAAM;EACN,MAAM;EACN,aAAa;EACb,aAAa;;AAGf,IAAM,mBAA+D;EACnE,MAAM;EACN,MAAM;EACN,MAAM;EACN,aAAa;EACb,aAAa;;AAIT,SAAU,YAAY,MAAc,SAA4B;AACpE,QAAM,SAAS,IAAI,UAAU,IAAI;AACjC,QAAM,MAAiB,EAAC,MAAM,WAAW,MAAM,OAAO,MAAK,EAAE;AAE7D,MAAI,mCAAS,QAAQ;AACnB,UAAM,SAAS,eAAe,KAAK;MACjC,SAAS,QAAQ;MACjB,iBAAiB;KAClB;AACD,QAAI,OAAO,SAAS,GAAG;AACrB,YAAM,IAAI,sBAAsB,MAAM;IACxC;EACF;AAEA,SAAO;AACT;AAGM,SAAU,aAAa,KAAgB,SAA6B;AAnU1E;AAoUE,MAAI,CAAC,OAAO,IAAI,SAAS,eAA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",
3
+ "sources": ["../../src/crs/index.ts", "../../src/crs/projjson-schema-constants.ts", "../../src/crs/spatial-reference.ts", "../../src/crs/crs-identifier.ts", "../../src/crs/wkt-crs.ts", "../../src/crs/proj-string.ts", "../../src/crs/units-table.ts", "../../src/crs/crs-metadata.ts", "../../src/crs/resolver.ts", "../../src/crs/projection-domain.ts", "../../src/crs/execution-identity.ts", "../../src/crs/crs-descriptor.ts"],
4
+ "mappings": "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B,oBAAI,IAAI;EACtC,GAAG;EACH;EACA;EACA;EACA;EACA;EACA;CACD;AAID,IAAM,gBAAgB,oBAAI,IAAI;EAC5B,GAAG;EACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AAED,IAAM,8BAA8B,oBAAI,IAAI;EAC1C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AAED,IAAM,qBAAqB,IAAI,IAC7B,CAAC,GAAG,aAAa,EAAE,OAAO,aAAW,CAAC,4BAA4B,IAAI,OAAO,CAAC,CAAC;AAGjF,IAAM,wBAAoE;EACxE,MAAM;EACN,MAAM;EACN,MAAM;EACN,aAAa;EACb,aAAa;;AAGf,IAAM,mBAA+D;EACnE,MAAM;EACN,MAAM;EACN,MAAM;EACN,aAAa;EACb,aAAa;;AAIT,SAAU,YAAY,MAAc,SAA4B;AACpE,QAAM,SAAS,IAAI,UAAU,IAAI;AACjC,QAAM,MAAiB,EAAC,MAAM,WAAW,MAAM,OAAO,MAAK,EAAE;AAE7D,MAAI,mCAAS,QAAQ;AACnB,UAAM,SAAS,eAAe,KAAK;MACjC,SAAS,QAAQ;MACjB,iBAAiB;KAClB;AACD,QAAI,OAAO,SAAS,GAAG;AACrB,YAAM,IAAI,sBAAsB,MAAM;IACxC;EACF;AAEA,SAAO;AACT;AAGM,SAAU,aAAa,KAAgB,SAA6B;AAnU1E;AAoUE,MAAI,CAAC,OAAO,IAAI,SAAS,eAAa,SAAI,SAAJ,mBAAU,UAAS,QAAQ;AAC/D,U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",
5
5
  "names": ["getSourceLocation"]
6
6
  }
@@ -2,6 +2,7 @@ export { PROJJSON_SCHEMA_URL, PROJJSON_SCHEMA_VERSION } from "./projjson-schema-
2
2
  export type { CRSDefinition, CRSIdentifier, CRSStringDefinition, PROJJSONCRS, PROJJSONCRSByType, PROJJSONCRSType, PROJStringDefinition, WKTCRSDefinition } from "./crs.js";
3
3
  export type { CreateSpatialReferenceOptions, CRSInput, CRSReference, KnownCRSReference, ReadonlyCRSDefinition, ReadonlyPROJJSONCRS, SpatialReference, SpatialReferenceAlternative, SpatialReferenceCoordinateFrame, SpatialReferenceProvenance, SpatialReferenceRepresentation, SpatialReferenceState, UnresolvedCRSReference } from "./spatial-reference.js";
4
4
  export { createSpatialReference, inferCRSRepresentation } from "./spatial-reference.js";
5
+ export { normalizeCRSIdentifier } from "./crs-identifier.js";
5
6
  export type { EncodeWKTCRSOptions, ParseWKTCRSOptions, ValidateWKTCRSOptions, WKTCRSAst, WKTCRSDelimiter, WKTCRSEnumeration, WKTCRSNode, WKTCRSNumber, WKTCRSProfile, WKTCRSString, WKTCRSValidationIssue, WKTCRSValidationIssueCode, WKTCRSValue } from "./wkt-crs.js";
6
7
  export { encodeWKTCRS, parseWKTCRS, validateWKTCRS, WKTCRSSyntaxError, WKTCRSValidationError } from "./wkt-crs.js";
7
8
  export type { EncodePROJStringOptions, PROJParameter, PROJStringAst } from "./proj-string.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crs/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,uCAAoC;AACrC,YAAY,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACjB,iBAAc;AACf,YAAY,EACV,6BAA6B,EAC7B,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,+BAA+B,EAC/B,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,sBAAsB,EACvB,+BAA4B;AAC7B,OAAO,EAAC,sBAAsB,EAAE,sBAAsB,EAAC,+BAA4B;AACnF,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACZ,qBAAkB;AACnB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACtB,qBAAkB;AACnB,YAAY,EAAC,uBAAuB,EAAE,aAAa,EAAE,aAAa,EAAC,yBAAsB;AACzF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,yBAAsB;AAEvB,YAAY,EAAC,WAAW,EAAE,OAAO,EAAC,0BAAuB;AACzD,OAAO,EAAC,eAAe,EAAC,0BAAuB;AAC/C,OAAO,EAAC,WAAW,EAAC,yBAAsB;AAG1C,OAAO,EAAC,2BAA2B,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,sBAAmB;AAC9F,YAAY,EACV,qBAAqB,EACrB,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,WAAW,EACZ,sBAAmB;AAEpB,OAAO,EAAC,mBAAmB,EAAC,4BAAyB;AACrD,YAAY,EAAC,oBAAoB,EAAC,4BAAyB;AAC3D,YAAY,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,yBAAyB,EAC1B,kCAA+B;AAEhC,OAAO,EAAC,yBAAyB,EAAC,+BAA4B;AAC9D,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACpB,+BAA4B;AAE7B,OAAO,EAAC,0BAA0B,EAAE,kBAAkB,EAAC,gCAA6B;AACpF,YAAY,EAAC,oBAAoB,EAAC,gCAA6B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crs/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,uCAAoC;AACrC,YAAY,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACjB,iBAAc;AACf,YAAY,EACV,6BAA6B,EAC7B,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,+BAA+B,EAC/B,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,sBAAsB,EACvB,+BAA4B;AAC7B,OAAO,EAAC,sBAAsB,EAAE,sBAAsB,EAAC,+BAA4B;AACnF,OAAO,EAAC,sBAAsB,EAAC,4BAAyB;AACxD,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACZ,qBAAkB;AACnB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACtB,qBAAkB;AACnB,YAAY,EAAC,uBAAuB,EAAE,aAAa,EAAE,aAAa,EAAC,yBAAsB;AACzF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,yBAAsB;AAEvB,YAAY,EAAC,WAAW,EAAE,OAAO,EAAC,0BAAuB;AACzD,OAAO,EAAC,eAAe,EAAC,0BAAuB;AAC/C,OAAO,EAAC,WAAW,EAAC,yBAAsB;AAG1C,OAAO,EAAC,2BAA2B,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,sBAAmB;AAC9F,YAAY,EACV,qBAAqB,EACrB,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,WAAW,EACZ,sBAAmB;AAEpB,OAAO,EAAC,mBAAmB,EAAC,4BAAyB;AACrD,YAAY,EAAC,oBAAoB,EAAC,4BAAyB;AAC3D,YAAY,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,yBAAyB,EAC1B,kCAA+B;AAEhC,OAAO,EAAC,yBAAyB,EAAC,+BAA4B;AAC9D,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACpB,+BAA4B;AAE7B,OAAO,EAAC,0BAA0B,EAAE,kBAAkB,EAAC,gCAA6B;AACpF,YAAY,EAAC,oBAAoB,EAAC,gCAA6B"}
package/dist/crs/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
  // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
4
  export { PROJJSON_SCHEMA_URL, PROJJSON_SCHEMA_VERSION } from "./projjson-schema-constants.js";
5
5
  export { createSpatialReference, inferCRSRepresentation } from "./spatial-reference.js";
6
+ export { normalizeCRSIdentifier } from "./crs-identifier.js";
6
7
  export { encodeWKTCRS, parseWKTCRS, validateWKTCRS, WKTCRSSyntaxError, WKTCRSValidationError } from "./wkt-crs.js";
7
8
  export { encodePROJString, parsePROJString, PROJStringSyntaxError } from "./proj-string.js";
8
9
  export { getCRSSignature } from "./crs-metadata.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crs/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAE5D,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,uCAAoC;AA0BrC,OAAO,EAAC,sBAAsB,EAAE,sBAAsB,EAAC,+BAA4B;AAgBnF,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACtB,qBAAkB;AAEnB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,yBAAsB;AAGvB,OAAO,EAAC,eAAe,EAAC,0BAAuB;AAC/C,OAAO,EAAC,WAAW,EAAC,yBAAsB;AAE1C,qFAAqF;AACrF,OAAO,EAAC,2BAA2B,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,sBAAmB;AAS9F,OAAO,EAAC,mBAAmB,EAAC,4BAAyB;AAarD,OAAO,EAAC,yBAAyB,EAAC,+BAA4B;AAS9D,OAAO,EAAC,0BAA0B,EAAE,kBAAkB,EAAC,gCAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crs/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAE5D,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,uCAAoC;AA0BrC,OAAO,EAAC,sBAAsB,EAAE,sBAAsB,EAAC,+BAA4B;AACnF,OAAO,EAAC,sBAAsB,EAAC,4BAAyB;AAgBxD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACtB,qBAAkB;AAEnB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,yBAAsB;AAGvB,OAAO,EAAC,eAAe,EAAC,0BAAuB;AAC/C,OAAO,EAAC,WAAW,EAAC,yBAAsB;AAE1C,qFAAqF;AACrF,OAAO,EAAC,2BAA2B,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,sBAAmB;AAS9F,OAAO,EAAC,mBAAmB,EAAC,4BAAyB;AAarD,OAAO,EAAC,yBAAyB,EAAC,+BAA4B;AAS9D,OAAO,EAAC,0BAA0B,EAAE,kBAAkB,EAAC,gCAA6B"}
@@ -1 +1 @@
1
- {"version":3,"file":"cap-map.d.ts","sourceRoot":"","sources":["../../src/discontinuous/cap-map.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAWL,KAAK,MAAM,EACX,KAAK,QAAQ,EACd,MAAM,WAAW,CAAC;AAEnB,sFAAsF;AACtF,qBAAa,MAAO,SAAQ,gBAAgB;IAGxC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAN1B,OAAO,EAAE,SAAS,EAAE,EACH,KAAK,EAAE,CAAC,CAAC,EAAE,kBAAkB,KAAK,QAAQ,EAC1C,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,QAAQ,EACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,WAAW,UAAQ,EACnB,SAAS,UAAQ;cAIjB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAS7E,OAAO,CAAC,OAAO;IAKN,WAAW,CAAC,CAAC,EAAE,kBAAkB;IAGjC,qBAAqB,CAAC,IAAI,EAAE,SAAS,kBAAkB,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAwBrF,YAAY,CAAC,CAAC,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,MAAM;IAG/C,cAAc,CAAC,CAAC,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,MAAM;IAG1D,OAAO,CAAC,IAAI;IA0JH,WAAW,CAClB,IAAI,EAAE,SAAS,kBAAkB,EAAE,EACnC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,EAAE;IAWH,cAAc,CACrB,KAAK,EAAE,SAAS,CAAC,SAAS,kBAAkB,EAAE,CAAC,EAAE,EACjD,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,EAAE;IAoHN,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,QAAQ,EAAE,EAAE;CA6BnF"}
1
+ {"version":3,"file":"cap-map.d.ts","sourceRoot":"","sources":["../../src/discontinuous/cap-map.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAWL,KAAK,MAAM,EACX,KAAK,QAAQ,EACd,MAAM,WAAW,CAAC;AAEnB,sFAAsF;AACtF,qBAAa,MAAO,SAAQ,gBAAgB;IAGxC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAN1B,OAAO,EAAE,SAAS,EAAE,EACH,KAAK,EAAE,CAAC,CAAC,EAAE,kBAAkB,KAAK,QAAQ,EAC1C,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,QAAQ,EACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,WAAW,UAAQ,EACnB,SAAS,UAAQ;cAIjB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAS7E,OAAO,CAAC,OAAO;IAKN,WAAW,CAAC,CAAC,EAAE,kBAAkB;IAGjC,qBAAqB,CAAC,IAAI,EAAE,SAAS,kBAAkB,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAwBrF,YAAY,CAAC,CAAC,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,MAAM;IAG/C,cAAc,CAAC,CAAC,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,MAAM;IAG1D,OAAO,CAAC,IAAI;IAmNH,WAAW,CAClB,IAAI,EAAE,SAAS,kBAAkB,EAAE,EACnC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,EAAE;IAkEH,cAAc,CACrB,KAAK,EAAE,SAAS,CAAC,SAAS,kBAAkB,EAAE,CAAC,EAAE,EACjD,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,EAAE;IAuON,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,QAAQ,EAAE,EAAE;CA6BnF"}
@@ -2,6 +2,8 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
4
4
  import clipCircle from './spherical-clip/clip-circle.js';
5
+ import { tracePolygonConstraints, composePolygonEdge } from "./polygon-constraints.js";
6
+ import { sourceArc } from "./source-arc.js";
5
7
  import { circleStream } from './spherical-clip/circle.js';
6
8
  import { DiscontinuousMap } from './map-layout.js';
7
9
  import { geographic, coordinates, basis, dot, cross, angle, add, unit, ringOrientation, RAD } from './math.js';
@@ -62,10 +64,11 @@ export class CapMap extends DiscontinuousMap {
62
64
  unprojectPoint(p, id) {
63
65
  return super.unprojectPoint(p, id).filter(q => this.visible(q.position));
64
66
  }
65
- clip(rings, polygon, options, regionId) {
67
+ clip(rings, polygon, options, regionId, segmentIndices) {
66
68
  const output = [];
67
69
  const originals = new Map();
68
- let ring = [];
70
+ let ring = [], indices = [], activeSegment = 0;
71
+ let previousInput, currentInput;
69
72
  const precision = Math.min(options?.maxAngularStep ?? 2, Math.sqrt((options?.tolerance ?? 1e-4) / this.radius) / RAD / 4) * RAD;
70
73
  if (!Number.isFinite(precision) || (2 * Math.PI) / precision > 1000000)
71
74
  throw new Error('Projection sampling limit exceeded; relax tolerance');
@@ -129,14 +132,54 @@ export class CapMap extends DiscontinuousMap {
129
132
  point: (x, y) => {
130
133
  if (++emitted > 1000000)
131
134
  throw new Error('Projection sampling limit exceeded; relax tolerance');
132
- ring.push(originals.get(`${x},${y}`) ?? this.source([x / RAD, y / RAD]));
135
+ let source = originals.get(`${x},${y}`);
136
+ if (!source && !polygon && this.nonlinear && previousInput && currentInput) {
137
+ // The local nonlinear transform bends source arcs. A circle/chord
138
+ // intersection must be refined on its owning original source arc.
139
+ const a = geographic(previousInput), b = geographic(currentInput), length = angle(a, b);
140
+ const at = (t) => length < 1e-14
141
+ ? [...currentInput]
142
+ : coordinates(unit(a.map((v, k) => (Math.sin((1 - t) * length) * v + Math.sin(t * length) * b[k]) /
143
+ Math.sin(length))));
144
+ const value = (t) => geographic(local(at(t)))[0] - Math.cos(this.cap);
145
+ const approximate = this.source([x / RAD, y / RAD]);
146
+ const reference = length ? Math.min(1, angle(a, geographic(approximate)) / length) : 0;
147
+ const roots = [];
148
+ for (let j = 0; j < 32; j++) {
149
+ let lo = j / 32, hi = (j + 1) / 32, f = value(lo), g = value(hi);
150
+ if (Math.abs(f) < 1e-14)
151
+ roots.push(lo);
152
+ if (f * g >= 0)
153
+ continue;
154
+ for (let k = 0; k < 52; k++) {
155
+ const mid = (lo + hi) / 2;
156
+ if (value(mid) >= 0 === f >= 0)
157
+ lo = mid;
158
+ else
159
+ hi = mid;
160
+ }
161
+ roots.push((lo + hi) / 2);
162
+ }
163
+ if (Math.abs(value(1)) < 1e-14)
164
+ roots.push(1);
165
+ if (!roots.length)
166
+ throw new Error('Unresolved nonlinear cap source intersection');
167
+ roots.sort((a, b) => Math.abs(a - reference) - Math.abs(b - reference));
168
+ source = at(roots[0]);
169
+ }
170
+ ring.push(source ?? this.source([x / RAD, y / RAD]));
171
+ if (segmentIndices)
172
+ indices.push(activeSegment);
133
173
  },
134
174
  lineStart: () => {
135
175
  ring = [];
176
+ indices = [];
136
177
  },
137
178
  lineEnd: () => {
138
- if (ring.length > 1)
179
+ if (ring.length > 1) {
139
180
  output.push(ring);
181
+ segmentIndices?.push(indices);
182
+ }
140
183
  },
141
184
  polygonStart: () => { },
142
185
  polygonEnd: () => { }
@@ -153,7 +196,9 @@ export class CapMap extends DiscontinuousMap {
153
196
  }
154
197
  const x = q[0] * RAD, y = q[1] * RAD;
155
198
  originals.set(`${x},${y}`, [...p]);
199
+ currentInput = p;
156
200
  stream.point(x, y);
201
+ previousInput = p;
157
202
  };
158
203
  const subdivide = (a, b, depth = 0) => {
159
204
  if (this.nonlinear && depth < 20) {
@@ -172,11 +217,14 @@ export class CapMap extends DiscontinuousMap {
172
217
  emit(b);
173
218
  };
174
219
  for (const points of rings) {
220
+ previousInput = undefined;
175
221
  stream.lineStart();
176
222
  if (points.length)
177
223
  emit(points[0]);
178
- for (let i = 1; i < points.length; i++)
224
+ for (let i = 1; i < points.length; i++) {
225
+ activeSegment = i - 1;
179
226
  subdivide(points[i - 1], points[i]);
227
+ }
180
228
  if (polygon && points.length)
181
229
  subdivide(points[points.length - 1], points[0]);
182
230
  stream.lineEnd();
@@ -188,10 +236,55 @@ export class CapMap extends DiscontinuousMap {
188
236
  projectLine(line, options) {
189
237
  if (this.cap === Math.PI / 2 && !this.nonlinear)
190
238
  return super.projectLine(line, options);
191
- // Super validates antipodal edges and sampling options even for invisible input.
192
- return super
193
- .projectLine(line, options)
194
- .flatMap(part => this.clip([part.sourceCoordinates], false, options, part.regionId).flatMap(line => super.projectLine(line, options).filter(q => q.regionId === part.regionId)));
239
+ // Attribute streaming intersections while the owning sampled edge is active.
240
+ // Rigid spherical rotations preserve the original great-circle semantics.
241
+ return super.projectLine(line, options).flatMap(part => {
242
+ const indices = part.provenance ? [] : undefined;
243
+ const clipped = this.clip([part.sourceCoordinates], false, options, part.regionId, indices);
244
+ return clipped.flatMap((points, piece) => super
245
+ .projectLine(points, options)
246
+ .filter(q => q.regionId === part.regionId)
247
+ .map(q => {
248
+ const parent = part.provenance, child = q.provenance;
249
+ if (!parent || !child)
250
+ return q;
251
+ const provenance = {
252
+ segments: [],
253
+ parameters: [],
254
+ vertices: [],
255
+ angularDistances: []
256
+ };
257
+ for (let j = 0; j < q.sourceCoordinates.length; j++) {
258
+ const k = child.segments[j];
259
+ // The incoming endpoint owns the clipped edge, including a newly
260
+ // generated entry point followed by its original end vertex.
261
+ const edge = indices[piece][k + 1];
262
+ const a = geographic(part.sourceCoordinates[edge]), b = geographic(part.sourceCoordinates[edge + 1]), p = geographic(q.sourceCoordinates[j]);
263
+ const length = angle(a, b), t = length ? Math.min(1, angle(a, p) / length) : 0;
264
+ const endpoint = t < 1e-12 ? edge : t > 1 - 1e-12 ? edge + 1 : -1;
265
+ const segment = parent.segments[edge + 1];
266
+ const from = parent.segments[edge] === segment ? parent.parameters[edge] : 0;
267
+ provenance.segments.push(endpoint >= 0 ? parent.segments[endpoint] : segment);
268
+ provenance.parameters.push(endpoint >= 0
269
+ ? parent.parameters[endpoint]
270
+ : from + t * (parent.parameters[edge + 1] - from));
271
+ provenance.vertices.push(endpoint >= 0 ? parent.vertices[endpoint] : 0xffffffff);
272
+ if (options?.pathDistances)
273
+ provenance.angularDistances.push(parent.angularDistances[edge] +
274
+ t * (parent.angularDistances[edge + 1] - parent.angularDistances[edge]));
275
+ }
276
+ if (options?.pathBoundaries) {
277
+ const same = (a, b) => angle(geographic(a), geographic(b)) < 1e-12;
278
+ provenance.startReason = same(q.sourceCoordinates[0], part.sourceCoordinates[0])
279
+ ? parent.startReason
280
+ : 'coverage-boundary';
281
+ provenance.endReason = same(q.sourceCoordinates[q.sourceCoordinates.length - 1], part.sourceCoordinates[part.sourceCoordinates.length - 1])
282
+ ? parent.endReason
283
+ : 'coverage-boundary';
284
+ }
285
+ return { ...q, provenance };
286
+ }));
287
+ });
195
288
  }
196
289
  projectPolygon(rings, options) {
197
290
  if (this.cap === Math.PI / 2 && !this.nonlinear)
@@ -272,15 +365,106 @@ export class CapMap extends DiscontinuousMap {
272
365
  };
273
366
  for (const ring of outer) {
274
367
  const plane = ring.map(planar), sources = [ring, ...holes.filter(h => contains(plane, planar(h[0])))];
368
+ const parentPlane = part.sourceCoordinates.map(r => r.map(planar));
369
+ const fromPlane = (p) => coordinates(unit(center.map((v, k) => v + x[k] * p[0] + y[k] * p[1])));
370
+ const traced = tracePolygonConstraints(parentPlane, sources.map(r => r.map(planar)), this.nonlinear ? 2e-6 : 1e-10, part.edgeProvenance, p => this.visible(fromPlane(p)));
371
+ const resolved = traced.rings.map(r => r.map(fromPlane));
372
+ traced.owners.forEach((owners, r) => owners.forEach((owner, i) => {
373
+ if (!owner)
374
+ return;
375
+ const [pr, pe] = owner, a = part.sourceCoordinates[pr][pe], b = part.sourceCoordinates[pr][pe + 1], at = sourceArc(a, b);
376
+ for (const j of [i, i + 1]) {
377
+ const point = resolved[r][j], distance = angle(geographic(a), geographic(b)), fraction = distance ? angle(geographic(a), geographic(point)) / distance : 0;
378
+ if (fraction < 1e-10)
379
+ resolved[r][j] = [...a];
380
+ else if (fraction > 1 - 1e-10)
381
+ resolved[r][j] = [...b];
382
+ else if (Math.hypot(...cross(geographic(a), geographic(b))) > 1e-14 &&
383
+ Math.abs(dot(unit(cross(geographic(a), geographic(b))), geographic(point))) < 1e-12) {
384
+ resolved[r][j] = at(Math.min(1, Math.max(0, fraction)));
385
+ }
386
+ else {
387
+ const value = (t) => geographic(this.local(at(t)))[0] - Math.cos(this.cap), roots = [];
388
+ for (let k = 0; k < 32; k++) {
389
+ let lo = k / 32, hi = (k + 1) / 32, f = value(lo), g = value(hi);
390
+ if (Math.abs(f) < 1e-13)
391
+ roots.push(lo);
392
+ if (f * g >= 0)
393
+ continue;
394
+ for (let n = 0; n < 52; n++) {
395
+ const mid = (lo + hi) / 2;
396
+ if (value(mid) >= 0 === f >= 0)
397
+ lo = mid;
398
+ else
399
+ hi = mid;
400
+ }
401
+ roots.push((lo + hi) / 2);
402
+ }
403
+ if (Math.abs(value(1)) < 1e-13)
404
+ roots.push(1);
405
+ if (!roots.length)
406
+ throw new Error('Unresolved cap polygon source intersection');
407
+ roots.sort((a, b) => Math.abs(a - fraction) - Math.abs(b - fraction));
408
+ resolved[r][j] = at(roots[0]);
409
+ }
410
+ }
411
+ }));
412
+ for (const ring of resolved)
413
+ ring[ring.length - 1] = [...ring[0]];
275
414
  result.push({
276
415
  regionId: part.regionId,
277
- sourceCoordinates: sources,
278
- coordinates: sources.map(r => r.map(p => {
416
+ sourceCoordinates: resolved,
417
+ coordinates: resolved.map(r => r.map(p => {
279
418
  const q = super.projectPoint(p, part.regionId);
280
419
  if (!q)
281
- throw new Error(`Cap point outside chart ${part.regionId}: ${p}, owner ${super.findRegions(p)}`);
420
+ throw new Error('Cap polygon source constraint left its owning chart');
282
421
  return q.position;
283
- }))
422
+ })),
423
+ ...(options?.polygonEdgeProvenance
424
+ ? {
425
+ edgeProvenance: traced.owners.map((owners, r) => owners.map((owner, i) => {
426
+ const a = resolved[r][i], b = resolved[r][i + 1];
427
+ if (owner) {
428
+ const [pr, pe] = owner;
429
+ return composePolygonEdge(part.edgeProvenance[pr][pe], part.sourceCoordinates[pr][pe], part.sourceCoordinates[pr][pe + 1], a, b);
430
+ }
431
+ if (angle(geographic(a), geographic(b)) < 64 * Number.EPSILON)
432
+ return {
433
+ kind: 'continuous-chart-join',
434
+ ring: 0xffffffff,
435
+ segment: 0xffffffff,
436
+ t0: 0,
437
+ t1: 0
438
+ };
439
+ const kinds = [];
440
+ region.boundary.forEach((p, j) => {
441
+ const n = cross(geographic(p), geographic(region.boundary[(j + 1) % region.boundary.length])), length = Math.hypot(...n);
442
+ if (length &&
443
+ [a, b].every(p => Math.abs(dot(n, geographic(p))) / length < 1e-9)) {
444
+ const seam = this.seams.find(s => s.regions.some((id, k) => id === region.id && s.edges[k] === j));
445
+ if (seam)
446
+ kinds.push(seam.kind);
447
+ }
448
+ });
449
+ const horizon = [a, b].every(p => Math.abs(geographic(this.local(p))[0] - Math.cos(this.cap)) < 1e-7);
450
+ if (!horizon && !kinds.length)
451
+ throw new Error('Unknown cap polygon clipping constraint');
452
+ return {
453
+ kind: horizon
454
+ ? 'coverage-boundary'
455
+ : kinds.includes('boundary')
456
+ ? 'coverage-boundary'
457
+ : kinds.includes('cut')
458
+ ? 'chart-cut'
459
+ : 'continuous-chart-join',
460
+ ring: 0xffffffff,
461
+ segment: 0xffffffff,
462
+ t0: 0,
463
+ t1: 0
464
+ };
465
+ }))
466
+ }
467
+ : {})
284
468
  });
285
469
  }
286
470
  }