How to Find the Projection of a GeoJSON File (When Coordinates Are Wrong)
You've loaded a GeoJSON file into your map, and instead of seeing your data in California, you're looking at a tiny speck near Africa—or nothing at all. Or maybe your polygons are microscopic dots near the equator.
Welcome to one of GIS's most frustrating quirks: GeoJSON files with the wrong projection.
This guide explains why this happens and how to fix it.
Table of Contents
Quick Solution: Use Projection Finder
Projection Finder detects this problem automatically:
- Upload your GeoJSON — Drag and drop the file
- Detects coordinate mismatch — Identifies if coordinates look projected, not geographic
- Suggests likely CRS — Based on coordinate ranges and patterns
- Preview on map — Test different projections to find the right one
- Export corrected GeoJSON — Reproject to proper WGS84
Fix Your GeoJSON Now
Upload your file and see where the coordinates actually belong on the map.
Open Projection FinderThe GeoJSON Spec Problem
Here's the core issue:
The GeoJSON specification (RFC 7946) requires all coordinates to be in WGS84 (EPSG:4326)—longitude first, latitude second: [lon, lat]
There is no mechanism in GeoJSON to specify a different coordinate system. The spec assumes WGS84. Period.
But in practice, many tools export GeoJSON with projected coordinates:
- CAD exports that don't reproject
- GIS tools with the wrong settings
- Scripts that copy coordinates without transformation
- Legacy systems that predate the RFC 7946 spec
The result? Files that look like valid GeoJSON but have coordinates in meters (UTM, State Plane) instead of degrees (WGS84).
What This Looks Like
Correct GeoJSON (WGS84)
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
}
}
Coordinates: [-122.4194, 37.7749] — San Francisco
Broken GeoJSON (Projected Coordinates)
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [552474.23, 4182938.15]
}
}
Coordinates: [552474.23, 4182938.15] — UTM meters, but interpreted as degrees
Result: The viewer interprets 552474 as longitude (impossible—max is 180) and either errors out, wraps the coordinates, or shows a point at a meaningless location.
How to Identify the Problem
Symptom 1: Data Appears at 0°, 0°
Your features cluster near the Gulf of Guinea (where the equator meets the prime meridian). This happens when large projected numbers get truncated or wrapped.
Symptom 2: Features Are Microscopic
Your polygons appear as tiny dots. This happens when meter values (like 500,000) are interpreted as fractions of a degree.
Symptom 3: Nothing Shows at All
Some viewers reject coordinates outside valid lat/lon ranges (-180 to 180, -90 to 90). If your UTM easting is 552474, that's not a valid longitude, so the viewer shows nothing.
Quick Diagnostic: Look at the Coordinates
Open your GeoJSON in a text editor and find the coordinates arrays:
| Coordinate Range | What It Means |
|---|---|
[-180, 180] and [-90, 90] |
Valid WGS84—this is correct |
| Large numbers (100,000+) | Projected coordinates—needs conversion |
Numbers like [529090, 181440] |
Likely British National Grid |
Numbers like [552474, 4182938] |
Likely UTM |
Finding the Actual Projection
Once you've confirmed your GeoJSON has projected coordinates, you need to identify which projection.
Method 1: Use Projection Finder (Fastest)
- Go to projectionfinder.com
- Drop your GeoJSON file
- Tool detects "coordinates don't look like WGS84"
- Suggests likely projections based on coordinate patterns
- Preview each option until the map shows the right location
Method 2: Context Clues
Ask yourself:
- Where is this data supposed to be? — If California, check UTM Zone 10N or California State Plane
- Where did the file come from? — CAD exports often use local coordinates; government data uses regional projections
- Is there accompanying documentation? — Metadata files or README might specify the CRS
Method 3: Coordinate Range Analysis
| X Range | Y Range | Likely Projection |
|---|---|---|
| 100K - 900K | 0 - 10M | UTM (various zones) |
| 0 - 700K | 0 - 1.3M | British National Grid (EPSG:27700) |
| 100K - 3M | 0 - 500K | US State Plane (various zones) |
| -20M - 20M | -20M - 20M | Web Mercator (EPSG:3857) |
How to Fix the GeoJSON
Once you know the source projection, you need to reproject the coordinates to WGS84.
Option 1: Use Projection Finder
Projection Finder can export your data as properly-projected WGS84 GeoJSON once you've identified the source CRS.
Option 2: QGIS
- Open QGIS
- Drag your GeoJSON file onto the map
- When prompted for CRS, enter the source projection (e.g., EPSG:32610 for UTM Zone 10N)
- Right-click the layer → Export → Save Features As
- Set CRS to EPSG:4326 (WGS84)
- Save as GeoJSON
Option 3: Python with GeoPandas
import geopandas as gpd
# Read GeoJSON with the ACTUAL source CRS
gdf = gpd.read_file('broken.geojson')
gdf = gdf.set_crs('EPSG:32610') # Source CRS (e.g., UTM Zone 10N)
# Reproject to WGS84
gdf_wgs84 = gdf.to_crs('EPSG:4326')
# Save corrected GeoJSON
gdf_wgs84.to_file('fixed.geojson', driver='GeoJSON')
Option 4: ogr2ogr (Command Line)
# Reproject from UTM Zone 10N to WGS84
ogr2ogr -f GeoJSON \
-s_srs EPSG:32610 \
-t_srs EPSG:4326 \
fixed.geojson \
broken.geojson
What About the Old "crs" Property?
You might see GeoJSON files with a "crs" member:
{
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": {
"name": "EPSG:32610"
}
},
"features": [...]
}
This is deprecated. RFC 7946 removed the crs member. Most modern tools ignore it completely and assume WGS84 regardless.
If you have a GeoJSON with a crs property, don't trust that the coordinates actually match. Verify by previewing on a map.
Frequently Asked Questions
Your GeoJSON has projected coordinates (meters) but viewers assume WGS84 (degrees). Large numbers like 552474 get interpreted incorrectly. Use Projection Finder to identify the actual CRS and reproject.
Per RFC 7946, GeoJSON MUST use WGS84 (EPSG:4326) with coordinates as [longitude, latitude]. Any other CRS violates the spec and causes compatibility issues.
First identify the source CRS using Projection Finder. Then use QGIS, Python (GeoPandas), or ogr2ogr to reproject to EPSG:4326. The coordinates will change from meters to degrees.
The crs member was removed from the GeoJSON spec in RFC 7946. Most tools ignore it and assume WGS84. The only solution is to reproject the actual coordinates to WGS84.
Technically the spec says no, but some tools handle it. For maximum compatibility, always convert to WGS84. If you need projected coordinates, consider GeoPackage instead—it properly supports CRS metadata.
Fix Your GeoJSON Coordinates
Projection Finder identifies the actual CRS and lets you export properly-formatted WGS84 GeoJSON.
Try Projection Finder FreeSummary
- GeoJSON requires WGS84 — The spec mandates
[lon, lat]in degrees - Many files violate this — Tools often export projected coordinates incorrectly
- Identify the problem — Large numbers (100,000+) indicate projected coordinates
- Find the source CRS — Use context clues or Projection Finder
- Reproject to WGS84 — QGIS, Python, or ogr2ogr can transform coordinates
Related Guides
- How to Find the Projection of a Shapefile
- How to Find the Projection of a CSV File
- How to Find the Projection of an Excel File
Related Resources
- EPSG.io — Search and lookup EPSG codes
- spatialreference.org — CRS definitions in multiple formats
- I Hate Coordinate Systems — Troubleshooting guide for projection problems