28 lines
768 B
JavaScript
28 lines
768 B
JavaScript
import {atan, exp, halfPi, log, tan} from "../math.js";
|
|
import {mercatorProjection} from "./mercator.js";
|
|
|
|
export function transverseMercatorRaw(lambda, phi) {
|
|
return [log(tan((halfPi + phi) / 2)), -lambda];
|
|
}
|
|
|
|
transverseMercatorRaw.invert = function(x, y) {
|
|
return [-y, 2 * atan(exp(x)) - halfPi];
|
|
};
|
|
|
|
export default function() {
|
|
var m = mercatorProjection(transverseMercatorRaw),
|
|
center = m.center,
|
|
rotate = m.rotate;
|
|
|
|
m.center = function(_) {
|
|
return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);
|
|
};
|
|
|
|
m.rotate = function(_) {
|
|
return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);
|
|
};
|
|
|
|
return rotate([0, 0, 90])
|
|
.scale(159.155);
|
|
}
|