d3-jsnext
Version:
d3, but futuristic
36 lines (29 loc) • 878 B
JavaScript
import { d3_geo_conic } from './conic';
import { d3_asin } from '../math/trigonometry';
import { d3$geo } from './geo';
var d3$geo$conicEqualArea;
function d3_geo_conicEqualArea(φ0, φ1) {
var sinφ0 = Math.sin(φ0),
n = (sinφ0 + Math.sin(φ1)) / 2,
C = 1 + sinφ0 * (2 * n - sinφ0),
ρ0 = Math.sqrt(C) / n;
function forward(λ, φ) {
var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;
return [
ρ * Math.sin(λ *= n),
ρ0 - ρ * Math.cos(λ)
];
}
forward.invert = function(x, y) {
var ρ0_y = ρ0 - y;
return [
Math.atan2(x, ρ0_y) / n,
d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n))
];
};
return forward;
}
(d3$geo$conicEqualArea = function() {
return d3_geo_conic(d3_geo_conicEqualArea);
}).raw = d3_geo_conicEqualArea;
export { d3$geo$conicEqualArea, d3_geo_conicEqualArea };