@math.gl/geospatial 5.0.0-alpha.11 → 5.0.0-alpha.12
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/LICENSE +7 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -2
- package/dist/constants.js.map +1 -1
- package/dist/ellipsoid-helpers/ellipsoid-transform.d.ts.map +1 -1
- package/dist/ellipsoid-helpers/ellipsoid-transform.js +4 -2
- package/dist/ellipsoid-helpers/ellipsoid-transform.js.map +1 -1
- package/dist/ellipsoid-helpers/scale-to-geodetic-surface.d.ts +2 -0
- package/dist/ellipsoid-helpers/scale-to-geodetic-surface.d.ts.map +1 -1
- package/dist/ellipsoid-helpers/scale-to-geodetic-surface.js +46 -13
- package/dist/ellipsoid-helpers/scale-to-geodetic-surface.js.map +1 -1
- package/dist/ellipsoid-tangent-plane.d.ts.map +1 -1
- package/dist/ellipsoid-tangent-plane.js +4 -2
- package/dist/ellipsoid-tangent-plane.js.map +1 -1
- package/dist/ellipsoid.d.ts +11 -0
- package/dist/ellipsoid.d.ts.map +1 -1
- package/dist/ellipsoid.js +79 -7
- package/dist/ellipsoid.js.map +1 -1
- package/dist/index.cjs +180 -27
- package/dist/index.cjs.map +3 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lng-lat-rectangle.d.ts.map +1 -1
- package/dist/lng-lat-rectangle.js +4 -2
- package/dist/lng-lat-rectangle.js.map +1 -1
- package/dist/make-obb-from-region.d.ts.map +1 -1
- package/dist/make-obb-from-region.js +4 -2
- package/dist/make-obb-from-region.js.map +1 -1
- package/dist/type-utils.d.ts +2 -0
- package/dist/type-utils.d.ts.map +1 -1
- package/dist/type-utils.js +25 -2
- package/dist/type-utils.js.map +1 -1
- package/package.json +5 -5
- package/src/constants.ts +4 -2
- package/src/ellipsoid-helpers/ellipsoid-transform.ts +4 -2
- package/src/ellipsoid-helpers/scale-to-geodetic-surface.ts +48 -14
- package/src/ellipsoid-tangent-plane.ts +4 -2
- package/src/ellipsoid.ts +94 -7
- package/src/index.ts +3 -1
- package/src/lng-lat-rectangle.ts +4 -2
- package/src/make-obb-from-region.ts +4 -2
- package/src/type-utils.ts +30 -2
package/LICENSE
CHANGED
|
@@ -138,3 +138,10 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
138
138
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
139
139
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
140
140
|
THE SOFTWARE.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
The shared numeric spheroid entry in @math.gl/core retains the existing
|
|
145
|
+
proj4js-derived forward geocentric and Hannover inverse arithmetic. The core
|
|
146
|
+
package includes its full upstream MIT notice in modules/core/PROJ4-LICENSE.md;
|
|
147
|
+
the projection package retains its corresponding PROJ4-LICENSE.md.
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,UAAY,CAAC;AACxC,eAAO,MAAM,cAAc,UAAY,CAAC;AACxC,eAAO,MAAM,cAAc,oBAAqB,CAAC;AAIjD,eAAO,MAAM,eAAe;;;;;;;CAe3B,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// math.gl
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright
|
|
2
|
+
// SPDX-License-Identifier: MIT AND Apache-2.0
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright 2011-2018 CesiumJS Contributors
|
|
4
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
5
|
+
// SPDX-FileComment: Derived from Cesium. See the repository LICENSE for upstream attribution and Apache-2.0 terms.
|
|
4
6
|
// This file is derived from the Cesium math library under Apache 2 license
|
|
5
7
|
// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
|
|
6
8
|
export const WGS84_RADIUS_X = 6378137.0;
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,8CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,8CAA8C;AAC9C,oEAAoE;AACpE,4DAA4D;AAC5D,mHAAmH;AAEnH,2EAA2E;AAC3E,4FAA4F;AAE5F,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAEjD,+EAA+E;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;IACvD,YAAY,EAAE;QACZ,cAAc,GAAG,cAAc;QAC/B,cAAc,GAAG,cAAc;QAC/B,cAAc,GAAG,cAAc;KAChC;IACD,YAAY,EAAE,CAAC,GAAG,GAAG,cAAc,EAAE,GAAG,GAAG,cAAc,EAAE,GAAG,GAAG,cAAc,CAAC;IAChF,mBAAmB,EAAE;QACnB,GAAG,GAAG,CAAC,cAAc,GAAG,cAAc,CAAC;QACvC,GAAG,GAAG,CAAC,cAAc,GAAG,cAAc,CAAC;QACvC,GAAG,GAAG,CAAC,cAAc,GAAG,cAAc,CAAC;KACxC;IACD,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;IACvE,sBAAsB,EAAE,IAAI,CAAC,YAAY;CAC1C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ellipsoid-transform.d.ts","sourceRoot":"","sources":["../../src/ellipsoid-helpers/ellipsoid-transform.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ellipsoid-transform.d.ts","sourceRoot":"","sources":["../../src/ellipsoid-helpers/ellipsoid-transform.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAG5C,OAAO,KAAK,EAAC,SAAS,EAAC,wBAAqB;AAM5C,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAsEhF,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,aAAa,EACxB,eAAe,EAAE,QAAQ,CAAC,YAAY,CAAC,EACvC,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,EAAE,CAuEV"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// math.gl
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright
|
|
2
|
+
// SPDX-License-Identifier: MIT AND Apache-2.0
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright 2011-2018 CesiumJS Contributors
|
|
4
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
5
|
+
// SPDX-FileComment: Derived from Cesium. See the repository LICENSE for upstream attribution and Apache-2.0 terms.
|
|
4
6
|
import { Vector3, assert, equals as equalsEpsilon } from '@math.gl/core';
|
|
5
7
|
const EPSILON14 = 1e-14;
|
|
6
8
|
const scratchOrigin = new Vector3();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ellipsoid-transform.js","sourceRoot":"","sources":["../../src/ellipsoid-helpers/ellipsoid-transform.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,8CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"ellipsoid-transform.js","sourceRoot":"","sources":["../../src/ellipsoid-helpers/ellipsoid-transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { Ellipsoid } from "../ellipsoid.js";
|
|
2
2
|
export declare function scaleToGeodeticSurface(cartesian: number[], ellipsoid: Ellipsoid, result?: number[]): number[];
|
|
3
|
+
/** Original numeric commit: application setters cannot overwrite remaining scratch ordinates. */
|
|
4
|
+
export declare function writeResult(result: number[], x: number, y: number, z: number): number[];
|
|
3
5
|
//# sourceMappingURL=scale-to-geodetic-surface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scale-to-geodetic-surface.d.ts","sourceRoot":"","sources":["../../src/ellipsoid-helpers/scale-to-geodetic-surface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scale-to-geodetic-surface.d.ts","sourceRoot":"","sources":["../../src/ellipsoid-helpers/scale-to-geodetic-surface.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,SAAS,EAAC,wBAAqB;AAS5C,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,SAAS,EACpB,MAAM,GAAE,MAAM,EAAO,GACpB,MAAM,EAAE,CAwGV;AAED,iGAAiG;AACjG,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAYvF"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
// math.gl
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright
|
|
2
|
+
// SPDX-License-Identifier: MIT AND Apache-2.0
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright 2011-2018 CesiumJS Contributors
|
|
4
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
5
|
+
// SPDX-FileComment: Derived from Cesium. See the repository LICENSE for upstream attribution and Apache-2.0 terms. Original math.gl follow-up bounds Newton iteration and commits numeric components without a temporary array.
|
|
4
6
|
/* eslint-disable */
|
|
5
|
-
import { Vector3, _MathUtils } from '@math.gl/core';
|
|
7
|
+
import { Vector3, _MathUtils, isArray } from '@math.gl/core';
|
|
6
8
|
const scratchVector = new Vector3();
|
|
7
9
|
const scaleToGeodeticSurfaceIntersection = new Vector3();
|
|
8
10
|
const scaleToGeodeticSurfaceGradient = new Vector3();
|
|
@@ -11,10 +13,15 @@ const scaleToGeodeticSurfaceGradient = new Vector3();
|
|
|
11
13
|
// at the center of the ellipsoid, this function returns undefined.
|
|
12
14
|
export function scaleToGeodeticSurface(cartesian, ellipsoid, result = []) {
|
|
13
15
|
const { oneOverRadii, oneOverRadiiSquared, centerToleranceSquared } = ellipsoid;
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
16
|
+
// Snapshot numeric inputs before touching scratch or debug-mode vectors.
|
|
17
|
+
const object = cartesian;
|
|
18
|
+
const positionX = 'x' in cartesian ? object.x : cartesian[0];
|
|
19
|
+
const positionY = 'x' in cartesian ? object.y : cartesian[1];
|
|
20
|
+
const positionZ = 'x' in cartesian ? object.z : cartesian[2];
|
|
21
|
+
if (!Number.isFinite(positionX) || !Number.isFinite(positionY) || !Number.isFinite(positionZ)) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
scratchVector.set(positionX, positionY, positionZ);
|
|
18
25
|
const oneOverRadiiX = oneOverRadii.x;
|
|
19
26
|
const oneOverRadiiY = oneOverRadii.y;
|
|
20
27
|
const oneOverRadiiZ = oneOverRadii.z;
|
|
@@ -25,15 +32,15 @@ export function scaleToGeodeticSurface(cartesian, ellipsoid, result = []) {
|
|
|
25
32
|
const squaredNorm = x2 + y2 + z2;
|
|
26
33
|
const ratio = Math.sqrt(1.0 / squaredNorm);
|
|
27
34
|
// When very close to center or at center
|
|
28
|
-
if (!Number.isFinite(ratio)) {
|
|
35
|
+
if (!Number.isFinite(ratio) || !Number.isFinite(squaredNorm)) {
|
|
29
36
|
return undefined;
|
|
30
37
|
}
|
|
31
38
|
// As an initial approximation, assume that the radial intersection is the projection point.
|
|
32
39
|
const intersection = scaleToGeodeticSurfaceIntersection;
|
|
33
|
-
intersection.
|
|
40
|
+
intersection.set(positionX, positionY, positionZ).scale(ratio);
|
|
34
41
|
// If the position is near the center, the iteration will not converge.
|
|
35
42
|
if (squaredNorm < centerToleranceSquared) {
|
|
36
|
-
return intersection.
|
|
43
|
+
return writeResult(result, intersection.x, intersection.y, intersection.z);
|
|
37
44
|
}
|
|
38
45
|
const oneOverRadiiSquaredX = oneOverRadiiSquared.x;
|
|
39
46
|
const oneOverRadiiSquaredY = oneOverRadiiSquared.y;
|
|
@@ -49,7 +56,8 @@ export function scaleToGeodeticSurface(cartesian, ellipsoid, result = []) {
|
|
|
49
56
|
let yMultiplier;
|
|
50
57
|
let zMultiplier;
|
|
51
58
|
let func;
|
|
52
|
-
|
|
59
|
+
// Bound the original Newton iteration; unsupported inputs leave caller output untouched.
|
|
60
|
+
for (let iteration = 0; iteration < 64; iteration++) {
|
|
53
61
|
lambda -= correction;
|
|
54
62
|
xMultiplier = 1.0 / (1.0 + lambda * oneOverRadiiSquaredX);
|
|
55
63
|
yMultiplier = 1.0 / (1.0 + lambda * oneOverRadiiSquaredY);
|
|
@@ -61,14 +69,39 @@ export function scaleToGeodeticSurface(cartesian, ellipsoid, result = []) {
|
|
|
61
69
|
const yMultiplier3 = yMultiplier2 * yMultiplier;
|
|
62
70
|
const zMultiplier3 = zMultiplier2 * zMultiplier;
|
|
63
71
|
func = x2 * xMultiplier2 + y2 * yMultiplier2 + z2 * zMultiplier2 - 1.0;
|
|
72
|
+
if (!Number.isFinite(func))
|
|
73
|
+
return undefined;
|
|
74
|
+
if (Math.abs(func) <= _MathUtils.EPSILON12) {
|
|
75
|
+
// Numeric components avoid the former temporary multiplier array.
|
|
76
|
+
return writeResult(result, positionX * xMultiplier, positionY * yMultiplier, positionZ * zMultiplier);
|
|
77
|
+
}
|
|
64
78
|
// "denominator" here refers to the use of this expression in the velocity and acceleration
|
|
65
79
|
// computations in the sections to follow.
|
|
66
80
|
const denominator = x2 * xMultiplier3 * oneOverRadiiSquaredX +
|
|
67
81
|
y2 * yMultiplier3 * oneOverRadiiSquaredY +
|
|
68
82
|
z2 * zMultiplier3 * oneOverRadiiSquaredZ;
|
|
69
83
|
const derivative = -2.0 * denominator;
|
|
84
|
+
if (!Number.isFinite(derivative) || derivative === 0)
|
|
85
|
+
return undefined;
|
|
70
86
|
correction = func / derivative;
|
|
71
|
-
|
|
72
|
-
|
|
87
|
+
if (!Number.isFinite(correction))
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
/** Original numeric commit: application setters cannot overwrite remaining scratch ordinates. */
|
|
93
|
+
export function writeResult(result, x, y, z) {
|
|
94
|
+
if (isArray(result)) {
|
|
95
|
+
result[0] = x;
|
|
96
|
+
result[1] = y;
|
|
97
|
+
result[2] = z;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
const point = result;
|
|
101
|
+
point.x = x;
|
|
102
|
+
point.y = y;
|
|
103
|
+
point.z = z;
|
|
104
|
+
}
|
|
105
|
+
return result;
|
|
73
106
|
}
|
|
74
107
|
//# sourceMappingURL=scale-to-geodetic-surface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scale-to-geodetic-surface.js","sourceRoot":"","sources":["../../src/ellipsoid-helpers/scale-to-geodetic-surface.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,8CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"scale-to-geodetic-surface.js","sourceRoot":"","sources":["../../src/ellipsoid-helpers/scale-to-geodetic-surface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ellipsoid-tangent-plane.d.ts","sourceRoot":"","sources":["../src/ellipsoid-tangent-plane.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ellipsoid-tangent-plane.d.ts","sourceRoot":"","sources":["../src/ellipsoid-tangent-plane.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,OAAO,EAAE,OAAO,EAAU,MAAM,eAAe,CAAC;AACxD,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,SAAS,EAAC,uBAAoB;AAOtC,kEAAkE;AAClE,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAQ;IAEtB;;;;;;OAMG;gBACS,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,SAA2B;IAapE;;;;;;OAMG;IACH,4BAA4B,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAiB3E,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;CACF"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// math.gl
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright
|
|
2
|
+
// SPDX-License-Identifier: MIT AND Apache-2.0
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright 2011-2018 CesiumJS Contributors
|
|
4
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
5
|
+
// SPDX-FileComment: Derived from Cesium. See the repository LICENSE for upstream attribution and Apache-2.0 terms.
|
|
4
6
|
// This file is derived from the Cesium library under Apache 2 license
|
|
5
7
|
// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
|
|
6
8
|
import { Vector2, Vector3, Matrix4 } from '@math.gl/core';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ellipsoid-tangent-plane.js","sourceRoot":"","sources":["../src/ellipsoid-tangent-plane.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,8CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"ellipsoid-tangent-plane.js","sourceRoot":"","sources":["../src/ellipsoid-tangent-plane.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,8CAA8C;AAC9C,oEAAoE;AACpE,4DAA4D;AAC5D,mHAAmH;AAEnH,sEAAsE;AACtE,4FAA4F;AAE5F,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AACxD,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,SAAS,EAAC,uBAAoB;AAEtC,MAAM,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;AACpC,MAAM,YAAY,GAAG,IAAI,OAAO,EAAE,CAAC;AACnC,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAE,CAAC;AACzC,MAAM,sCAAsC,GAAG,IAAI,OAAO,EAAE,CAAC;AAE7D,kEAAkE;AAClE,MAAM,OAAO,qBAAqB;IAMhC;;;;;;OAMG;IACH,YAAY,MAAgB,EAAE,YAAuB,SAAS,CAAC,KAAK;QAClE,MAAM,eAAe,GAAG,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAEhF,MAAM,WAAW,GAAG,SAAS,CAAC,uBAAuB,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;QAE3F,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAExE,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;OAMG;IACH,4BAA4B,CAAC,SAAkB,EAAE,MAAgB;QAC/D,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAEpC,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CACzD,SAAS,EACT,sCAAsC,CACvC,CAAC;QAEF,MAAM,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;CACF"}
|
package/dist/ellipsoid.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Vector3, Matrix4, NumericArray } from '@math.gl/core';
|
|
2
|
+
import type { SpheroidParameters } from '@math.gl/types';
|
|
2
3
|
import type { AxisDirection } from "./ellipsoid-helpers/ellipsoid-transform.js";
|
|
3
4
|
/**
|
|
4
5
|
* A quadratic surface defined in Cartesian coordinates by the equation
|
|
@@ -8,6 +9,10 @@ import type { AxisDirection } from "./ellipsoid-helpers/ellipsoid-transform.js";
|
|
|
8
9
|
export declare class Ellipsoid {
|
|
9
10
|
/** An Ellipsoid instance initialized to the WGS84 standard. */
|
|
10
11
|
static readonly WGS84: Ellipsoid;
|
|
12
|
+
/** Construct from two-axis geometry, including normalized projection ellipsoids.
|
|
13
|
+
* The equatorial X/Y radii are equal; no CRS or datum information is inferred.
|
|
14
|
+
*/
|
|
15
|
+
static fromSpheroid(parameters: SpheroidParameters): Ellipsoid;
|
|
11
16
|
readonly radii: Vector3;
|
|
12
17
|
readonly radiiSquared: Vector3;
|
|
13
18
|
readonly radiiToTheFourth: Vector3;
|
|
@@ -17,9 +22,15 @@ export declare class Ellipsoid {
|
|
|
17
22
|
readonly maximumRadius: number;
|
|
18
23
|
readonly centerToleranceSquared: number;
|
|
19
24
|
readonly squaredXOverSquaredZ: number;
|
|
25
|
+
private readonly spheroidGeometry?;
|
|
20
26
|
/** Creates an Ellipsoid from a Cartesian specifying the radii in x, y, and z directions. */
|
|
21
27
|
constructor(x: number, y: number, z: number);
|
|
22
28
|
constructor();
|
|
29
|
+
/** Return an owned geometry snapshot for a sphere or oblate spheroid.
|
|
30
|
+
* Triaxial, prolate and degenerate ellipsoids cannot be represented by this contract.
|
|
31
|
+
* Call during setup, outside coordinate loops.
|
|
32
|
+
*/
|
|
33
|
+
toSpheroid(): SpheroidParameters;
|
|
23
34
|
/** Compares this Ellipsoid against the provided Ellipsoid componentwise */
|
|
24
35
|
equals(right: Ellipsoid): boolean;
|
|
25
36
|
/** Creates a string representing this Ellipsoid in the format '(radii.x, radii.y, radii.z)'. */
|
package/dist/ellipsoid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ellipsoid.d.ts","sourceRoot":"","sources":["../src/ellipsoid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ellipsoid.d.ts","sourceRoot":"","sources":["../src/ellipsoid.ts"],"names":[],"mappings":"AAUA,OAAO,EAAC,OAAO,EAAE,OAAO,EAA8B,YAAY,EAAC,MAAM,eAAe,CAAC;AACzF,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAWvD,OAAO,KAAK,EAAC,aAAa,EAAC,mDAAgD;AAY3E;;;;GAIG;AACH,qBAAa,SAAS;IACpB,+DAA+D;IAC/D,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAiE;IAEjG;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,kBAAkB,GAAG,SAAS;IAM9D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAuB;IAC9D,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAmB;IAErD,4FAA4F;gBAChF,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;IAkD3C;;;OAGG;IACH,UAAU,IAAI,kBAAkB;IAOhC,2EAA2E;IAC3E,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIjC,gGAAgG;IAChG,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IACzE,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IA4B5E;;;OAGG;IACH,uBAAuB,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IACpF,uBAAuB,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAoDvF;4FACwF;IACxF,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAClF,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAMnF;;OAEG;IACH,sBAAsB,CACpB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,MAAM,CAAC,EAAE,OAAO,GACf,OAAO;IACV,sBAAsB,CAAC,SAAS,EAC9B,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,EAAE;IAcX;0CACsC;IACtC,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IACzE,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ;IAKlF;;OAEG;IACH,iCAAiC,CAAC,QAAQ,EACxC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,EACpC,MAAM,EAAE,QAAQ,GACf,QAAQ;IACX,iCAAiC,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAgBnE,yGAAyG;IACzG,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS;IACnF,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAKpD;;0EAEsE;IACtE,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAIxE;yDACqD;IACrD,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,GAAE,MAAM,EAAc,GAAG,MAAM,EAAE;IAmBrF;kEAC8D;IAC9D,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,GAAE,MAAM,EAAc,GAAG,MAAM,EAAE;IAI1F;4DACwD;IACxD,gCAAgC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,GAAE,MAAM,EAAc,GAAG,MAAM,EAAE;IAI5F,wFAAwF;IACxF,qCAAqC,CACnC,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,MAAM,EAAc,GAC3B,MAAM,EAAE;CAcZ"}
|
package/dist/ellipsoid.js
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
// math.gl
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
// Copyright
|
|
2
|
+
// SPDX-License-Identifier: MIT AND Apache-2.0
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright 2011-2018 CesiumJS Contributors
|
|
4
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
5
|
+
// SPDX-FileComment: Derived from Cesium. See the repository LICENSE for upstream attribution and Apache-2.0 terms. Original math.gl follow-up uses stable atan2 latitude and numeric cartographic output.
|
|
4
6
|
// This file is derived from the Cesium math library under Apache 2 license
|
|
5
7
|
// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
|
|
6
8
|
/* eslint-disable */
|
|
7
9
|
import { Vector3, Matrix4, assert, equals, _MathUtils } from '@math.gl/core';
|
|
10
|
+
import { spheroidToCartesian, cartesianToSpheroid } from '@math.gl/core/spheroid';
|
|
8
11
|
import * as vec3 from '@math.gl/core/vec3';
|
|
9
12
|
import { WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z } from "./constants.js";
|
|
10
|
-
import { fromCartographicToRadians,
|
|
13
|
+
import { fromCartographicToRadians, toCartographicFromRadiansComponents } from "./type-utils.js";
|
|
11
14
|
import { localFrameToFixedFrame } from "./ellipsoid-helpers/ellipsoid-transform.js";
|
|
12
|
-
import { scaleToGeodeticSurface } from "./ellipsoid-helpers/scale-to-geodetic-surface.js";
|
|
15
|
+
import { scaleToGeodeticSurface, writeResult } from "./ellipsoid-helpers/scale-to-geodetic-surface.js";
|
|
16
|
+
const spheroidScratch = { x: 0, y: 0, z: 0 };
|
|
13
17
|
const scratchVector = new Vector3();
|
|
14
18
|
const scratchNormal = new Vector3();
|
|
15
19
|
const scratchK = new Vector3();
|
|
@@ -22,6 +26,14 @@ const scratchCartesian = new Vector3();
|
|
|
22
26
|
* to represent the shape of planetary bodies.
|
|
23
27
|
*/
|
|
24
28
|
export class Ellipsoid {
|
|
29
|
+
/** Construct from two-axis geometry, including normalized projection ellipsoids.
|
|
30
|
+
* The equatorial X/Y radii are equal; no CRS or datum information is inferred.
|
|
31
|
+
*/
|
|
32
|
+
static fromSpheroid(parameters) {
|
|
33
|
+
const { semiMajorAxis, semiMinorAxis } = parameters;
|
|
34
|
+
validateSpheroid(semiMajorAxis, semiMinorAxis);
|
|
35
|
+
return new Ellipsoid(semiMajorAxis, semiMajorAxis, semiMinorAxis);
|
|
36
|
+
}
|
|
25
37
|
constructor(x = 0.0, y = 0.0, z = 0.0) {
|
|
26
38
|
this.centerToleranceSquared = _MathUtils.EPSILON1;
|
|
27
39
|
assert(x >= 0.0);
|
|
@@ -37,8 +49,30 @@ export class Ellipsoid {
|
|
|
37
49
|
if (this.radiiSquared.z !== 0) {
|
|
38
50
|
this.squaredXOverSquaredZ = this.radiiSquared.x / this.radiiSquared.z;
|
|
39
51
|
}
|
|
52
|
+
// Setup only: retain the three-radius path for unsupported/lossy shapes.
|
|
53
|
+
if (x === y &&
|
|
54
|
+
z > 0 &&
|
|
55
|
+
z <= x &&
|
|
56
|
+
Number.isFinite(this.radiiSquared.x) &&
|
|
57
|
+
this.radiiSquared.z > 0)
|
|
58
|
+
this.spheroidGeometry = Object.freeze({
|
|
59
|
+
semiMajorAxis: x,
|
|
60
|
+
semiMinorAxis: z,
|
|
61
|
+
eccentricitySquared: 1 - this.radiiSquared.z / this.radiiSquared.x
|
|
62
|
+
});
|
|
40
63
|
Object.freeze(this);
|
|
41
64
|
}
|
|
65
|
+
/** Return an owned geometry snapshot for a sphere or oblate spheroid.
|
|
66
|
+
* Triaxial, prolate and degenerate ellipsoids cannot be represented by this contract.
|
|
67
|
+
* Call during setup, outside coordinate loops.
|
|
68
|
+
*/
|
|
69
|
+
toSpheroid() {
|
|
70
|
+
const { x, y, z } = this.radii;
|
|
71
|
+
if (x !== y)
|
|
72
|
+
throw new Error('Spheroid requires equal X/Y radii');
|
|
73
|
+
validateSpheroid(x, z);
|
|
74
|
+
return Object.freeze({ semiMajorAxis: x, semiMinorAxis: z });
|
|
75
|
+
}
|
|
42
76
|
/** Compares this Ellipsoid against the provided Ellipsoid componentwise */
|
|
43
77
|
equals(right) {
|
|
44
78
|
return this === right || Boolean(right && this.radii.equals(right.radii));
|
|
@@ -48,6 +82,15 @@ export class Ellipsoid {
|
|
|
48
82
|
return this.radii.toString();
|
|
49
83
|
}
|
|
50
84
|
cartographicToCartesian(cartographic, result = [0, 0, 0]) {
|
|
85
|
+
if (this.spheroidGeometry) {
|
|
86
|
+
const llh = fromCartographicToRadians(cartographic, scratchCartesian);
|
|
87
|
+
spheroidScratch.x = llh[0];
|
|
88
|
+
spheroidScratch.y = llh[1];
|
|
89
|
+
spheroidScratch.z = llh[2];
|
|
90
|
+
if (!spheroidToCartesian(spheroidScratch, this.spheroidGeometry))
|
|
91
|
+
return undefined;
|
|
92
|
+
return writeResult(result, spheroidScratch.x, spheroidScratch.y, spheroidScratch.z);
|
|
93
|
+
}
|
|
51
94
|
const normal = scratchNormal;
|
|
52
95
|
const k = scratchK;
|
|
53
96
|
const [, , height] = cartographic;
|
|
@@ -60,7 +103,30 @@ export class Ellipsoid {
|
|
|
60
103
|
return k.to(result);
|
|
61
104
|
}
|
|
62
105
|
cartesianToCartographic(cartesian, result = [0, 0, 0]) {
|
|
63
|
-
|
|
106
|
+
const object = cartesian;
|
|
107
|
+
const x = 'x' in cartesian ? object.x : cartesian[0];
|
|
108
|
+
const y = 'x' in cartesian ? object.y : cartesian[1];
|
|
109
|
+
const z = 'x' in cartesian ? object.z : cartesian[2];
|
|
110
|
+
if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(z))
|
|
111
|
+
return undefined;
|
|
112
|
+
// Shared inverse is qualified for the unambiguous surface/exterior domain.
|
|
113
|
+
// Interior/radial-fallback and non-spheroid behavior retain the Cesium kernel.
|
|
114
|
+
const a = this.radii.x, b = this.radii.z;
|
|
115
|
+
const normSquared = (x / a) ** 2 + (y / a) ** 2 + (z / b) ** 2;
|
|
116
|
+
if (this.spheroidGeometry &&
|
|
117
|
+
Number.isFinite(normSquared) &&
|
|
118
|
+
normSquared >= 1 - 16 * Number.EPSILON &&
|
|
119
|
+
Number.isFinite(x * x + y * y + z * z)) {
|
|
120
|
+
spheroidScratch.x = x;
|
|
121
|
+
spheroidScratch.y = y;
|
|
122
|
+
spheroidScratch.z = z;
|
|
123
|
+
if (!cartesianToSpheroid(spheroidScratch, this.spheroidGeometry))
|
|
124
|
+
return undefined;
|
|
125
|
+
// Preserve signed-zero atan2 at exact poles rather than projection's canonical zero.
|
|
126
|
+
const longitude = x === 0 && y === 0 ? Math.atan2(y, x) : spheroidScratch.x;
|
|
127
|
+
return toCartographicFromRadiansComponents(longitude, spheroidScratch.y, spheroidScratch.z, result);
|
|
128
|
+
}
|
|
129
|
+
scratchCartesian.set(x, y, z);
|
|
64
130
|
const point = this.scaleToGeodeticSurface(scratchCartesian, scratchPosition);
|
|
65
131
|
if (!point) {
|
|
66
132
|
return undefined;
|
|
@@ -69,9 +135,10 @@ export class Ellipsoid {
|
|
|
69
135
|
const h = scratchHeight;
|
|
70
136
|
h.copy(scratchCartesian).subtract(point);
|
|
71
137
|
const longitude = Math.atan2(normal.y, normal.x);
|
|
72
|
-
|
|
138
|
+
// atan2 retains latitude precision when the normal is almost vertical.
|
|
139
|
+
const latitude = Math.atan2(normal.z, Math.hypot(normal.x, normal.y));
|
|
73
140
|
const height = Math.sign(vec3.dot(h, scratchCartesian)) * vec3.length(h);
|
|
74
|
-
return
|
|
141
|
+
return toCartographicFromRadiansComponents(longitude, latitude, height, result);
|
|
75
142
|
}
|
|
76
143
|
eastNorthUpToFixedFrame(origin, result = new Matrix4()) {
|
|
77
144
|
return localFrameToFixedFrame(this, 'east', 'north', 'up', origin, result);
|
|
@@ -142,4 +209,9 @@ export class Ellipsoid {
|
|
|
142
209
|
}
|
|
143
210
|
/** An Ellipsoid instance initialized to the WGS84 standard. */
|
|
144
211
|
Ellipsoid.WGS84 = new Ellipsoid(WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z);
|
|
212
|
+
// Original parameter adapter; conversion and surface kernels above retain Cesium attribution.
|
|
213
|
+
function validateSpheroid(a, b) {
|
|
214
|
+
if (!Number.isFinite(a) || !Number.isFinite(b) || a <= 0 || b <= 0 || b > a)
|
|
215
|
+
throw new Error('Spheroid requires finite positive axes with semiMinorAxis <= semiMajorAxis');
|
|
216
|
+
}
|
|
145
217
|
//# sourceMappingURL=ellipsoid.js.map
|
package/dist/ellipsoid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ellipsoid.js","sourceRoot":"","sources":["../src/ellipsoid.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ellipsoid.js","sourceRoot":"","sources":["../src/ellipsoid.ts"],"names":[],"mappings":"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"}
|