QGIS Coordinate Transformation & CRS Reprojection Guide

Key Takeaways for GIS Professionals

  • Layer CRS vs Project CRS: Changing Layer CRS properties only changes how QGIS interprets raw coordinates; it does not re-project data. Use Export -> Save Features As to permanently transform coordinates.
  • On-The-Fly (OTF) Reprojection: QGIS projects layers into the project's view CRS dynamically using PROJ engine pipelines.
  • Grid Shift (.gsb) Files: Required for sub-meter accuracy between local datum transformations (e.g. NAD27 to NAD83 or Tokyo Datum to JGD2011).

1. Layer CRS vs. Project CRS in QGIS

A common pitfall in QGIS occurs when vector data fails to align on OpenStreetMap tiles. This usually stems from confusing the layer's native Coordinate Reference System (CRS) with the canvas project CRS.

# Check EPSG Code in Python QGIS Console
layer = iface.activeLayer()
print("Layer EPSG:", layer.crs().authid()) # e.g. EPSG:4326 (WGS 84)
print("Project EPSG:", QgsProject.instance().crs().authid()) # e.g. EPSG:3857 (Web Mercator)

2. How to Permanently Reproject a Layer

To convert a shapefile or GeoJSON from WGS84 (EPSG:4326) to UTM (e.g. EPSG:32633 for Zone 33N):

  1. Right-click the layer in the Layers Panel.
  2. Select ExportSave Features As...
  3. In the dialog, set CRS to EPSG:32633 - WGS 84 / UTM zone 33N.
  4. Choose file format (GeoJSON, GeoPackage, Shapefile) and set filename.
  5. Click OK. QGIS will recalculate every vertex coordinate.

Need Quick Single Point Verification?

If you want to verify individual coordinate points in WGS84, UTM, or MGRS instantly without opening QGIS, use our free online converter tools:

Lat/Long → UTM Converter Universal Coordinate Sandbox