diff options
author | Pirate Praveen <praveen@debian.org> | 2017-10-09 11:57:35 +0530 |
---|---|---|
committer | Pirate Praveen <praveen@debian.org> | 2017-10-09 11:57:35 +0530 |
commit | 3db5c79f87119a5b46ab63cbfa6050700a978117 (patch) | |
tree | ce0bc40cb6a86a7c0e20c6c9cbde83e18b1d9c44 /src/projection/transverseMercator.js |
Import Upstream version 1.9.0
Diffstat (limited to 'src/projection/transverseMercator.js')
-rw-r--r-- | src/projection/transverseMercator.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/projection/transverseMercator.js b/src/projection/transverseMercator.js new file mode 100644 index 0000000..822a3a4 --- /dev/null +++ b/src/projection/transverseMercator.js @@ -0,0 +1,27 @@ +import {atan, exp, halfPi, log, tan} from "../math"; +import {mercatorProjection} from "./mercator"; + +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); +} |