GeoJSON Viewer
Paste GeoJSON, drop a .geojson file, or bring data from your previous tool. It renders on the map instantly. 100% in-browser — nothing is uploaded.
GeoJSON Viewer
What this tool does
It takes GeoJSON and draws it on an interactive Leaflet map so you can see the geometry instead of squinting at coordinate arrays. Paste a snippet, drop a .geojson / .json file, or let it pick up the data you were working on in the previous tool — then it parses, renders, and frames the result for you. There's no text output and no download; the map is the answer.
The intent it closes: "I have some GeoJSON and I just need to know where it actually lands and what's in it." It works on anything RFC 7946 describes — a FeatureCollection, a single Feature, or a bare geometry like Polygon or MultiLineString. Coordinates are read as [longitude, latitude], per the spec. It renders even when the data has structural problems; if you need a pass/fail verdict, the Validator is the right tool.
How this tool works
Clicking Render runs three steps, all in your browser.
1. Parse the input
Your text goes through the browser's JSON parser. If it isn't valid JSON — a trailing comma, an unclosed bracket, a smart quote — the status bar shows JSON parse error: … and nothing is drawn. On a clean parse the tool also runs a quick structural check, but it does not stop you: if there are issues it still renders and reports Rendered with N validation issue(s). See validator for details.
2. Render on Leaflet
The parsed object is handed to Leaflet's GeoJSON layer. Coordinates are interpreted as [longitude, latitude]. Points become circle markers; lines and polygons are stroked and lightly filled. Clicking any feature opens a popup of its properties — up to 24 keys, every value HTML-escaped, with the title taken from name, title, label, or id if one is present. The basemap is CartoDB (Voyager in light mode, the dark theme in dark mode) and it follows the site's dark-mode toggle live. Those tiles come from OpenStreetMap / CARTO, but your geometry never leaves the browser.
3. Fit the view
After drawing, the map frames your data automatically. A single point zooms straight to roughly level 12; anything with extent flies to the bounding box with a little padding so the whole shape sits inside the frame. The info panel on the right then reports Features count, the top-level Type, and the BBox, and the status bar confirms Rendered. N feature(s).
Example
Input (a single Point):
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-0.1276, 51.5074]
},
"properties": {
"name": "London"
}
}
The map drops a circle marker on London and zooms in to about level 12. The info panel reads Features: 1, Type: Feature, and a BBox of that single coordinate. Click the marker and a popup shows name: London.
Tips & common pitfalls
- Longitude comes first. GeoJSON uses
[x, y], so coordinates are[longitude, latitude]— not[lat, lng]. If your markers land in the ocean or Antarctica, your pairs are probably swapped. - The view fits itself. You don't need to hunt for your data: a lone point zooms to ~level 12 and multi-feature data flies to its bounding box every time you hit Render.
- It renders past validation issues. A structural problem won't blank the map — it draws anyway and tells you how many issues it saw. Open the Validator to see exactly what they are.
- Use WGS84. Tiles assume
EPSG:4326degrees. Data in UTM or State Plane won't line up with the basemap; reproject it to[longitude, latitude]first.
Troubleshooting
The map stayed empty after I clicked Render.
If the status bar says JSON parse error, the input isn't valid JSON — check for trailing commas, unclosed brackets, or smart quotes. If it parsed but you see nothing, your coordinates are likely swapped or in a non-WGS84 projection, so the features are sitting somewhere off-screen.
It says "Rendered with N validation issue(s)."
That's not a failure — the geometry still drew. It means the structure doesn't fully match RFC 7946 (a missing type, an odd coordinate, and so on). Run the input through the Validator to see each issue spelled out.
The map is laggy with my file.
Everything renders in browser memory, so a file with tens of thousands of vertices (common with high-res coastlines) can overwhelm the renderer. Run it through Simplify GeoJSON first to prune points without losing the shape.
FAQ
Is my spatial data uploaded to a server?
No. Parsing and rendering happen in JavaScript inside your own browser. The basemap tiles load from OpenStreetMap / CARTO, but your actual geometry never leaves your machine — and the tool keeps working offline once the page has loaded.
Why is the coordinate order [longitude, latitude]?
GeoJSON follows Cartesian [x, y] order, and on a map longitude is the X axis. It's the opposite of the Google-Maps habit, but it's what RFC 7946 mandates.
Does it appear automatically if I came from another tool?
Yes. When the previous tool in this suite saved your GeoJSON to the session, the viewer loads it on open, shows a "Loaded from your previous tool" banner, and renders it straight away. Hit Clear to drop it.
Can I style the features or save the map as an image?
Not yet. Geometry is drawn in a single theme-aware style and simplestyle-spec keys like stroke or fill are ignored, and there's no image export — use a screen-capture shortcut once the map is framed.