@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.
- package/dist/crs/crs-identifier.d.ts +23 -0
- package/dist/crs/crs-identifier.d.ts.map +1 -0
- package/dist/crs/crs-identifier.js +74 -0
- package/dist/crs/crs-identifier.js.map +1 -0
- package/dist/crs/index.cjs +48 -0
- package/dist/crs/index.cjs.map +2 -2
- package/dist/crs/index.d.ts +1 -0
- package/dist/crs/index.d.ts.map +1 -1
- package/dist/crs/index.js +1 -0
- package/dist/crs/index.js.map +1 -1
- package/dist/discontinuous/cap-map.d.ts.map +1 -1
- package/dist/discontinuous/cap-map.js +197 -13
- package/dist/discontinuous/cap-map.js.map +1 -1
- package/dist/discontinuous/elastic/geometry.d.ts +1 -1
- package/dist/discontinuous/elastic/geometry.d.ts.map +1 -1
- package/dist/discontinuous/elastic/geometry.js +7 -7
- package/dist/discontinuous/elastic/geometry.js.map +1 -1
- package/dist/discontinuous/elastic/map.d.ts.map +1 -1
- package/dist/discontinuous/elastic/map.js +263 -23
- package/dist/discontinuous/elastic/map.js.map +1 -1
- package/dist/discontinuous/elastic/source-arc.d.ts +10 -0
- package/dist/discontinuous/elastic/source-arc.d.ts.map +1 -0
- package/dist/discontinuous/elastic/source-arc.js +111 -0
- package/dist/discontinuous/elastic/source-arc.js.map +1 -0
- package/dist/discontinuous/global-polygons.d.ts +1 -1
- package/dist/discontinuous/global-polygons.d.ts.map +1 -1
- package/dist/discontinuous/global-polygons.js +49 -1
- package/dist/discontinuous/global-polygons.js.map +1 -1
- package/dist/discontinuous/map-engine.d.ts +9 -0
- package/dist/discontinuous/map-engine.d.ts.map +1 -1
- package/dist/discontinuous/map-layout.d.ts +21 -0
- package/dist/discontinuous/map-layout.d.ts.map +1 -1
- package/dist/discontinuous/map-layout.js +116 -1
- package/dist/discontinuous/map-layout.js.map +1 -1
- package/dist/discontinuous/map-transition.d.ts.map +1 -1
- package/dist/discontinuous/map-transition.js +66 -3
- package/dist/discontinuous/map-transition.js.map +1 -1
- package/dist/discontinuous/mercator-map.d.ts +2 -2
- package/dist/discontinuous/mercator-map.d.ts.map +1 -1
- package/dist/discontinuous/mercator-map.js +123 -11
- package/dist/discontinuous/mercator-map.js.map +1 -1
- package/dist/discontinuous/polygon-constraints.d.ts +16 -0
- package/dist/discontinuous/polygon-constraints.d.ts.map +1 -0
- package/dist/discontinuous/polygon-constraints.js +157 -0
- package/dist/discontinuous/polygon-constraints.js.map +1 -0
- package/dist/discontinuous/prepare-features.d.ts +27 -0
- package/dist/discontinuous/prepare-features.d.ts.map +1 -1
- package/dist/discontinuous/prepare-features.js +106 -5
- package/dist/discontinuous/prepare-features.js.map +1 -1
- package/dist/discontinuous/rotated-map.d.ts +9 -0
- package/dist/discontinuous/rotated-map.d.ts.map +1 -1
- package/dist/discontinuous/source-arc.d.ts +4 -0
- package/dist/discontinuous/source-arc.d.ts.map +1 -0
- package/dist/discontinuous/source-arc.js +23 -0
- package/dist/discontinuous/source-arc.js.map +1 -0
- package/dist/discontinuous/world-kernels.d.ts +1 -1
- package/dist/discontinuous.cjs +1047 -75
- package/dist/discontinuous.cjs.map +3 -3
- package/dist/index.cjs +48 -0
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/turf.cjs +69 -5
- package/dist/turf.cjs.map +2 -2
- package/dist/turf.d.ts +9 -0
- package/dist/turf.d.ts.map +1 -1
- package/dist/turf.js +67 -0
- package/dist/turf.js.map +1 -1
- package/dist/workers/index.cjs +1075 -79
- package/dist/workers/index.cjs.map +3 -3
- package/dist/workers/operations.cjs +1049 -77
- package/dist/workers/operations.cjs.map +3 -3
- package/package.json +5 -5
- package/src/crs/crs-identifier.ts +86 -0
- package/src/crs/index.ts +1 -0
- package/src/discontinuous/cap-map.ts +248 -19
- package/src/discontinuous/elastic/geometry.ts +18 -7
- package/src/discontinuous/elastic/map.ts +334 -30
- package/src/discontinuous/elastic/source-arc.ts +129 -0
- package/src/discontinuous/global-polygons.ts +56 -2
- package/src/discontinuous/map-layout.ts +165 -2
- package/src/discontinuous/map-transition.ts +67 -3
- package/src/discontinuous/mercator-map.ts +151 -12
- package/src/discontinuous/polygon-constraints.ts +184 -0
- package/src/discontinuous/prepare-features.ts +154 -6
- package/src/discontinuous/source-arc.ts +31 -0
- package/src/index.ts +1 -0
- 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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"}
|
package/dist/crs/index.cjs
CHANGED
|
@@ -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. */
|
package/dist/crs/index.cjs.map
CHANGED
|
@@ -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
|
}
|
package/dist/crs/index.d.ts
CHANGED
|
@@ -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";
|
package/dist/crs/index.d.ts.map
CHANGED
|
@@ -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";
|
package/dist/crs/index.js.map
CHANGED
|
@@ -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;
|
|
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":"
|
|
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
|
-
|
|
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
|
-
//
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
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:
|
|
278
|
-
coordinates:
|
|
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(
|
|
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
|
}
|