
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
import {abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt} from "../math.js";
import {conicProjection} from "./conic.js";
import {cylindricalEqualAreaRaw} from "./cylindricalEqualArea.js";
export function conicEqualAreaRaw(y0, y1) {
var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;
// Are the parallels symmetrical around the Equator?
if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);
var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;
function project(x, y) {
var r = sqrt(c - 2 * n * sin(y)) / n;
return [r * sin(x *= n), r0 - r * cos(x)];
}
project.invert = function(x, y) {
var r0y = r0 - y,
l = atan2(x, abs(r0y)) * sign(r0y);
if (r0y * n < 0)
l -= pi * sign(x) * sign(r0y);
return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];
};
return project;
}
export default function() {
return conicProjection(conicEqualAreaRaw)
.scale(155.424)
.center([0, 33.6442]);
}