diff --git a/index.js b/index.js index a384b8e..0b40619 100644 --- a/index.js +++ b/index.js @@ -14,6 +14,7 @@ export {default as geoConicConformal} from "./src/projection/conicConformal"; export {default as geoConicEquidistant} from "./src/projection/conicEquidistant"; export {default as geoConicEqualArea} from "./src/projection/conicEqualArea"; export {default as geoEquirectangular} from "./src/projection/equirectangular"; +export {default as geoGnomonic} from "./src/projection/gnomonic"; export {default as geoProjection, projectionMutator as geoProjectionMutator} from "./src/projection/index"; export {default as geoMercator} from "./src/projection/mercator"; export {default as geoOrthographic} from "./src/projection/orthographic"; diff --git a/src/projection/gnomonic.js b/src/projection/gnomonic.js new file mode 100644 index 0000000..bdfa81e --- /dev/null +++ b/src/projection/gnomonic.js @@ -0,0 +1,14 @@ +import {atan, cos, sin} from "../math"; +import {azimuthalInvert} from "./azimuthal"; +import projection from "./index"; + +function gnomonic(x, y) { + var cy = cos(y), k = cos(x) * cy; + return [cy * sin(x) / k, sin(y) / k]; +} + +gnomonic.invert = azimuthalInvert(atan); + +export default function() { + return projection(gnomonic); +}