GeoJSON vs Shapefile: Which Format Should Planners Use?
If you work with GIS data for planning, zoning, or public notice projects, you'll encounter two formats more than any other: GeoJSON and Shapefile. Both store geographic features — parcels, boundaries, roads, zones — but they work very differently under the hood. This guide explains the practical differences and when to use each format.
What Is GeoJSON?
GeoJSON is a modern, text-based format for encoding geographic data. It uses the same JSON syntax that powers most web APIs, making it easy to read, edit, and use in web applications. A GeoJSON file is a single .geojson or .json file containing both geometry (shapes) and properties (attributes) for each feature.
Here's what a simple parcel looks like in GeoJSON:
{
"type": "Feature",
"properties": {
"APN": "123-456-789",
"OWNER": "Smith, John",
"SITUS": "100 Main St"
},
"geometry": {
"type": "Polygon",
"coordinates": [[
[-118.25, 34.05],
[-118.25, 34.06],
[-118.24, 34.06],
[-118.24, 34.05],
[-118.25, 34.05]
]]
}
}
What Is a Shapefile?
The Shapefile format was created by Esri in the early 1990s and became the de facto standard for GIS data exchange. Despite the name, a "Shapefile" is actually a collection of at least 3–4 files that must be kept together:
.shp— the geometry (shapes).dbf— the attribute data (like a database table).shx— the spatial index.prj— the coordinate system definition
Additional optional files include .cpg (character encoding), .sbn/.sbx (spatial index), and others. All files must share the same base name and be in the same folder.
Side-by-Side Comparison
| Feature | GeoJSON | Shapefile |
|---|---|---|
| File structure | Single file (.geojson) |
3–7+ files (.shp, .dbf, .shx, etc.) |
| Format type | Text (JSON) | Binary + dBASE |
| Human-readable | ✅ Yes — open in any text editor | ❌ Binary — needs GIS software |
| Max file size | No hard limit (practical: ~200 MB) | 2 GB per component file |
| Field name length | No limit | 10 characters max (dBASE limitation) |
| Coordinate system | Always WGS 84 (EPSG:4326) | Any (defined in .prj file) |
| Web browser support | ✅ Native — works with Leaflet, MapLibre, etc. | ❌ Requires conversion first |
| Desktop GIS support | ✅ QGIS, ArcGIS Pro | ✅ QGIS, ArcGIS, all major GIS |
| Mixed geometry types | ✅ Supported in one file | ❌ One geometry type per file |
| Nested properties | ✅ JSON supports nested objects | ❌ Flat table only |
| Industry adoption | Growing (web, APIs, open data) | Dominant (legacy, government, Esri) |
When to Use GeoJSON
GeoJSON is the better choice when:
- You're using web-based tools — UrbanKit Studio, Mapbox, Leaflet, and most modern mapping libraries work natively with GeoJSON
- You need a single portable file — no worrying about keeping 4+ files together
- You want to inspect or edit the data manually — open it in any text editor, VS Code, or even a browser
- Your dataset is under 50 MB — GeoJSON works well for most planning-scale datasets (a few thousand parcels, a city boundary, zoning districts)
- You're sharing data via API — GeoJSON is the standard for web-based geographic data exchange
- Field names are long or descriptive — no 10-character limit
When to Use Shapefile
Shapefile is the better choice when:
- You're working with Esri software — ArcMap, ArcGIS Pro, and ArcGIS Online all have deep Shapefile support
- Your dataset is very large — Shapefiles handle large datasets (100K+ features) more efficiently due to binary format and spatial indexing
- You need a specific coordinate system — Shapefiles can use any projection; GeoJSON is always WGS 84
- You're submitting to a government agency — many agencies still require Shapefile format for official data submissions
- You're archiving data for long-term storage — the format has been stable for 30+ years and is universally supported
How to Convert Between Formats
Shapefile → GeoJSON
- QGIS (free): Open the Shapefile → Right-click layer → Export → Save Features As → Format: GeoJSON
- ogr2ogr (command line):
ogr2ogr -f GeoJSON output.geojson input.shp - Online tools: mapshaper.org — drag in your .shp/.dbf/.shx files and export as GeoJSON
GeoJSON → Shapefile
- QGIS: Open the GeoJSON → Right-click layer → Export → Save Features As → Format: ESRI Shapefile
- ogr2ogr:
ogr2ogr -f "ESRI Shapefile" output.shp input.geojson - Online: mapshaper.org also handles this direction
OWNER_MAILING_ADDRESS becomes OWNER_MAIL. Check your field names after conversion.
What About Other Formats?
GeoJSON and Shapefile cover most planning workflows, but you may encounter these as well:
- KML/KMZ — Google Earth format. Good for visualization, less practical for data analysis. Can be converted to GeoJSON with ogr2ogr or QGIS.
- GeoPackage (.gpkg) — A modern SQLite-based format that's gaining traction as a Shapefile replacement. Supports multiple layers, large files, and long field names. QGIS and ArcGIS Pro both support it.
- File Geodatabase (.gdb) — Esri's proprietary format. Common in ArcGIS workflows but not widely supported outside the Esri ecosystem.
- CSV with coordinates — Not a spatial format per se, but common for address or point data. Works well with UrbanKit Studio's CSV to Labels Tool.
The Bottom Line for Planners
If you're doing web-based planning work — radius mailing lists, parcel lookups, interactive maps — GeoJSON is almost always the right choice. It's simpler, works in browsers, and is easy to inspect and debug.
If you're working in desktop GIS, submitting data to agencies, or dealing with very large datasets, Shapefile remains the safe default. It's universally supported and has been the standard for decades.
The good news: converting between them is easy and lossless (except for the field name length limitation). So you can work in whichever format suits your current task and convert when needed.
Working with GeoJSON parcel data?
Try the Radius Notice Mailing List Generator →
Upload a GeoJSON file to generate radius-based mailing lists and Avery 5160 labels.