Download node_modules/d3-geo/src/projection/equalEarth.js from NKessler/Horizon: direct link, hf CLI and curl.
- Browser
- Download file 1.02 kB
-
https://huggingface.co/NKessler/Horizon/resolve/main/node_modules/d3-geo/src/projection/equalEarth.js
- Command line
-
hf download hf://NKessler/Horizon/node_modules/d3-geo/src/projection/equalEarth.js
-
curl -L -o equalEarth.js https://huggingface.co/NKessler/Horizon/resolve/main/node_modules/d3-geo/src/projection/equalEarth.js
1.02 kB
| import projection from "./index.js"; | |
| import {abs, asin, cos, epsilon2, sin, sqrt} from "../math.js"; | |
| var A1 = 1.340264, | |
| A2 = -0.081106, | |
| A3 = 0.000893, | |
| A4 = 0.003796, | |
| M = sqrt(3) / 2, | |
| iterations = 12; | |
| export function equalEarthRaw(lambda, phi) { | |
| var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2; | |
| return [ | |
| lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))), | |
| l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) | |
| ]; | |
| } | |
| equalEarthRaw.invert = function(x, y) { | |
| var l = y, l2 = l * l, l6 = l2 * l2 * l2; | |
| for (var i = 0, delta, fy, fpy; i < iterations; ++i) { | |
| fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y; | |
| fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2); | |
| l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2; | |
| if (abs(delta) < epsilon2) break; | |
| } | |
| return [ | |
| M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l), | |
| asin(sin(l) / M) | |
| ]; | |
| }; | |
| export default function() { | |
| return projection(equalEarthRaw) | |
| .scale(177.158); | |
| } | |