GeoJSON viewer online
Visualize, validate, edit and export GeoJSON data on an interactive map.
GeoJSON is readable in principle and unreadable in practice: a polygon is a nested array of coordinate pairs, and no amount of pretty-printing tells you whether it is the right polygon. This page parses what you paste, reports anything structurally wrong before it draws, and puts the features on a MapLibre map with per-geometry-type styling. You get a feature list with a visibility switch and a property inspector on each row, a count per geometry type, the total coordinate count, the bounding box, and a choice of coordinate precision when you export. Exports cover GeoJSON, KML, GPX and CSV, so this doubles as the quickest path from a GeoJSON file into Google Earth or a GPS device.
Key facts about GeoJSON viewer online
| Parser | The browser JSON.parse, then a structural pass. A bare geometry or a single Feature is wrapped into a FeatureCollection so it can be displayed |
|---|---|
| Validation | Warnings, not rejection: missing type, features not being an array, a feature whose type is not Feature, a missing geometry, a missing coordinates array, or an unknown geometry type |
| Geometry types | Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection are recognised by the validator |
| Map engine | MapLibre GL JS, imported on demand only when GeoJSON is loaded — it is not part of the initial page chunk |
| Basemap | OpenStreetMap raster tiles from tile.openstreetmap.org. Tile requests reveal the map area you are looking at and your IP to that server |
| Styling | Per geometry type: fill colour and opacity for polygons, stroke colour and width for lines and polygon outlines, circle colour and radius for points |
| Selection | Clicking a feature highlights it in indigo and raises polygon fill opacity from 0.35 to 0.65 |
| Feature list | Every feature with its geometry type icon, a show or hide switch, and its full property set |
| Statistics | Feature count, count per geometry type, and the total number of coordinate pairs after flattening every nested ring |
| Bounding box | Computed by walking the coordinate nesting depth appropriate to each geometry type; the map fits to it on load |
| Coordinate precision | Chosen before export and applied to every coordinate — 6 decimal places is roughly 11 cm, 4 is about 11 m |
| Export formats | GeoJSON (re-indented, precision applied), KML with Placemark names from the name property, GPX as waypoints and tracks, CSV with geometry type, latitude, longitude and every property as a column |
What happens to your file
Your GeoJSON is parsed and held in this tab and is never uploaded — there is no server that sees your geometry, your properties or your file name, and the KML, GPX and CSV exports are generated in page memory and downloaded locally. The honest exception is the basemap: the map behind your data is made of raster tiles fetched from tile.openstreetmap.org, so that tile server sees your IP address and which map squares you are viewing, which implies the rough area of your data. Your coordinates themselves are never sent in those requests. If that matters, read your features in the list and table instead of the map view.
About this tool
- 1
Paste or drop your GeoJSON
Drop a .geojson or .json file, paste the text, or load the built-in sample of European cities, a route and a zone to see the layout first.
- 2
Read the warnings before the map
Structural problems are listed rather than thrown: a feature with no geometry, an unknown geometry type or a missing coordinates array is named with its index so you can fix the source.
- 3
Check the shape on the map
The map fits to the bounding box of the data. If everything lands in the Gulf of Guinea, your coordinates are swapped — GeoJSON is longitude first.
- 4
Inspect features one at a time
Click a feature on the map or in the list to select it and see every property. Use the per-feature visibility switch to hide the rest while you look.
- 5
Restyle by geometry type
Set fill, stroke, opacity and point radius per type so polygons, lines and points stay readable against the basemap.
- 6
Export in the format the next tool wants
GeoJSON to keep everything, KML for Google Earth, GPX for a GPS device or a fitness app, CSV for a spreadsheet. Pick the coordinate precision before exporting.
| Input | Paste into the textarea, or drop a .geojson or .json file |
|---|---|
| Accepted root | FeatureCollection, a single Feature, or a bare geometry object |
| Coordinate order | GeoJSON order, longitude first then latitude — the reverse of how people usually say it |
| Datum | WGS 84, as the GeoJSON specification requires. Projected coordinates will plot in the wrong place |
| KML export | Point, LineString and Polygon outer ring; a Placemark name and description come from the name and description properties |
| GPX export | Points become waypoints, LineStrings and MultiLineStrings become tracks; polygons are not exported |
| CSV export | One row per feature with the first coordinate as latitude and longitude, plus a column for every property key found anywhere in the collection |
| Precision options | Applied to every exported coordinate, including inside KML, GPX and CSV |
| Browser support | The map needs WebGL; the feature list, validation and exports do not |
| Cost / account | Free, unlimited, no signup |
- Coordinates in GeoJSON are longitude, latitude. If your points appear off the west coast of Africa, they are reversed — that spot is where 0,0 lands.
- Trimming precision to 5 or 6 decimals before export can cut a large file substantially with no visible change: 6 decimals is about 11 centimetres.
- The total coordinate count is the real weight of a file — a single detailed coastline polygon can carry more points than a thousand markers.
- CSV export takes the first coordinate of a line or polygon as its position, so use it for point data and keep GeoJSON or KML for shapes.
- GPX has no concept of a polygon, so polygons are simply absent from a GPX export — convert them to line strings first if you need them on a device.
- The property inspector is the fastest way to catch a property that is a stringified number, which breaks styling and filtering downstream.
- Hide features rather than editing the source when you want to check whether one outlier is skewing the bounding box.
- Interactive map with OpenStreetMap basemap
- Structure warnings with feature indexes
- Per-feature visibility and property inspector
- Per-geometry-type styling
- Geometry type counts and coordinate totals
- Bounding box with auto fit
- Coordinate precision control
- GeoJSON, KML, GPX and CSV export
- Checking that a GeoJSON export from a GIS or an API actually plots where it should.
- Converting a GeoJSON route into GPX for a handheld GPS or a fitness app.
- Producing a KML for Google Earth from data that arrived as GeoJSON.
- Turning a collection of points into a CSV with all its properties as columns.
- Finding the feature with the broken geometry in a file that a mapping library refuses to load.
- Shrinking an oversized GeoJSON by cutting coordinate precision before publishing it.
- Explaining a dataset to a colleague by hiding everything except the two features being discussed.
Related tools
View allPart of File viewers that open the file in your browser
Works well with this5
More file viewers10
More in Data & Dev12
Related categories1
Updated