You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
656 B
26 lines
656 B
import {geoProjection as projection} from "d3-geo";
|
|
import {asin, cos, sin, sqrt} from "./math.js";
|
|
|
|
var sqrt6 = sqrt(6),
|
|
sqrt7 = sqrt(7);
|
|
|
|
export function mtFlatPolarParabolicRaw(lambda, phi) {
|
|
var theta = asin(7 * sin(phi) / (3 * sqrt6));
|
|
return [
|
|
sqrt6 * lambda * (2 * cos(2 * theta / 3) - 1) / sqrt7,
|
|
9 * sin(theta / 3) / sqrt7
|
|
];
|
|
}
|
|
|
|
mtFlatPolarParabolicRaw.invert = function(x, y) {
|
|
var theta = 3 * asin(y * sqrt7 / 9);
|
|
return [
|
|
x * sqrt7 / (sqrt6 * (2 * cos(2 * theta / 3) - 1)),
|
|
asin(sin(theta) * 3 * sqrt6 / 7)
|
|
];
|
|
};
|
|
|
|
export default function() {
|
|
return projection(mtFlatPolarParabolicRaw)
|
|
.scale(164.859);
|
|
}
|
|
|