EPSG to PROJ4 / WKT Converter

Enter any EPSG code and instantly get the PROJ4 string, WKT1, and WKT2 definition — copy-ready for Leaflet, MapboxGL, PostGIS, GDAL, and QGIS.

PROJ4 String WKT1 · OGC / GDAL WKT2 · ISO 19162 120+ CRS Records
Share this tool
Quick Load:

Looking up CRS…

Enter an EPSG code to get the PROJ4 string and WKT definition ready to paste.

Try 4326, 3857, 32632, or 27700

PROJ4 Strings and WKT Definitions from EPSG Codes

A PROJ4 string is the compact projection definition used by Leaflet, GDAL, and dozens of GIS libraries to interpret coordinates. When you load a GeoTIFF, shapefile, or spatial database table, the software uses an EPSG code or PROJ4 string to know what coordinate system the data is in. This converter gives you the ready-to-paste string for any EPSG code.

EPSG code to PROJ4 string and WKT conversion diagram showing the relationship between EPSG codes, PROJ4 strings, WKT1 and WKT2 definitions used in Leaflet, PostGIS, GDAL and QGIS
An EPSG code is a numeric pointer to a full CRS definition. The PROJ4 string and WKT formats are two representations of the same spatial reference — choose the format your tool expects.

What Is a PROJ4 String?

A PROJ4 string encodes a coordinate reference system as a series of +key=value parameters. The PROJ library reads these parameters to perform coordinate transformations between CRS definitions. Every parameter describes one aspect of the projection: +proj sets the projection method, +datum or +ellps sets the reference ellipsoid, and +units sets the output unit.

For example, the PROJ4 string for EPSG:4326 is +proj=longlat +datum=WGS84 +no_defs. For EPSG:32633 (WGS84 UTM zone 33N) it is +proj=utm +zone=33 +datum=WGS84 +units=m +no_defs. The difference in the +proj and +zone parameters defines the entire projection.

What Is the Difference Between WKT1 and WKT2?

WKT 1 — OGC 01-009

The original Well-Known Text format defined by the Open Geospatial Consortium. Used by legacy GDAL versions, ESRI ArcMap, older QGIS, and many established GIS workflows. Compact but less expressive about axis order.

GEOGCS["WGS 84", DATUM[…], …]

WKT 2 — ISO 19162:2019

The modern standard used by PROJ 6+, PostGIS 3, QGIS 3.x, and GDAL 3. Explicit axis order, cleaner syntax, and better for compound CRS. Always prefer WKT2 for new workflows.

GEOGCRS["WGS 84", DATUM[…], CS[…], …]

How to Use PROJ4 Strings in Leaflet and MapboxGL

Leaflet uses the Proj4Leaflet plugin to support non-Web-Mercator projections. You register the PROJ4 string using proj4.defs() before creating the map:

proj4.defs('EPSG:32633', '+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs'); var crs = new L.Proj.CRS('EPSG:32633'); var map = L.map('map', { crs: crs });

MapboxGL and Maplibre GL use the proj4 library internally. Register the CRS with mapboxgl.setRTLTextPlugin or use the same proj4.defs() pattern before initialising the map instance.

Using EPSG Codes in PostGIS and GDAL

PostGIS stores registered EPSG codes in the spatial_ref_sys table. All standard EPSG codes are pre-loaded. To transform geometry between projections, use ST_Transform(geom, target_epsg). For example, to convert from WGS84 degrees to Web Mercator meters: ST_Transform(geom, 3857).

In GDAL, the EPSG code can be passed as EPSG:4326 to most utility commands. gdalwarp and ogr2ogr both accept it via the -t_srs flag. When working with custom or legacy projections not in the EPSG registry, use the PROJ4 string directly.

Common EPSG Codes and Their PROJ4 Strings

EPSGNamePROJ4 string
4326WGS 84+proj=longlat +datum=WGS84 +no_defs
3857WGS 84 / Pseudo-Mercator+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
32632WGS 84 / UTM zone 32N+proj=utm +zone=32 +datum=WGS84 +units=m +no_defs
32633WGS 84 / UTM zone 33N+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs
27700OSGB36 / British National Grid+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs
5070NAD83 / Conus Albers+proj=aea +lat_0=23 +lon_0=-96 +lat_1=29.5 +lat_2=45.5 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs
2193NZGD2000 / NZTM2000+proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
3035ETRS89 / LAEA Europe+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

EPSG to PROJ4 FAQ

What is the PROJ4 string for EPSG:4326?

The PROJ4 string for EPSG:4326 (WGS 84 geographic latitude/longitude) is +proj=longlat +datum=WGS84 +no_defs. This is the default CRS for GPS data, GeoJSON, and most raw coordinate data. Coordinates are in decimal degrees.

What is the PROJ4 string for EPSG:3857?

EPSG:3857 (WGS 84 / Pseudo-Mercator, also called Web Mercator) has the PROJ4 string: +proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs. This is the projection used by Google Maps, OpenStreetMap, and most web map tile services.

How do I register a custom projection in Leaflet using proj4.defs?

Include the proj4js and Proj4Leaflet scripts, then call proj4.defs('EPSG:CODE', 'PROJ4_STRING') before initialising the map. Create the CRS with new L.Proj.CRS('EPSG:CODE') and pass it to L.map('id', { crs: crs }). The EPSG code and PROJ4 string must match exactly.

How do I get the SRID in PostGIS?

PostGIS stores SRID values in the spatial_ref_sys table. To find the SRID of a geometry column, run SELECT ST_SRID(geom) FROM my_table LIMIT 1. To look up the PROJ4 definition for any SRID, run SELECT proj4text FROM spatial_ref_sys WHERE srid = 4326.

Why does my PROJ4 string have +towgs84 parameters?

The +towgs84 parameter defines a seven-parameter Helmert transformation from the datum to WGS84. It is needed for datums like OSGB36 (British National Grid) and ED50 that are not directly tied to WGS84. Modern PROJ 6+ uses authority-based datum grids instead, but PROJ4 strings with +towgs84=0,0,0,0,0,0,0 are still valid for datums that closely align with WGS84 such as ETRS89.

Should I use PROJ4 strings or EPSG codes in new projects?

Prefer EPSG codes where possible — they are shorter, unambiguous, and supported natively by PostGIS, GDAL, QGIS, and most modern GIS tools. Use PROJ4 strings when a tool does not accept EPSG codes directly (some legacy JavaScript libraries), when you need a custom or modified projection, or when debugging a coordinate transformation pipeline.