import * as d3Geo from "d3-geo" import * as d3GeoProjection from "d3-geo-projection" export const projectionByFunctionName: { [name: string]: () => | d3Geo.GeoProjection | d3Geo.GeoConicProjection | d3GeoProjection.GeoProjection } = { geoAiry: d3GeoProjection.geoAiry, geoAitoff: d3GeoProjection.geoAitoff, geoAlbers: d3Geo.geoAlbers, geoArmadillo: d3GeoProjection.geoArmadillo, geoAugust: d3GeoProjection.geoAugust, geoAzimuthalEqualArea: d3Geo.geoAzimuthalEqualArea, geoAzimuthalEquidistant: d3Geo.geoAzimuthalEquidistant, geoBaker: d3GeoProjection.geoBaker, geoBerghaus: d3GeoProjection.geoBerghaus, geoBertin1953: d3GeoProjection.geoBertin1953, geoBoggs: d3GeoProjection.geoBoggs, geoInterruptedBoggs: d3GeoProjection.geoInterruptedBoggs, geoBonne: d3GeoProjection.geoBonne, geoBottomley: d3GeoProjection.geoBottomley, geoBromley: d3GeoProjection.geoBromley, geoPolyhedralButterfly: d3GeoProjection.geoPolyhedralButterfly, geoPolyhedralCollignon: d3GeoProjection.geoPolyhedralCollignon, geoPolyhedralWaterman: d3GeoProjection.geoPolyhedralWaterman, geoCollignon: d3GeoProjection.geoCollignon, geoConicConformal: d3Geo.geoConicConformal, geoConicEqualArea: d3Geo.geoConicEqualArea, geoConicEquidistant: d3Geo.geoConicEquidistant, geoCraig: d3GeoProjection.geoCraig, geoCraster: d3GeoProjection.geoCraster, geoCylindricalEqualArea: d3GeoProjection.geoCylindricalEqualArea, geoCylindricalStereographic: d3GeoProjection.geoCylindricalStereographic, geoEckert1: d3GeoProjection.geoEckert1, geoEckert2: d3GeoProjection.geoEckert2, geoEckert3: d3GeoProjection.geoEckert3, geoEckert4: d3GeoProjection.geoEckert4, geoEckert5: d3GeoProjection.geoEckert5, geoEckert6: d3GeoProjection.geoEckert6, geoEisenlohr: d3GeoProjection.geoEisenlohr, geoEqualEarth: d3Geo.geoEqualEarth, geoEquirectangular: d3Geo.geoEquirectangular, geoFahey: d3GeoProjection.geoFahey, geoMtFlatPolarParabolic: d3GeoProjection.geoMtFlatPolarParabolic, geoMtFlatPolarQuartic: d3GeoProjection.geoMtFlatPolarQuartic, geoMtFlatPolarSinusoidal: d3GeoProjection.geoMtFlatPolarSinusoidal, geoFoucaut: d3GeoProjection.geoFoucaut, geoFoucautSinusoidal: d3GeoProjection.geoFoucautSinusoidal, geoSatellite: d3GeoProjection.geoSatellite, geoGilbert: d3GeoProjection.geoGilbert, geoGingery: d3GeoProjection.geoGingery, geoGinzburg5: d3GeoProjection.geoGinzburg5, geoGinzburg6: d3GeoProjection.geoGinzburg6, geoGinzburg8: d3GeoProjection.geoGinzburg8, geoGinzburg9: d3GeoProjection.geoGinzburg9, geoHomolosine: d3GeoProjection.geoHomolosine, geoInterruptedHomolosine: d3GeoProjection.geoInterruptedHomolosine, geoGnomonic: d3Geo.geoGnomonic, geoGringorten: d3GeoProjection.geoGringorten, geoGringortenQuincuncial: d3GeoProjection.geoGringortenQuincuncial, geoGuyou: d3GeoProjection.geoGuyou, geoHammer: d3GeoProjection.geoHammer, geoHammerRetroazimuthal: d3GeoProjection.geoHammerRetroazimuthal, geoHealpix: d3GeoProjection.geoHealpix, geoHill: d3GeoProjection.geoHill, geoHufnagel: d3GeoProjection.geoHufnagel, geoKavrayskiy7: d3GeoProjection.geoKavrayskiy7, geoLagrange: d3GeoProjection.geoLagrange, geoLarrivee: d3GeoProjection.geoLarrivee, geoLaskowski: d3GeoProjection.geoLaskowski, geoLittrow: d3GeoProjection.geoLittrow, geoLoximuthal: d3GeoProjection.geoLoximuthal, geoMercator: d3Geo.geoMercator, geoMiller: d3GeoProjection.geoMiller, geoMollweide: d3GeoProjection.geoMollweide, geoInterruptedMollweide: d3GeoProjection.geoInterruptedMollweide, geoInterruptedMollweideHemispheres: d3GeoProjection.geoInterruptedMollweideHemispheres, geoNaturalEarth1: d3Geo.geoNaturalEarth1, geoNaturalEarth2: d3GeoProjection.geoNaturalEarth2, geoNellHammer: d3GeoProjection.geoNellHammer, geoNicolosi: d3GeoProjection.geoNicolosi, geoOrthographic: d3Geo.geoOrthographic, geoPatterson: d3GeoProjection.geoPatterson, geoPeirceQuincuncial: d3GeoProjection.geoPeirceQuincuncial, geoPolyconic: d3GeoProjection.geoPolyconic, geoRectangularPolyconic: d3GeoProjection.geoRectangularPolyconic, geoRobinson: d3GeoProjection.geoRobinson, geoSinusoidal: d3GeoProjection.geoSinusoidal, geoInterruptedSinusoidal: d3GeoProjection.geoInterruptedSinusoidal, geoSinuMollweide: d3GeoProjection.geoSinuMollweide, geoInterruptedSinuMollweide: d3GeoProjection.geoInterruptedSinuMollweide, geoStereographic: d3Geo.geoStereographic, geoTimes: d3GeoProjection.geoTimes, geoHyperelliptical: d3GeoProjection.geoHyperelliptical, geoTransverseMercator: d3Geo.geoTransverseMercator, geoVanDerGrinten: d3GeoProjection.geoVanDerGrinten, geoVanDerGrinten2: d3GeoProjection.geoVanDerGrinten2, geoVanDerGrinten3: d3GeoProjection.geoVanDerGrinten3, geoVanDerGrinten4: d3GeoProjection.geoVanDerGrinten4, geoWagner4: d3GeoProjection.geoWagner4, geoWagner6: d3GeoProjection.geoWagner6, geoWagner7: d3GeoProjection.geoWagner7, geoWiechel: d3GeoProjection.geoWiechel, geoWinkel3: d3GeoProjection.geoWinkel3, } // Taken from Projection Comparison https://observablehq.com/@d3/projection-comparison export const projections = [ { name: "Airy’s minimum error", value: d3GeoProjection.geoAiry }, { name: "Aitoff", value: d3GeoProjection.geoAitoff }, { name: "American polyconic", value: d3GeoProjection.geoPolyconic }, { name: "armadillo", value: d3GeoProjection.geoArmadillo }, { name: "August", value: d3GeoProjection.geoAugust }, { name: "azimuthal equal-area", value: d3Geo.geoAzimuthalEqualArea }, { name: "azimuthal equidistant", value: d3Geo.geoAzimuthalEquidistant }, { name: "Baker dinomic", value: d3GeoProjection.geoBaker }, { name: "Berghaus’ star", value: d3GeoProjection.geoBerghaus }, { name: "Bertin’s 1953", value: d3GeoProjection.geoBertin1953 }, { name: "Boggs’ eumorphic", value: d3GeoProjection.geoBoggs }, { name: "Boggs’ eumorphic (interrupted)", value: d3GeoProjection.geoInterruptedBoggs, }, { name: "Bonne", value: d3GeoProjection.geoBonne }, { name: "Bottomley", value: d3GeoProjection.geoBottomley }, { name: "Bromley", value: d3GeoProjection.geoBromley }, { name: "Butterfly (gnomonic)", value: d3GeoProjection.geoPolyhedralButterfly, }, { name: "Butterfly (Collignon)", value: d3GeoProjection.geoPolyhedralCollignon, }, { name: "Butterfly (Waterman)", value: d3GeoProjection.geoPolyhedralWaterman, }, { name: "Collignon", value: d3GeoProjection.geoCollignon }, // {name: "conic conformal", value: d3Geo.geoConicConformal}, // Not suitable for world maps. { name: "conic equal-area", value: d3Geo.geoConicEqualArea }, { name: "conic equidistant", value: d3Geo.geoConicEquidistant }, { name: "Craig retroazimuthal", value: d3GeoProjection.geoCraig }, { name: "Craster parabolic", value: d3GeoProjection.geoCraster }, { name: "cylindrical equal-area", value: d3GeoProjection.geoCylindricalEqualArea, }, { name: "cylindrical stereographic", value: d3GeoProjection.geoCylindricalStereographic, }, { name: "Eckert I", value: d3GeoProjection.geoEckert1 }, { name: "Eckert II", value: d3GeoProjection.geoEckert2 }, { name: "Eckert III", value: d3GeoProjection.geoEckert3 }, { name: "Eckert IV", value: d3GeoProjection.geoEckert4 }, { name: "Eckert V", value: d3GeoProjection.geoEckert5 }, { name: "Eckert VI", value: d3GeoProjection.geoEckert6 }, { name: "Eisenlohr conformal", value: d3GeoProjection.geoEisenlohr }, { name: "Equal Earth", value: d3Geo.geoEqualEarth }, { name: "Equirectangular (plate carrée)", value: d3Geo.geoEquirectangular }, { name: "Fahey pseudocylindrical", value: d3GeoProjection.geoFahey }, { name: "flat-polar parabolic", value: d3GeoProjection.geoMtFlatPolarParabolic, }, { name: "flat-polar quartic", value: d3GeoProjection.geoMtFlatPolarQuartic }, { name: "flat-polar sinusoidal", value: d3GeoProjection.geoMtFlatPolarSinusoidal, }, { name: "Foucaut’s stereographic equivalent", value: d3GeoProjection.geoFoucaut, }, { name: "Foucaut’s sinusoidal", value: d3GeoProjection.geoFoucautSinusoidal }, { name: "general perspective", value: d3GeoProjection.geoSatellite }, { name: "Gilbert’s two-world", value: d3GeoProjection.geoGilbert }, { name: "Gingery", value: d3GeoProjection.geoGingery }, { name: "Ginzburg V", value: d3GeoProjection.geoGinzburg5 }, { name: "Ginzburg VI", value: d3GeoProjection.geoGinzburg6 }, { name: "Ginzburg VIII", value: d3GeoProjection.geoGinzburg8 }, { name: "Ginzburg IX", value: d3GeoProjection.geoGinzburg9 }, { name: "Goode’s homolosine", value: d3GeoProjection.geoHomolosine }, { name: "Goode’s homolosine (interrupted)", value: d3GeoProjection.geoInterruptedHomolosine, }, { name: "gnomonic", value: d3Geo.geoGnomonic }, { name: "Gringorten square", value: d3GeoProjection.geoGringorten }, { name: "Gringorten quincuncial", value: d3GeoProjection.geoGringortenQuincuncial, }, { name: "Guyou square", value: d3GeoProjection.geoGuyou }, { name: "Hammer", value: d3GeoProjection.geoHammer }, { name: "Hammer retroazimuthal", value: d3GeoProjection.geoHammerRetroazimuthal, }, { name: "HEALPix", value: d3GeoProjection.geoHealpix }, { name: "Hill eucyclic", value: d3GeoProjection.geoHill }, { name: "Hufnagel pseudocylindrical", value: d3GeoProjection.geoHufnagel }, { name: "Kavrayskiy VII", value: d3GeoProjection.geoKavrayskiy7 }, { name: "Lagrange conformal", value: d3GeoProjection.geoLagrange }, { name: "Larrivée", value: d3GeoProjection.geoLarrivee }, { name: "Laskowski tri-optimal", value: d3GeoProjection.geoLaskowski }, // {name: "Littrow retroazimuthal", value: d3GeoProjection.geoLittrow}, // Not suitable for world maps. { name: "Loximuthal", value: d3GeoProjection.geoLoximuthal }, { name: "Mercator", value: d3Geo.geoMercator }, { name: "Miller cylindrical", value: d3GeoProjection.geoMiller }, { name: "Mollweide", value: d3GeoProjection.geoMollweide }, { name: "Mollweide (Goode’s interrupted)", value: d3GeoProjection.geoInterruptedMollweide, }, { name: "Mollweide (interrupted hemispheres)", value: d3GeoProjection.geoInterruptedMollweideHemispheres, }, { name: "Natural Earth", value: d3Geo.geoNaturalEarth1 }, { name: "Natural Earth II", value: d3GeoProjection.geoNaturalEarth2 }, { name: "Nell–Hammer", value: d3GeoProjection.geoNellHammer }, { name: "Nicolosi globular", value: d3GeoProjection.geoNicolosi }, { name: "orthographic", value: d3Geo.geoOrthographic }, { name: "Patterson cylindrical", value: d3GeoProjection.geoPatterson }, { name: "Peirce quincuncial", value: d3GeoProjection.geoPeirceQuincuncial }, { name: "rectangular polyconic", value: d3GeoProjection.geoRectangularPolyconic, }, { name: "Robinson", value: d3GeoProjection.geoRobinson }, { name: "sinusoidal", value: d3GeoProjection.geoSinusoidal }, { name: "sinusoidal (interrupted)", value: d3GeoProjection.geoInterruptedSinusoidal, }, { name: "sinu-Mollweide", value: d3GeoProjection.geoSinuMollweide }, { name: "sinu-Mollweide (interrupted)", value: d3GeoProjection.geoInterruptedSinuMollweide, }, { name: "stereographic", value: d3Geo.geoStereographic }, { name: "Times", value: d3GeoProjection.geoTimes }, { name: "Tobler hyperelliptical", value: d3GeoProjection.geoHyperelliptical }, { name: "transverse Mercator", value: d3Geo.geoTransverseMercator }, { name: "Van der Grinten", value: d3GeoProjection.geoVanDerGrinten }, { name: "Van der Grinten II", value: d3GeoProjection.geoVanDerGrinten2 }, { name: "Van der Grinten III", value: d3GeoProjection.geoVanDerGrinten3 }, { name: "Van der Grinten IV", value: d3GeoProjection.geoVanDerGrinten4 }, { name: "Wagner IV", value: d3GeoProjection.geoWagner4 }, { name: "Wagner VI", value: d3GeoProjection.geoWagner6 }, { name: "Wagner VII", value: d3GeoProjection.geoWagner7 }, { name: "Werner", value: () => d3GeoProjection.geoBonne().parallel(90) }, { name: "Wiechel", value: d3GeoProjection.geoWiechel }, { name: "Winkel tripel", value: d3GeoProjection.geoWinkel3 }, ]