The EPSG.io service helps you discover coordinate systems from across the globe, view their parameters, and choose the most suitable transformations. The service is developed and maintained by the MapTiler team.
EPSG.io serves as a custom interface to the EPSG database, offering an extensive list of projections and coordinate systems, their bounding boxes, and transformation options to enhance the precision of coordinate transformations.
Old endpoints:
Search: https://epsg.io/?q=swiss&format=json
Transform: https://epsg.io/trans?data=7.457914,46.948563&s_srs=4326&t_srs=2056
New endpoints:
Search: https://api.maptiler.com/coordinates/search/swiss.json?key=MapTiler-key
Transform:
https://api.maptiler.com/coordinates/transform/7.457914,46.948563.json?s_srs=4326&t_srs=2056&key=MapTiler-key
For more details on migration, including JSON response changes and how to get your MapTiler key, read the migration guide.
To explore coordinate reference systems, use the search bar at epsg.io. You can
search for coordinate systems, datums, ellipsoids, units, transformation operations, and more. Enter the EPSG
code (e.g., 3857
) or part of a name (e.g., pseudo-mercator
) to find what you need.
Transformation parameters are often essential for improved accuracy, especially when the source and target
coordinate reference systems use different ellipsoids. Applying the TOWGS84
parameter can
significantly enhance precision, improving transformations from meters to centimeters.
Each projection that supports multiple transformations offers a list of options on its dedicated page, such as Swiss CH1903+ / LV95 (EPSG:2056). Try selecting a different transformation if your GPS data doesn't align with the local coordinate system.
Choosing the correct transformation is also crucial for reverse transformations, such as converting local coordinates back to WGS84 (EPSG:4326). This can also help when switching to a different coordinate system or achieving greater precision.
Each coordinate reference system definition can be exported in various text formats compatible with transformation libraries and GIS tools, including OGC WKT, PROJ, ESRI WKT, PROJ4JS, GeoServer, MapServer, PostGIS, and more.
Example PROJ definition for the Pseudo Mercator CRS (EPSG:3857):
+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 +type=crs
Example ESRI WKT definition for the Pseudo Mercator CRS:
PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere", GEOGCS["GCS_WGS_1984", DATUM["D_WGS_1984", SPHEROID["WGS_1984",6378137.0,298.257223563]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]], PROJECTION["Mercator_Auxiliary_Sphere"], PARAMETER["False_Easting",0.0], PARAMETER["False_Northing",0.0], PARAMETER["Central_Meridian",0.0], PARAMETER["Standard_Parallel_1",0.0], PARAMETER["Auxiliary_Sphere_Type",0.0], UNIT["Meter",1.0]]
You do not have to rely on the web interface. EPSG.io delivers endpoints that can be automated in applications.
URL endpoint | Description | Example |
---|---|---|
https://epsg.io/{CODE} |
transformation or CRS | |
https://epsg.io/{EPSG}-{CODE} |
CRS with transformation | https://epsg.io/2056-1676 |
https://epsg.io/{EPSG}-{CODE}.{FORMAT} |
CRS with transformation in specific FORMAT | |
https://epsg.io/{CODE}-{OBJECT} |
Other types of registered OBJECTS, besides of transformation or CRS, such as prime meridian, datum, ellipsoid, … | https://epsg.io/7004-ellipsoid |
https://epsg.io/?q=KEY:VALUE[+KEY:VALUE[+…]] |
Search interface using the KEY: VALUE pairs for filtering results. List of available combinations https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems | https://epsg.io/?q=kind:COORDOP deprecated:1 |
https://epsg.io/{VALUE}-crs-{CODE} |
Search by OGC GML values (OGP, IOGP, EPSG) | https://epsg.io/epsg-crs-2065 |
https://epsg.io/urn:ogc:def:{CODE} |
Search by URN | https://epsg.io/urn:ogc:def:crs:EPSG::2056 |
Format suffix | Description | Example |
---|---|---|
wkt / ogcwkt | OGC Well Known Text | https://epsg.io/2056.wkt |
prettywkt | Styled OGC Well Known Text | https://epsg.io/2056.prettywkt |
wkt2 | OGC Well Know Text v2 | https://epsg.io/2056.wkt2 |
esriwkt | ESRI definition of Well Known Text | https://epsg.io/2056.esriwkt |
json | JSON encoded format | https://epsg.io/2056.json |
proj4 | PROJ library definition | https://epsg.io/2056.proj4 |
js / proj4js | Proj4JS implementation definition | https://epsg.io/2056.js (or .proj4js) |
geoserver | GeoServer specification | https://epsg.io/2056.geoserver |
mapfile | Usable directly in the Map Server configuration file | https://epsg.io/2056.mapfile |
mapnik | Usable directly in Mapnik configuration file | https://epsg.io/2056.mapnik |
sql | SQL statement for PostGIS or SpatialLite | https://epsg.io/2056.sql |
html | HyperText Markup Language | https://epsg.io/2056.html |
mapnik | XML with Mapnik definition | https://epsg.io/2056.mapnik |
mapnikpython | Python code for Mapnik | https://epsg.io/2056.mapnikpython |
mapserverpython | Python code for Map Server | https://epsg.io/2056.mapserverpython |
Object suffix | Description | Example |
---|---|---|
datum | Geodetic datum definition | https://epsg.io/6274-datum |
primem | Prime meridian definition | https://epsg.io/8901-primem |
ellipsoid | Reference ellipsoid definition | https://epsg.io/7004-ellipsoid |
method | Transformation method | https://epsg.io/1025-method |
cs | Coordinate system definition | https://epsg.io/1024-cs |
axis | Axis definitions | https://epsg.io/32773-axis |
area | Area valid for the coordinate system | https://epsg.io/1044-area |
units | Map units definition | https://epsg.io/9001-units |
EPSG.io is custom, open, and free service provided by MapTiler. The coordinate transformation and search functionalities are powered by the MapTiler Cloud Coordinates API, which is fully compatible with EPSG.io and also offers a /transform API endpoint for coordinate transformation and /search API endpoint for searching through coordinate systems and it's components.
The universal transform URL format is:
https://api.maptiler.com/coordinates/transform/{COORDS}.json?s_srs={CODE}&t_srs={CODE}
Parameters | Description | Example |
---|---|---|
COORDS |
Pair or triplets of coordinates separated by, More coordinates pairs are separated by ; |
17,50 17,50,300 17,50,300;17.1,50.1,310 |
s_srs | Source coordinate reference system | 4326 |
t_srs | Target coordinate reference system definition | 5514 |
ops | Coordinate transformation operation | 1623 |
Example coordinate transformation URL call:
https://api.maptiler.com/coordinates/transform/17,50.json?s_srs=4326&t_srs=5514&ops=1623
The universal search URL format is:
https://api.maptiler.com/coordinates/search/{QUERY}.json?PARAMS
Parameters | Description | Example |
---|---|---|
QUERY | Query on CRS |
2056.json swiss.json czechia deprecated:1.json |
PARAMS | Parameter for showing exports in WKT and Proj4, limit the number of results or show transformations. |
swiss.json?limit=1 swiss.json?exports=true&limit=5 |
Example coordinate search URL call:
https://api.maptiler.com/coordinates/search/swiss deprecated=0.json?exports=true&limit=5
To use MapTiler API services, you must include your MapTiler API key in all API calls by appending &key=xxxxxxxxxxxxxxxxxxxx to the URL.
A custom API key is provided upon free registration to the MapTiler Cloud platform. For more details, read the MapTiler documentation.
MapTiler Client JS is a JavaScript/TypeScript library designed for seamless integration with MapTiler services. It provides quick and easy access to the Coordinates API:
Install MapTiler SDK
npm install --save @maptiler/client
Search coordinate reference system
// in an async function, or as a 'thenable': const result = await maptilerClient.coordinates.search('mercator');
Transform coordinates
const resultA = await maptilerClient.coordinates.transform([1, 45], {targetCrs: 9793})
Read more about the MapTiler Client JS for coordinates API.
OpenLayers simplifies embedding dynamic maps into web pages. It supports displaying map tiles, vector data, and markers from any source.
In addition to rendering, OpenLayers allows on-the-fly transformation of raster and vector data. Coordinate transformations are easily handled using the Proj4js definition powered by the MapTiler Coordinates API. For more details, visit the OpenLayers Proj4js documentation.
Read MapTiler Documentation to learn how to use OpenLayers with MapTiler maps and services.