How to Convert a Shapefile to GeoJSON

The Shapefile is GIS’s living fossil: a 1990s Esri format that everything still exports and every web stack has stopped wanting. Web maps — Leaflet, Mapbox, anything that speaks to a browser — want GeoJSON. The conversion itself is quick; the things that go wrong are almost always about the Shapefile’s sidecar files and its coordinate system, so this guide spends its time exactly there.

A Shapefile Is Not One File

FileHoldsIf it is missing
.shpThe geometry itselfNothing to convert — this one is mandatory
.dbfThe attribute table (names, values per feature)Features convert geometry-only, with no properties
.prjThe coordinate system definitionThe converter must assume; positions may land wrong
.shxAn index into the .shpReconstructed automatically; not a problem

This is the number one failure: someone extracts just the .shp from a ZIP and wonders where the attributes went. Keep the bundle together — upload the .shp with its .dbf and .prj alongside (or the ZIP as delivered), and everything survives the trip.

Coordinates: The Part That Silently Breaks

GeoJSON is specified (RFC 7946) as WGS84 longitude/latitude, the GPS coordinate system. Shapefiles are very often in something else — a national grid, a UTM zone, a state plane — with coordinates in meters or feet. Converting the format without reprojecting the coordinates produces a syntactically perfect GeoJSON whose points render in the ocean or not at all. Our converter reprojects to WGS84 using the .prj definition (keep that option on, and keep the .prj in the upload); if features land somewhere absurd afterwards, the .prj was missing or wrong, not the format conversion.

Convert Shapefile to GeoJSON with reprojection to WGS84 handled — preview the features before converting.

GIS Format Converter

One convention worth knowing when you inspect the output: GeoJSON stores longitude first, latitude second, the reverse of how coordinates are spoken. If your application plots everything mirrored across the globe, it is reading the axes in the wrong order; the file is fine.

Attributes and the Reverse Direction

Attributes travel well into GeoJSON: every .dbf column becomes a property on its feature, names intact. It is the reverse direction that costs — Shapefile truncates attribute names to 10 characters and holds one geometry type per file, both 1990s format restrictions rather than converter choices. So round-tripping GeoJSON → Shapefile → GeoJSON can shorten your property names; going the other way, as this guide does, loses nothing. The same tool also goes to KML for Google Earth, GPX for GPS devices, and CSV when you want the attribute table with coordinates as columns.

Frequently Asked Questions

Can I convert a Shapefile to GeoJSON online for free?

Yes — upload the Shapefile bundle (or its ZIP) to our GIS converter, preview the features on a map, and download GeoJSON. Free, no signup, and the reprojection to WGS84 that web maps require is handled in the same pass.

Why does my converted GeoJSON have no properties?

The .dbf did not make the trip. The attribute table lives in that separate sidecar file, and a lone .shp carries only geometry. Re-upload with the .dbf (and .prj) alongside and the properties come back.

Why are my features in the wrong place after converting?

A projection problem: the source coordinates were in a projected system (meters in some national grid) and were either not reprojected or reprojected with a wrong assumption because the .prj was missing. Include the .prj and keep reprojection on; GeoJSON without WGS84 coordinates is broken for the web even when the syntax validates.

Is GeoJSON better than Shapefile?

For the web, unambiguously: one readable file, no sidecars, native to every JavaScript map library. For heavy desktop analysis, GIS tools handle both, and Shapefile’s age means everything ever made can read it. The practical answer is to keep data in whichever your main tool prefers and convert at the boundary — which is what this converter is for.