Map Projections
May 7, 2026 · View on GitHub
Any PROJ projection string can be supplied as the p.crs URL parameter on the /dali endpoint. The test suite exercises the full set of projections supported by the installed PROJ library using the map test product.
Contents
Test Product
The map product (test/dali/customers/test/products/map.json) renders:
- A blue ocean polygon covering the full world extent
- Natural Earth
admin_0_countriescoastlines and land fills - A 10° graticule grid
Additional per-test parameters override the projection's center (p.cx, p.cy), output size (p.xsize, p.ysize), and resolution (p.resolution, in km/pixel). Test inputs are in test/input/map_*.get and PNG renderings in docs/images/maps/.
Unsupported Projections
The following projections are listed in test/input/.testignore and excluded from the test suite.
PROJ 7 rendering defect (interrupts placed at wrong locations):
| Test | PROJ String |
|---|---|
map_isea | +proj=isea |
Not working — given up on:
| Test | PROJ String |
|---|---|
map_aeqd | +proj=aeqd |
map_bertin1953 | +proj=bertin1953 |
map_bipc | +proj=bipc +ns |
map_ccon | +proj=ccon +lat_1=60 +lat_2=70 |
map_chamb | +proj=chamb +lat_1=45 +lon_1=-30 +lon_2=30 |
map_gnom | +proj=gnom |
map_imw_p | +proj=imw_p +lat_1=30 +lat_2=60 |
map_lsat | +proj=lsat +lsat=1 +path=1 |
map_murd2 | +proj=murd2 +lat_1=30 +lat_2=50 |
map_nicol | +proj=nicol |
map_nsper | +proj=nsper +h=1000000 +lat_0=60 +lon_0=25 |
map_ob_tran | +proj=ob_tran +o_proj=latlong +o_lat_p=45 +o_lon_p=0 +lon_0=0 |
map_omerc | +proj=omerc +lat_0=45 +lonc=20 +alpha=15 +k=1 +x_0=0 +y_0=0 |
map_pconic | +proj=pconic +lat_1=30 +lat_2=60 |
map_peirce_q | +proj=peirce_q |
map_roteqc | +proj=ob_tran +o_proj=eqc +o_lon_p=0 +o_lat_p=30 +lon_0=0 |
map_rotlatlon | +proj=ob_tran +o_proj=longlat +o_lon_p=0 +o_lat_p=30 +lon_0=0 |
map_tcc | +proj=tcc |
map_tcea | +proj=tcea |
Note: map_bipc, map_roteqc, and map_rotlatlon do produce PNG output (shown in the alphabetical index below) but their rendering is not considered reliable.
Projections by Type
Cylindrical
Cylindrical projections map the sphere onto a cylinder.
| Test | PROJ String / EPSG | Description | Output |
|---|---|---|---|
map_merc | +proj=merc | Mercator — conformal, shapes preserved, area greatly distorted near poles | ![]() |
map_webmercator | EPSG:3857 | Web Mercator — de-facto standard for web tile services | ![]() |
map_tmerc | +proj=tmerc | Transverse Mercator — conformal, accurate along a central meridian | ![]() |
map_gstmerc | +proj=gstmerc | Gauss-Schreiber Transverse Mercator | ![]() |
map_tobmerc | +proj=tobmerc | Tobler-Mercator — variation with reduced polar distortion | ![]() |
map_eqc | EPSG:4087 | Equidistant Cylindrical — plate carrée variant, meridians and parallels equally spaced | ![]() |
map_cc | +proj=cc | Central Cylindrical — perspective projection from the Earth's centre onto a cylinder | ![]() |
map_cea | +proj=cea | Equal-Area Cylindrical — Lambert cylindrical, preserves area | ![]() |
map_mill | +proj=mill | Miller Cylindrical — compromise between Mercator and equal-area | ![]() |
map_comill | +proj=comill | Compact Miller — reduced polar extent | ![]() |
map_gall | +proj=gall | Gall Stereographic — cylindrical with standard parallels at ±45° | ![]() |
map_patterson | +proj=patterson | Patterson Cylindrical — modern compromise projection | ![]() |
map_ocea | +proj=ocea | Oblique Cylindrical Equal-Area | ![]() |
Conic
Conic projections are well-suited for mid-latitude regions.
| Test | PROJ String | Description | Output |
|---|---|---|---|
map_lcc | +proj=lcc +lon_0=-90 +lat_1=33 +lat_2=45 | Lambert Conformal Conic — conformal, standard for aviation and NWP | ![]() |
map_lcca | +proj=lcca +lat_0=35 | Lambert Conformal Conic Alternative | ![]() |
map_aea | +proj=aea +lat_1=29.5 +lat_2=42.5 | Albers Equal-Area Conic — equal-area, used for US thematic maps | ![]() |
map_leac | +proj=leac | Lambert Equal-Area Conic | ![]() |
map_eqdc | +proj=eqdc +lat_1=55 +lat_2=60 | Equidistant Conic — preserves distances along meridians | ![]() |
map_bonne | +proj=bonne +lat_1=10 | Bonne — pseudo-conic equal-area | ![]() |
map_cass | +proj=cass | Cassini-Soldner — transverse equidistant cylindrical | ![]() |
map_poly | +proj=poly | American Polyconic | ![]() |
map_rpoly | +proj=rpoly | Rectangular Polyconic | ![]() |
map_euler | +proj=euler +lat_1=67 +lat_2=75 | Euler | ![]() |
map_tissot | +proj=tissot +lat_1=60 +lat_2=65 | Tissot Conic | ![]() |
map_murd1 | +proj=murd1 +lat_1=30 +lat_2=50 | Murdoch I | ![]() |
map_murd3 | +proj=murd3 +lat_1=30 +lat_2=50 | Murdoch III | ![]() |
Azimuthal
Azimuthal projections preserve directions from the projection centre.
| Test | PROJ String / EPSG | Description | Output |
|---|---|---|---|
map_laea | +proj=laea | Lambert Azimuthal Equal-Area — equal-area, used for continental maps | ![]() |
map_stere | +proj=stere +lat_0=90 +lat_ts=75 | Polar Stereographic — conformal, standard for polar regions | ![]() |
map_sterea | +proj=sterea +lat_0=90 | Oblique Stereographic Alternative — Dutch variant used for the Netherlands | ![]() |
map_arctic | EPSG:3995 | Arctic Polar Stereographic — standard for Arctic products | ![]() |
map_antarctic | EPSG:3031 | Antarctic Polar Stereographic — standard for Antarctic products | ![]() |
map_ups | +proj=ups | Universal Polar Stereographic — polar component of the UPS military system | ![]() |
map_ortho | +proj=ortho | Orthographic — perspective view from infinity; globe appearance | ![]() |
map_airy | +proj=airy | Airy — minimum-error azimuthal | ![]() |
map_rouss | +proj=rouss | Roussilhe Stereographic | ![]() |
map_tpers | +proj=tpers +h=5500000 +lat_0=40 | Tilted Perspective — satellite view from finite altitude with tilt | ![]() |
map_tpeqd | +proj=tpeqd +lat_1=60 +lat_2=65 | Two-Point Equidistant | ![]() |
map_aitoff | +proj=aitoff | Aitoff — modified azimuthal, world map | ![]() |
map_hammer | +proj=hammer | Hammer & Eckert-Greifendorff — equal-area modified azimuthal | ![]() |
Pseudocylindrical
Pseudocylindrical projections have straight parallels but curved meridians.
| Test | PROJ String | Description | Output |
|---|---|---|---|
map_sinu | +proj=sinu | Sinusoidal (Sanson-Flamsteed) — equal-area, simple formula | ![]() |
map_moll | +proj=moll | Mollweide — equal-area ellipse | ![]() |
map_robin | +proj=robin | Robinson — compromise, formerly used by National Geographic | ![]() |
map_natearth | +proj=natearth | Natural Earth — smooth compromise, widely used for thematic maps | ![]() |
map_natearth2 | +proj=natearth2 | Natural Earth II — variation with flatter poles | ![]() |
map_natearth_shifted | +proj=natearth +lon_0=90 | Natural Earth (Pacific-centred) | ![]() |
map_eqearth | +proj=eqearth | Equal Earth — equal-area, published 2018 | ![]() |
map_wintri | +proj=wintri | Winkel Tripel — compromise minimising distance/area/angle distortions; used by National Geographic since 1998 | ![]() |
map_wink1 | +proj=wink1 | Winkel I | ![]() |
map_wink2 | +proj=wink2 | Winkel II | ![]() |
map_eck1 | +proj=eck1 | Eckert I | ![]() |
map_eck2 | +proj=eck2 | Eckert II | ![]() |
map_eck3 | +proj=eck3 | Eckert III | ![]() |
map_eck4 | +proj=eck4 | Eckert IV — equal-area | ![]() |
map_eck5 | +proj=eck5 | Eckert V | ![]() |
map_eck6 | +proj=eck6 | Eckert VI — equal-area | ![]() |
map_wag1 | +proj=wag1 | Wagner I — equal-area | ![]() |
map_wag2 | +proj=wag2 | Wagner II | ![]() |
map_wag3 | +proj=wag3 | Wagner III | ![]() |
map_wag4 | +proj=wag4 | Wagner IV — equal-area | ![]() |
map_wag5 | +proj=wag5 | Wagner V | ![]() |
map_wag6 | +proj=wag6 | Wagner VI | ![]() |
map_wag7 | +proj=wag7 | Wagner VII — equal-area azimuthal hybrid | ![]() |
map_kav5 | +proj=kav5 | Kavraiskiy V | ![]() |
map_kav7 | +proj=kav7 | Kavraiskiy VII | ![]() |
map_crast | +proj=crast | Craster Parabolic — equal-area | ![]() |
map_boggs | +proj=boggs | Boggs Eumorphic — equal-area | ![]() |
map_hatano | +proj=hatano | Hatano Asymmetrical Equal-Area — different standard parallels in N and S hemispheres | ![]() |
map_fouc | +proj=fouc | Foucaut — equal-area | ![]() |
map_fouc_s | +proj=fouc_s | Foucaut Sinusoidal — blend of sinusoidal and cylindrical | ![]() |
map_qua_aut | +proj=qua_aut | Quartic Authalic — equal-area | ![]() |
map_nell | +proj=nell | Nell | ![]() |
map_nell_h | +proj=nell_h | Nell-Hammer | ![]() |
map_loxim | +proj=loxim | Loximuthal | ![]() |
map_putp1 | +proj=putp1 | Putnins P1 | ![]() |
map_putp2 | +proj=putp2 | Putnins P2 | ![]() |
map_putp3 | +proj=putp3 | Putnins P3 | ![]() |
map_putp3p | +proj=putp3p | Putnins P3' | ![]() |
map_putp4p | +proj=putp4p | Putnins P4' | ![]() |
map_putp5 | +proj=putp5 | Putnins P5 | ![]() |
map_putp5p | +proj=putp5p | Putnins P5' | ![]() |
map_putp6 | +proj=putp6 | Putnins P6 | ![]() |
map_putp6p | +proj=putp6p | Putnins P6' | ![]() |
map_collg | +proj=collg | Collignon — equal-area triangle shape | ![]() |
map_denoy | +proj=denoy | Denoyer Semi-Elliptical | ![]() |
map_fahey | +proj=fahey | Fahey | ![]() |
map_gn_sinu | +proj=gn_sinu +m=2 +n=3 | General Sinusoidal Series | ![]() |
map_urmfps | +proj=urmfps +n=0.5 | Urmaev Flat-Polar Sinusoidal | ![]() |
map_urm5 | +proj=urm5 +n=0.9 +alpha=2 +q=4 | Urmaev V | ![]() |
map_weren | +proj=weren | Werenskiold I | ![]() |
map_larr | +proj=larr | Larrivée | ![]() |
map_lask | +proj=lask | Laskowski | ![]() |
map_times | +proj=times | Times | ![]() |
map_mbt_fps | +proj=mbt_fps | McBryde-Thomas Flat-Polar Sinusoidal — equal-area | ![]() |
map_mbtfps | +proj=mbtfps | McBryde-Thomas Flat-Polar Sinusoidal (alt.) — equal-area | ![]() |
map_mbt_s | +proj=mbt_s | McBryde-Thomas Flat-Polar Sinusoidal (var.) — equal-area | ![]() |
map_mbtfpp | +proj=mbtfpp | McBryde-Thomas Flat-Polar Parabolic — equal-area | ![]() |
map_mbtfpq | +proj=mbtfpq | McBryde-Thomas Flat-Polar Quartic — equal-area | ![]() |
Globular and Polyhedral
These projections use unconventional boundaries for artistic or special purposes.
| Test | PROJ String | Description | Output |
|---|---|---|---|
map_adams_hemi | +proj=adams_hemi | Adams Hemisphere-in-a-Square — conformal, entire hemisphere in a square | ![]() |
map_adams_ws1 | +proj=adams_ws1 | Adams World in a Square I — conformal world map in a square | ![]() |
map_adams_ws2 | +proj=adams_ws2 | Adams World in a Square II | ![]() |
map_apian | +proj=apian | Apian Globular I | ![]() |
map_bacon | +proj=bacon | Bacon Globular | ![]() |
map_ortel | +proj=ortel | Ortelius Oval | ![]() |
map_august | +proj=august | August Epicycloidal — conformal world-in-a-circle | ![]() |
map_lagrng | +proj=lagrng | Lagrange — conformal in a circle | ![]() |
map_gins8 | +proj=gins8 | Ginsburg VIII | ![]() |
map_healpix | +proj=healpix | HEALPix — hierarchical equal-area pixelization; used in astrophysics and CMB analysis | ![]() |
Van der Grinten
| Test | PROJ String | Description | Output |
|---|---|---|---|
map_vandg | +proj=vandg | Van der Grinten I — world in a circle | ![]() |
map_vandg2 | +proj=vandg2 | Van der Grinten II | ![]() |
map_vandg3 | +proj=vandg3 | Van der Grinten III | ![]() |
map_vandg4 | +proj=vandg4 | Van der Grinten IV | ![]() |
Interrupted
Interrupted projections break the map along selected meridians to reduce distortion in landmasses or oceans.
| Test | PROJ String | Description | Output |
|---|---|---|---|
map_igh | +proj=igh | Goode Interrupted Homolosine — equal-area, interrupts over oceans | ![]() |
map_igh_o | +proj=igh_o +lon_0=-160 | Goode Interrupted Homolosine (Oceans) — interrupts over land, shows ocean continuity | ![]() |
map_igh_shifted | +proj=igh +lon_0=90 | Goode Interrupted Homolosine (shifted 90° E) | ![]() |
map_goode | +proj=goode | Goode Homolosine (uninterrupted) | ![]() |
Satellite and Perspective
| Test | PROJ String | Description | Output |
|---|---|---|---|
map_geos | +proj=geos +h=35785831 +lon_0=-60 +sweep=y | Geostationary Satellite View — view from 35786 km altitude over the Atlantic | ![]() |
map_tpers | +proj=tpers +h=5500000 +lat_0=40 | Tilted Perspective — view from 5500 km altitude with tilt | ![]() |
map_mil_os | +proj=mil_os | Miller Oblated Stereographic — used for European maps | ![]() |
Alphabetical Index
| Test | PROJ String / EPSG | PROJ Docs |
|---|---|---|
map_adams_hemi | +proj=adams_hemi | Adams Hemisphere-in-a-Square |
map_adams_ws1 | +proj=adams_ws1 | Adams World in a Square I |
map_adams_ws2 | +proj=adams_ws2 | Adams World in a Square II |
map_aea | +proj=aea +lat_1=29.5 +lat_2=42.5 | Albers Equal-Area Conic |
map_airy | +proj=airy | Airy |
map_aitoff | +proj=aitoff | Aitoff |
map_antarctic | EPSG:3031 | Polar Stereographic (South) |
map_apian | +proj=apian | Apian Globular I |
map_arctic | EPSG:3995 | Arctic Polar Stereographic |
map_august | +proj=august | August Epicycloidal |
map_bacon | +proj=bacon | Bacon Globular |
map_bipc ⚠ | +proj=bipc +ns | Bipolar Conic of Western Hemisphere |
map_boggs | +proj=boggs | Boggs Eumorphic |
map_bonne | +proj=bonne +lat_1=10 | Bonne |
map_cass | +proj=cass | Cassini-Soldner |
map_cc | +proj=cc | Central Cylindrical |
map_cea | +proj=cea | Equal-Area Cylindrical |
map_collg | +proj=collg | Collignon |
map_comill | +proj=comill | Compact Miller |
map_crast | +proj=crast | Craster Parabolic |
map_denoy | +proj=denoy | Denoyer Semi-Elliptical |
map_eck1 | +proj=eck1 | Eckert I |
map_eck2 | +proj=eck2 | Eckert II |
map_eck3 | +proj=eck3 | Eckert III |
map_eck4 | +proj=eck4 | Eckert IV |
map_eck5 | +proj=eck5 | Eckert V |
map_eck6 | +proj=eck6 | Eckert VI |
map_eqc | EPSG:4087 | Equidistant Cylindrical |
map_eqdc | +proj=eqdc +lat_1=55 +lat_2=60 | Equidistant Conic |
map_eqearth | +proj=eqearth | Equal Earth |
map_euler | +proj=euler +lat_1=67 +lat_2=75 | Euler |
map_fahey | +proj=fahey | Fahey |
map_fouc | +proj=fouc | Foucaut |
map_fouc_s | +proj=fouc_s | Foucaut Sinusoidal |
map_gall | +proj=gall | Gall Stereographic |
map_geos | +proj=geos +h=35785831 +lon_0=-60 +sweep=y | Geostationary Satellite View |
map_gins8 | +proj=gins8 | Ginsburg VIII |
map_gn_sinu | +proj=gn_sinu +m=2 +n=3 | General Sinusoidal Series |
map_goode | +proj=goode | Goode Homolosine |
map_gstmerc | +proj=gstmerc | Gauss-Schreiber Transverse Mercator |
map_hammer | +proj=hammer | Hammer & Eckert-Greifendorff |
map_hatano | +proj=hatano | Hatano Asymmetrical Equal-Area |
map_healpix | +proj=healpix | HEALPix |
map_igh | +proj=igh | Goode Interrupted Homolosine |
map_igh_o | +proj=igh_o +lon_0=-160 | Goode Interrupted Homolosine (Oceans) |
map_igh_shifted | +proj=igh +lon_0=90 | Goode Interrupted Homolosine (shifted) |
map_isea ⚠ | +proj=isea | Icosahedral Snyder Equal-Area |
map_kav5 | +proj=kav5 | Kavraiskiy V |
map_kav7 | +proj=kav7 | Kavraiskiy VII |
map_laea | +proj=laea | Lambert Azimuthal Equal-Area |
map_lagrng | +proj=lagrng | Lagrange |
map_larr | +proj=larr | Larrivée |
map_lask | +proj=lask | Laskowski |
map_lcc | +proj=lcc +lon_0=-90 +lat_1=33 +lat_2=45 | Lambert Conformal Conic |
map_lcca | +proj=lcca +lat_0=35 | Lambert Conformal Conic Alternative |
map_leac | +proj=leac | Lambert Equal-Area Conic |
map_loxim | +proj=loxim | Loximuthal |
map_mbt_fps | +proj=mbt_fps | McBryde-Thomas Flat-Polar Sinusoidal |
map_mbt_s | +proj=mbt_s | McBryde-Thomas Flat-Polar Sinusoidal (var.) |
map_mbtfpp | +proj=mbtfpp | McBryde-Thomas Flat-Polar Parabolic |
map_mbtfpq | +proj=mbtfpq | McBryde-Thomas Flat-Polar Quartic |
map_mbtfps | +proj=mbtfps | McBryde-Thomas Flat-Polar Sinusoidal (alt.) |
map_merc | +proj=merc | Mercator |
map_mil_os | +proj=mil_os | Miller Oblated Stereographic |
map_mill | +proj=mill | Miller Cylindrical |
map_moll | +proj=moll | Mollweide |
map_murd1 | +proj=murd1 +lat_1=30 +lat_2=50 | Murdoch I |
map_murd3 | +proj=murd3 +lat_1=30 +lat_2=50 | Murdoch III |
map_natearth | +proj=natearth | Natural Earth |
map_natearth2 | +proj=natearth2 | Natural Earth II |
map_natearth_shifted | +proj=natearth +lon_0=90 | Natural Earth (Pacific-centred) |
map_nell | +proj=nell | Nell |
map_nell_h | +proj=nell_h | Nell-Hammer |
map_ocea | +proj=ocea | Oblique Cylindrical Equal-Area |
map_ortel | +proj=ortel | Ortelius Oval |
map_ortho | +proj=ortho | Orthographic |
map_patterson | +proj=patterson | Patterson Cylindrical |
map_poly | +proj=poly | American Polyconic |
map_putp1 | +proj=putp1 | Putnins P1 |
map_putp2 | +proj=putp2 | Putnins P2 |
map_putp3 | +proj=putp3 | Putnins P3 |
map_putp3p | +proj=putp3p | Putnins P3' |
map_putp4p | +proj=putp4p | Putnins P4' |
map_putp5 | +proj=putp5 | Putnins P5 |
map_putp5p | +proj=putp5p | Putnins P5' |
map_putp6 | +proj=putp6 | Putnins P6 |
map_putp6p | +proj=putp6p | Putnins P6' |
map_qua_aut | +proj=qua_aut | Quartic Authalic |
map_robin | +proj=robin | Robinson |
map_roteqc ⚠ | +proj=ob_tran +o_proj=eqc +o_lon_p=0 +o_lat_p=30 +lon_0=0 | Rotated Equidistant Cylindrical |
map_rotlatlon ⚠ | +proj=ob_tran +o_proj=longlat +o_lon_p=0 +o_lat_p=30 +lon_0=0 | Rotated Geographic |
map_rouss | +proj=rouss | Roussilhe Stereographic |
map_rpoly | +proj=rpoly | Rectangular Polyconic |
map_sinu | +proj=sinu | Sinusoidal (Sanson-Flamsteed) |
map_stere | +proj=stere +lat_0=90 +lat_ts=75 | Stereographic (polar, true scale at 75°N) |
map_sterea | +proj=sterea +lat_0=90 | Oblique Stereographic Alternative |
map_times | +proj=times | Times |
map_tissot | +proj=tissot +lat_1=60 +lat_2=65 | Tissot Conic |
map_tmerc | +proj=tmerc | Transverse Mercator |
map_tobmerc | +proj=tobmerc | Tobler-Mercator |
map_tpeqd | +proj=tpeqd +lat_1=60 +lat_2=65 | Two-Point Equidistant |
map_tpers | +proj=tpers +h=5500000 +lat_0=40 | Tilted Perspective |
map_ups | +proj=ups | Universal Polar Stereographic |
map_urm5 | +proj=urm5 +n=0.9 +alpha=2 +q=4 | Urmaev V |
map_urmfps | +proj=urmfps +n=0.5 | Urmaev Flat-Polar Sinusoidal |
map_vandg | +proj=vandg | Van der Grinten I |
map_vandg2 | +proj=vandg2 | Van der Grinten II |
map_vandg3 | +proj=vandg3 | Van der Grinten III |
map_vandg4 | +proj=vandg4 | Van der Grinten IV |
map_wag1 | +proj=wag1 | Wagner I |
map_wag2 | +proj=wag2 | Wagner II |
map_wag3 | +proj=wag3 | Wagner III |
map_wag4 | +proj=wag4 | Wagner IV |
map_wag5 | +proj=wag5 | Wagner V |
map_wag6 | +proj=wag6 | Wagner VI |
map_wag7 | +proj=wag7 | Wagner VII |
map_webmercator | EPSG:3857 | Web Mercator |
map_weren | +proj=weren | Werenskiold I |
map_wink1 | +proj=wink1 | Winkel I |
map_wink2 | +proj=wink2 | Winkel II |
map_wintri | +proj=wintri | Winkel Tripel |
⚠ = listed in .testignore; output may be rendered but is not considered reliable.




















































































































