How to Change a Shapefile's Coordinate System (Reprojection, Explained Simply)
Your Shapefile opens, but it sits in the wrong place. Or it sits in the right place in one program and the wrong place in the next. Or a partner asks for the same data in WGS 84, and your file is in a UTM zone. All three problems are one problem: the coordinate system. This guide explains it in plain words and shows you how to change it with care.
No maths is needed. You will learn what a coordinate system is, what an EPSG code is, how to find the system your file is in now, and how to reproject a file with the converter to the system your next tool wants. The worked example is a county roads file that must move from a state plane system to WGS 84 for a web map.
This is the skill that stops the most common GIS disaster: good data in the wrong place. A file can pass every count check and still be useless if its points sit 300 km from where they belong. Read the checks here with care. They are the heart of the guide.
What a Coordinate System Is, in Plain Words
Every point in a GIS file is stored as two numbers. Those numbers mean nothing on their own. A coordinate system is the rule that says what they mean: where the count starts, what unit it uses, and how the round Earth was flattened to make the grid. With the rule, the numbers are a place. Without it, they are just a pair of numbers in a file.
Two families of rules cover most work. The first counts in degrees: longitude and latitude. WGS 84 is the big name here — the system GPS uses, and the one GeoJSON demands. The second family counts in metres or feet on a flat grid made for one region: UTM zones, state plane zones, and national grids. Flat grids are better for measuring length and area in that region, since degrees stretch and shrink as you move north or south.
A datum is the base model of the Earth under the rule. WGS 84 and NAD83 are two datums that agree to within a metre or two in North America. NAD27 is an older datum that can sit 10 to 100 metres off from NAD83 in the same place. That gap is small on a world map and huge on a site plan. The datum is part of the system, not a detail.
Reprojection Is Not Renaming
To change the system, the numbers themselves must change. A point at (512300, 4102500) in a UTM zone is the same place as (-0.52, 51.30) in WGS 84 degrees — but you cannot get from one pair to the other by renaming the file or editing a label. Each point must be worked out fresh, with the rules of both systems. That work is called reprojection, or transformation.
This is where the classic fault hides. Some tools let you assign a system: you tell the program what the numbers mean, and the numbers stay the same. Assigning is right in exactly one case — when the label was wrong or missing and you know the truth. Assigning a new system to change a file is wrong in all cases: WGS 84 numbers in a file labeled UTM will render in a field in Africa, scaled to a speck.
So the rule is short. Assign to fix a missing or wrong label. Reproject to change the system. Our converter reprojects when you pick a target system, and it can assign when you type a Source EPSG for a file whose system is unknown. The next part of this guide shows how to tell which of the two your file needs. If the label is missing because the .prj part is gone, a missing .prj file is the usual cause — here is the fix in our repair guide.
Words to Know
The first two terms are the whole topic. The rest help you run the checks.
- Coordinate system (CRS). the rule that says what the numbers in a file mean. It tells a program where each point sits on Earth. Without it, numbers are just numbers.
- EPSG code. a short number that names one coordinate system. WGS 84 is EPSG 4326. Web maps often use EPSG 3857. The code is a quick, clear way to name the system.
- Feature. one real thing on the map, such as one park, one road, or one shop. A file can hold many features.
- Bounding box. the smallest box that holds all your data. It is named by its west, south, east, and north edges. A box in the wrong place is a fast sign that a file went wrong.
- Geometry. the shape of a feature. A point is one spot. A line is a path. A polygon is a closed area with an edge.
Why Change the System at All?
You change the system because the next step demands a specific one. The demands we see most:
- A web map needs WGS 84 degrees, and your file is in a flat grid in metres.
- Two layers must line up, and they are stored in two different systems.
- You must measure lengths or areas, and degrees would distort the results in your region.
- An office or a standard names a system for hand-over, by EPSG code.
- A GPS device or a phone app reads WGS 84 and nothing else.
What you do not do is change the system on a hunch. Each reprojection resamples the numbers, and repeated back-and-forth moves can add small errors to polygon edges. Pick the target the next tool truly needs, convert once, and keep the source in its native system as the master. Then convert to GeoJSON after you reproject if the web is the end goal.
A Worked Example: County Roads to WGS 84
A county sends roads as a Shapefile in a state plane system, counted in feet. Your web map needs WGS 84 degrees. One known point — the court house — lets you check the whole job:
| Check | In the source file | After reprojection to WGS 84 |
|---|---|---|
| Court house point | x 2,145,300 ft, y 612,480 ft (state plane) | Longitude -86.51, latitude 36.12 |
| Number order | East value first, north value second | Longitude first, latitude second |
| Unit | Feet | Degrees |
| Road length total | Counted in feet, true to the ground grid | Counted again after the move; must match in real terms |
| Bounds box | Big numbers in the millions | Small numbers: -87.1 to -85.9, 35.8 to 36.4 |
Read the bounds row twice. It is your fastest health check. Degree values live in a small range: longitude from -180 to 180, latitude from -90 to 90. If your output bounds show numbers in the millions, the file was renamed, not reprojected. If the input bounds show small degree-like numbers but the .prj claims metres, the label was wrong and assigning is the cure.
The road length check is the deep check. Lengths counted on a good flat grid and lengths counted from degrees with a proper tool should agree to a small margin. If the total length halves or doubles, a unit got mixed — feet read as metres is the classic — and the job must be run again with the true source system.
Keep Your Source Safe
Work on a copy, not on your only file. Save the first file in a safe place and do not change it. If a test goes wrong, you can start again from the clean source. This sounds like a small point, but it saves more work than any other habit in this guide.
Give each test a clear name. A name like test-1 tells you the order of your tries. A name like final-final-2 tells you nothing at all. When you find the settings that work, write them down in a short note next to the files. The next file of the same kind will then take minutes, not an hour.
How to Change the Coordinate System, Step by Step
Steps 1 and 2 find the truth about your file. Do not skip them to save five minutes. A reprojection from a wrong source system is worse than no reprojection at all, because the result looks clean and is wrong.
Step 1: Find the system your file is in now
Look for the .prj part in your Shapefile set. Its text names the system, the datum, and the unit. If you upload the file here first, the summary names the system it read from the .prj. Write the name and the EPSG code down. If there is no .prj, go to Step 2. If there is one, still do Step 2 — a .prj can be wrong, and it pays to check.
Step 2: Sanity-check the numbers against the label
Look at the bounds in the summary. Numbers in the millions mean a flat grid in metres or feet. Numbers with longitude in the -180 to 180 range and latitude in -90 to 90 mean degrees. If the bounds and the .prj label tell two different stories, trust the bounds: the label is wrong, and you should assign the true system in the next step, not reproject from the false one.
Step 3: Set the source system — assign only if it was wrong or missing
If the summary already names the right system, leave the source alone. If it says unknown, or names a system the bounds disprove, type the true source EPSG code in the Source EPSG box. That act is assigning: it tells the tool what the numbers mean. Pick from the list if your system is there — WGS 84, NAD83, your UTM zone — or type any EPSG code.
Step 4: Pick the target system your next tool needs
Choose the target from the list, or type its EPSG code. For web maps and GeoJSON, that is WGS 84, EPSG 4326. For print maps and area work, it is most often your local UTM zone or state plane. Not sure which UTM zone you are in? Zones are 6 degrees of longitude wide; the map preview check will tell you at once if you picked the zone next door. Our notes on which format keeps your coordinate system clearest may also help if the format itself is still in play.
Step 5: Run the conversion and read the new bounds
Click Convert. In the report, read the new bounds first. For a degrees target, they must sit in the degree ranges and in the right part of the world: negative longitude and positive latitude for the northern Americas, for example. Then read the feature counts. Reprojection must not change counts at all. Same roads in, same roads out.
Step 6: Check one known point by hand
Take one place you know — an office, a bridge, a court house — and find its point or vertex in the output. Compare its new numbers to a trusted source: a phone GPS reading, or a web map's coordinate readout for that spot. They should agree to a few metres for survey-grade needs, and to a street's width for most web work. One true point proves the system more than any label does.
Step 7: Save the result with the system in the name
Name the output so the system travels with it: roads-wgs84-2026-11-07.zip or roads-utm16n.zip. Keep the source file under its own name, untouched. In the project note, write both systems and the date. Three months from now, that note is the difference between a fact and a guess.
How to Check Your Result
Never trust a conversion you have not checked. The good news is that a sound check takes just a few minutes, and it is the same each time you work on a reprojection job.
First, match the counts. The report shows how many features went in and how many came out. The two counts should be the same. If the output count is lower, a step dropped data, and you should find out why before you share the file.
Next, look at the map preview. Your data should sit in the right town, state, or sea. If it sits in the ocean, or on the wrong side of the world, the coordinate system is the prime suspect. Zoom in on one place you know well and check that roads, parks, or points fall where they should.
Then check the fields. Open the field list in the report and read the names. Make sure the key fields are still there, with the right names and the right kind of values. Pick one feature you know and match each value back to the source by hand.
- Overlay check: if you have the old layer and the new layer in one map view with reprojection on the fly, they should sit on top of each other, edge for edge.
- Measure one known length in the output — a runway, a bridge, a mile section line — and match it to the real-world length.
- Check a point near the edge of your area, not just the centre. Datum and zone faults grow toward the edges.
Last, keep the source file. Save the result with a clear name that holds the date and the format, like parks-geojson-2026-11-07.zip. Keep the source and the result in one folder. If a question comes up next month, you can trace each feature back to where it came from.
Common Mistakes and How to Fix Them
The Output Is a Speck in the Ocean
The file was assigned a new label instead of reprojected, at some stage. Degrees data labeled as a flat grid renders near the origin of that grid. Cure: start from the source, set the true source system, pick the target, and let the tool reproject. Never fix this by editing the .prj text by hand.
The Data Is Right but Shifted by About 100 Metres
That is a datum shift, most often NAD27 data read as NAD83 or WGS 84. The shift is smooth and near-constant across a county, which makes it easy to miss. Cure: set the source to the true datum (NAD27 is EPSG 4267) and reproject again. A uniform shift is a label problem, not bad data.
The Data Is Stretched or Squashed
A unit mix is the usual cause: feet read as metres stretches the world by about 3.28 in one axis set, and a degrees layer read as a flat grid squashes it flat. Go back to the bounds check in Step 2. The bounds tell the truth about units even when labels lie.
The Right Place, the Wrong UTM Zone
Picking the zone next door still gives a clean-looking map — in the wrong county-sized slot, or warped at the seam. Check your longitude: zone numbers run west to east, 6 degrees per zone. The preview check against a known town catches this at once, if you look at the names on the base map and not just the shapes.
Counts Changed After Reprojection
They should not. Reprojection moves points; it does not add or drop features. If counts changed, the job did more than reproject — or the file had faults the tool reported. Read the full report, and if a feature was dropped for a geometry fault, fix that feature in the source and run the whole job again.
What the Plans Allow
You can start free. The Free plan gives you 5 conversions a month, with one file at a time and a size limit of 25 MB per file. That is enough to test a county file that must change systems on real data and check the result with care.
Starter costs $9 a month. It gives you 200 conversions a month, files up to 500 MB, and batch jobs of up to 10 files at once. Pro costs $19 a month. It gives you 1,000 conversions a month, files up to 5 GB, batch jobs of up to 25 files, and API access for work you run on a schedule. You can look at the plan limits for large files before you pick.
All plans work the same way at the core. You get a map preview, feature counts in and out, and a clear report if a file has a fault. Your files are kept for 72 hours so you can download them again, and then they are deleted.
Frequently Asked Questions
What EPSG code do I need for a normal web map?
EPSG 4326, WGS 84, in longitude and latitude degrees. That is what GeoJSON uses and what web map libraries expect. Some web maps draw in EPSG 3857 (Web Mercator) but take data in 4326 and convert it in the browser, so 4326 is still the right hand-over form.
My file has no .prj. Can I still reproject it?
Yes, if you know the true source system. Type its EPSG code as the source, and the tool assigns that meaning to the numbers and then reprojects. If you do not know the true system, find out first — from the sender, or by testing the likely systems and checking a known point. A guessed system gives a confident, wrong map.
Is WGS 84 the same as NAD83?
Close, but not the same. In North America they agree to a metre or two for most uses, and web maps treat them as one. For survey or legal work, that gap matters, and the systems must be named and handled as distinct. Know which grade your job needs before you call the difference small.
Will reprojection change my areas and lengths?
The true area of a field does not change because you recount it. But numbers counted from a poor system can be off. Count lengths and areas in a flat local system, not in degrees. If you reproject to degrees for the web, do your measuring on the flat-grid copy and publish the degree copy.
Can I reproject a GeoJSON or GeoPackage too?
Yes. The steps are the same: confirm the source system, pick the target, run, and check bounds and a known point. GeoJSON sources should already be WGS 84; if the bounds say otherwise, the file was made loose and needs assigning first, like a Shapefile with a wrong .prj.
Final Checklist
Run through this short list before you share your file:
- Source system named from the .prj and proved by the bounds.
- Target system picked for the next tool, by name and EPSG code.
- Output bounds sit in the right ranges and the right part of the world.
- Feature counts are unchanged, and one known point matches a trusted source.
- Output name holds the system, and the project note holds both systems and the date.
If each point passes, your file is ready to use.
References
- https://epsg.org/home.html — The EPSG Geodetic Parameter Dataset home. It is the official register of coordinate systems and their codes.
- https://www.usgs.gov/programs/national-geospatial-program/national-map — The USGS National Map program page, on the national geospatial data built on named coordinate systems.
- https://gdal.org/en/stable/drivers/vector/shapefile.html — The GDAL Shapefile driver notes, including how the .prj file is read to identify the system.