EPSG Reprojector & Coordinate Converter
Reproject data between common EPSG codes (offline)
What Is an EPSG Reprojector?
An EPSG reprojector is a tool that transforms spatial data from one coordinate reference system (CRS) to another using the European Petroleum Survey Group (EPSG) code catalog as a common identifier. If you have ever needed to reproject GeoJSON, convert a shapefile from EPSG:4326 to EPSG:3857 (Web Mercator), or move a layer from a regional grid like British National Grid (EPSG:27700) into lat/lon, you were reaching for a coordinate system converter β and an EPSG reprojector is the most direct way to do that job.
The EPSG registry assigns a numeric code to every published coordinate reference system, datum, projection, and transformation in the world β more than 6,000 entries. Instead of describing a projection with a wall of parameters, an EPSG code compresses all that information into a single integer: 4326 is WGS84 lat/lon, 3857 is Web Mercator, 4269 is NAD83, 2193 is New Zealand Transverse Mercator. Because the codes are globally unique and well documented, they are the lingua franca of geospatial software β every serious library, from GDAL and PROJ to GeoPandas, PostGIS, QGIS, ArcGIS, and MapLibre, speaks EPSG.
Our EPSG Reprojector & Coordinate Converter runs entirely in your browser. Drop in a GeoJSON FeatureCollection, a Shapefile zip, WKT geometries, or a CSV of points, pick source and target EPSG codes, and get a reprojected file you can download, inspect, and hand off to the next step of your pipeline. There is no upload, no account, and no server round-trip β reprojection is done locally by proj4js, the same math used by many of the libraries you already trust.
How EPSG Reprojection Works
The Three Steps of Every Reprojection
Every reprojection, regardless of tool, performs three logical steps: (1) unproject coordinates from the source CRS back to geodetic latitude/longitude on the source datum, (2) if the source and target datums differ, apply a datum transformation (often a Helmert 7-parameter shift or a grid-based NADCON/NTv2 transformation), and (3) project the resulting geodetic coordinates forward onto the target CRS. Inside our reprojector, this pipeline is executed by proj4js which implements the algorithms specified by the EPSG Geodesy subcommittee.
Conformal vs Equal-Area vs Compromise
Different projections preserve different properties. Web Mercator (EPSG:3857) is conformal β angles and shapes are preserved locally β but badly distorts area, which is why Greenland looks bigger than Africa on Google Maps. Albers Equal Area (several EPSG codes) preserves area but distorts shape. Robinson is a compromise that looks nice but is neither conformal nor equal-area. The reprojector doesn't pick a projection for you, but it lets you try several and visually compare them.
Datum Transformations
If you reproject from NAD27 to NAD83 the two datums differ by tens of meters in the continental US. The reprojector applies an appropriate datum shift. For high-precision survey work across NAD27/NAD83/WGS84 you may prefer a grid-based transformation; for general mapping the default Helmert shifts are accurate to a few meters and are what proj4js applies.
Key Parameters and Options
Source EPSG Code
Specify the source coordinate reference system by EPSG number. If your file includes a .prj (shapefile) or a crs member (GeoJSON), the tool detects it automatically. You can override the detection if a file is mislabeled, which is unfortunately common.
Target EPSG Code
Pick the target system by EPSG number. Common targets include 4326 (WGS84 lat/lon for GeoJSON interoperability), 3857 (Web Mercator for web maps), 4269 (NAD83), 27700 (British National Grid), 2154 (Lambert-93 for France), 25832 (ETRS89 / UTM zone 32N), and all UTM zones (326nn / 327nn).
Precision
Reduce the number of decimal places on the output to keep files small. For Web Mercator meters, three decimal places give millimeter precision, which is almost always overkill; one decimal place is plenty for mapping. For WGS84 degrees, six decimals give about 11 cm precision at the equator.
Z Coordinate Handling
If your features carry elevation (Z values), the reprojector passes them through unchanged. A full 3D geoid transformation is beyond the scope of a browser tool β for that, export to PROJ and apply a geoid grid.
Practical Applications
Web Map Publishing
The canonical web-mapping reprojection is EPSG:4326 β EPSG:3857. Browser maps from Leaflet, MapLibre, OpenLayers, and Google Maps render tiles in Web Mercator, so any GeoJSON you pull from a public catalog (which ships in WGS84 lat/lon) must be transformed before it can be drawn on pixel coordinates efficiently. The EPSG reprojector makes this a one-click operation for the GeoJSON data itself, and pairs well with the Vector Tile Packager and Online Map Viewer.
Data Interchange Between Agencies
A municipal dataset published in New York State Plane (EPSG:2263) arrives at a federal agency that standardizes on NAD83 UTM Zone 18 N (EPSG:26918). Reprojection is the only way to merge the two without visible offset. The browser reprojector lets the analyst quickly transform a shapefile to the target CRS and validate the result before committing it to a production database.
European INSPIRE Compliance
The INSPIRE directive requires that spatial datasets published across EU member states be available in ETRS89 (EPSG:4258) and often in ETRS89 / LAEA Europe (EPSG:3035) for equal-area analysis. Regional data stored in local projections β Lambert-93 (France), Gauss-KrΓΌger (Germany), Amersfoort (Netherlands) β must be transformed before publication. The reprojector supports all these codes natively.
Field Data Normalization
A drone survey in UTM Zone 11 N, a lidar scan in State Plane, and a legacy cadastral layer in NAD27 all need to overlay cleanly in one GIS project. Reprojecting each into a common target (say, EPSG:4326 for interoperability) is step zero of any multi-source analysis. The reprojector handles each source independently and emits consistent outputs.
Database Loading
PostGIS, GeoPackage, and Spatialite all store a single CRS per table. If you are ingesting data from a contractor who delivered in a different projection, reprojecting on the client before shp2pgsql saves a post-load transformation and catches misclassifications before they become permanent.
Research and Education
Graduate students in environmental science, urban studies, and archaeology often receive data in unfamiliar projections. A browser reprojector with a short learning curve gets them unblocked faster than wrestling with QGIS CRS settings for an afternoon.
Step-by-Step Workflow in gis.tools
- Open the EPSG Reprojector & Coordinate Converter in your browser.
- Drop a GeoJSON, Shapefile zip, WKT file, or CSV (with latitude/longitude columns) onto the input area.
- The tool auto-detects the source CRS from a
.prjfile orcrstag. Override if you know the file is mislabeled. - Pick a target EPSG code from the search-as-you-type picker. Common targets are pinned.
- Review the optional parameters β precision, z handling, axis order.
- Click Reproject. The output appears instantly and a map preview shows the before/after location.
- Download the reprojected file as GeoJSON, Shapefile, CSV, or WKT.
- Chain with CRS Metadata Inspector, Proj4 Coordinate Converter, or GeoJSON Validator & Fixer as needed.
Worked Example
An urban planner in London receives a shapefile of planning applications from their local authority. The file is in EPSG:27700 (OSGB36 British National Grid), but the web map application they are building uses MapLibre, which expects EPSG:3857 (Web Mercator) tiles. She drops the .zip into the EPSG reprojector, it auto-detects the .prj as EPSG:27700, she picks EPSG:3857 as the target, and in a few seconds downloads a GeoJSON with meter-based Web Mercator coordinates. She loads this into her tile-building pipeline and the application ships by end of day. Because all computation happened in the browser, the sensitive planning data never left the authority's network.
Common Pitfalls and Gotchas
- Wrong source CRS: The single most common error is assuming a file is in EPSG:4326 when it is actually in a local projection. Always verify with the CRS Metadata Inspector first.
- Axis order: EPSG:4326 officially defines axis order as (latitude, longitude) but GeoJSON and many JavaScript libraries use (longitude, latitude). The reprojector respects the GeoJSON convention but be cautious when chaining tools.
- Datum vs projection: EPSG:4326 (WGS84) and EPSG:4269 (NAD83) differ by only about a meter in most of North America, but they are different. Do not use them interchangeably.
- Polar distortion: Web Mercator is undefined above 85.06Β° N and below 85.06Β° S. Data that crosses those limits will be clipped.
- Northing-easting swap: Some EPSG codes (Swedish SWEREF99, French RGF93) officially use (north, east) order. The reprojector normalizes output to (x, y) but always double-check.
- Ring winding: Reprojection can change the winding order of polygon rings if the projection reverses orientation. Always run the GeoJSON Validator & Fixer afterward.
- Precision loss: Projecting through a low-precision intermediate can drop sub-meter detail. Keep high-precision sources in their native CRS when possible.
- Mixed CRS in one file: Some GeoJSON producers embed different CRS per feature. The reprojector assumes one CRS per file; split ahead of time if needed.
Tips for Best Results
- Always inspect source CRS metadata before reprojecting. Garbage in, garbage out.
- Prefer official EPSG codes over custom proj4 strings when possible β they are more portable.
- Keep a copy of the original in its native CRS. Reprojection is lossy for precision.
- For web maps, reproject to EPSG:3857 at publication time, not at display time.
- For analysis (areas, distances, buffers), reproject to an equal-area or equidistant projection appropriate for your region.
- Use EPSG:4326 for interchange between tools and as a "canonical" format.
- Chain the reprojector with Proj4 Coordinate Converter if you need a custom transformation not in the EPSG catalog.
Comparison with Other GIS Approaches
Compared to ogr2ogr -t_srs EPSG:3857, QGIS "Save as", or PostGIS ST_Transform, a browser-based EPSG reprojector has the advantage of zero installation and complete privacy. All three desktop options are more flexible β they support custom PROJ pipelines, geoid grids, and streaming large files β but they also require install and often configuration. For small-to-medium datasets (under ~100 MB), the browser reprojector is faster end-to-end. For gigabyte-scale batch jobs, a command-line tool is still the right answer.
Performance Considerations
proj4js is fast β on modern hardware it reprojects tens of thousands of vertices per second per thread. A GeoJSON file with 500,000 points typically reprojects in under a second. The bottleneck is usually JSON parsing and DOM rendering of the result preview, not the projection math. Files larger than ~200 MB may run into browser memory limits; in that case, split the file or use a desktop tool.
Data Privacy and Browser-Based Processing
All reprojection happens in JavaScript inside your browser tab. No file is uploaded to any server, no telemetry is sent, and nothing is cached beyond what your browser normally retains. This matters for sensitive data β national security locations, cadastral records, confidential land use plans, or unreleased research. Close the tab and everything is gone.
Related GIS Concepts
- WKT (Well-Known Text): a human-readable syntax for describing a CRS; EPSG codes are often expanded into WKT2 format.
- proj4 string: an older textual syntax for CRS definitions still supported by proj4js and PROJ.
- Geodetic datum: the reference ellipsoid and origin used to define latitude/longitude; WGS84, NAD83, and ETRS89 are common examples.
- Geoid model: a surface representing mean sea level; needed for high-precision vertical transformations.
- Grid shift files: NTv2, NADCON, and GGRS files that encode per-location datum corrections more accurately than Helmert parameters.
Frequently Asked Questions
How do I reproject a GeoJSON file?
Drop it into the reprojector, confirm the source CRS (usually EPSG:4326), pick a target EPSG code, and click Reproject. Download the result as a new GeoJSON.
Can I reproject EPSG:4326 to EPSG:3857?
Yes β this is the most common reprojection. Web Mercator (EPSG:3857) is the standard CRS for browser-based slippy maps including Leaflet, MapLibre, OpenLayers, and Google Maps tiles.
What is an EPSG code?
A unique integer assigned by the EPSG Geodesy Subcommittee to identify a coordinate reference system or transformation. EPSG:4326 is WGS84 lat/lon; EPSG:3857 is Web Mercator; EPSG:27700 is British National Grid.
Does it support custom proj4 strings?
For any CRS outside the EPSG catalog, use the companion Proj4 Coordinate Converter.
Is the reprojection accurate enough for surveying?
For general mapping, yes. For millimeter-accurate survey work you should use a grid-based datum transformation in PROJ or a commercial geodetic tool.
Related Tools on gis.tools
Related Tools
View All ToolsLat/Lon β UTM Converter
Convert between geographic (WGS84) and UTM coordinates
CRS & ProjectionsDatum Shift Visualizer
Visualize coordinate differences between datums
CRS & ProjectionsCoordinate Format Converter
Convert between DD, DMS, and MGRS coordinate formats
CRS & ProjectionsBounding Box & Buffer Helper
Calculate bounding boxes and buffers in meters at any latitude
CRS & ProjectionsArea Calculator
Calculate geodesic area of polygons accounting for Earth curvature
CRS & ProjectionsBearing & Destination
Calculate bearing and destination point from start, bearing, distance
CRS & Projections100% client-side processing - your data stays private and never leaves your device