|
- import {geoProjection as projection} from "d3-geo";
- import {abs, epsilon} from "./math.js";
-
- export function ginzburg8Raw(lambda, phi) {
- var lambda2 = lambda * lambda,
- phi2 = phi * phi;
- return [
- lambda * (1 - 0.162388 * phi2) * (0.87 - 0.000952426 * lambda2 * lambda2),
- phi * (1 + phi2 / 12)
- ];
- }
-
- ginzburg8Raw.invert = function(x, y) {
- var lambda = x,
- phi = y,
- i = 50, delta;
- do {
- var phi2 = phi * phi;
- phi -= delta = (phi * (1 + phi2 / 12) - y) / (1 + phi2 / 4);
- } while (abs(delta) > epsilon && --i > 0);
- i = 50;
- x /= 1 -0.162388 * phi2;
- do {
- var lambda4 = (lambda4 = lambda * lambda) * lambda4;
- lambda -= delta = (lambda * (0.87 - 0.000952426 * lambda4) - x) / (0.87 - 0.00476213 * lambda4);
- } while (abs(delta) > epsilon && --i > 0);
- return [lambda, phi];
- };
-
- export default function() {
- return projection(ginzburg8Raw)
- .scale(131.747);
- }
|