Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

GeoJSON Editor (Map, Validate, Fix & Convert)

Draw and edit map data, check it against RFC 7946, fix it, simplify it and convert it.

Free preview, no sign-upIncluded in your pass Pro tool Pro pass: ₹179 / $5.99 for 30 days On this device: nothing is sent
+3 +1 more details No uploadWorks offline once opened Developer

Free preview: the map under a MySmartCoPilot mark, and the first part of the GeoJSON (up to 20 lines) and of the issues found (up to 10), with every count. Locked until you unlock it: download and copy.

Pro pass ₹179 for 30 days or ₹79 for 1 week, one‑time. Pro pass $5.99 for 30 days or $2.99 for 1 week, one‑time. How to unlock

Try before you buy.

  • Free preview: the map under a MySmartCoPilot mark, and the first part of the GeoJSON (up to 20 lines) and of the issues found (up to 10), with every count.
  • Locked until you unlock it: download and copy.
  • Unlock: Pro pass, ₹179 for 30 days or ₹79 for 1 week, a one-time payment that never renews. Unlock: Pro pass, $5.99 for 30 days or $2.99 for 1 week, a one-time payment that never renews.

Ways to unlock shows how to get the full result.

See passes (opens in a new tab)

Printing this result is locked in the free preview.

Map

Drag to pan; zoom with Ctrl or ⌘ and the wheel, a pinch, or the buttons. With the map focused: arrow keys pan, + and − zoom, Space adds a point or corner at the crosshair in the middle (Point, Line or Polygon), Enter finishes a shape, Delete removes the selected vertex and Esc cancels. The grid shows longitude and latitude; no base map is loaded, so nothing leaves your device.

Next steps Done. What next?

A Pro pass unlocks the full result. See passes

All developer tools

About the GeoJSON Editor (Map, Validate, Fix & Convert)

Open GeoJSON (also newline-delimited GeoJSON and RFC 8142 text sequences), TopoJSON, WKT or a zipped shapefile, or paste it, and see it on a map with a grid of longitudes and latitudes. Select a feature to drag its vertices, pull a new vertex out of the middle of a segment, or delete vertices and features; draw new points, lines and polygons. The properties sit in a table where you change values and add, rename or remove properties, and the GeoJSON view follows every edit. Undo and redo keep the last 60 steps.

Issues checks the data against RFC 7946, the GeoJSON standard: the structure of every object, positions and their ranges, swapped or projected coordinates, open, short or clockwise rings, lines and rings across the antimeridian, out-of-date bbox members and the removed "crs" member, then the faults of the shapes themselves: self-intersections, repeated vertices, empty parts, holes outside their shells and repeated ids. Each finding names the feature and the place in it, and most come with a one-click fix: Make polygons valid turns a bow tie into two triangles. Simplify removes vertices by Visvalingam–Whyatt or Douglas–Peucker while neighbouring polygons keep their shared borders, rounds coordinates and drops properties, with the result drawn over the original.

Everything runs in your browser: nothing is uploaded, and no base map is loaded. Without a pass the page is a free preview: checking, fixing, simplifying and editing all work, the map carries a MySmartCoPilot mark, the issues list and the GeoJSON view show their first part with every count, and exporting GeoJSON, TopoJSON, KML, WKT or a zipped shapefile unlocks with a Pro pass.

How to use it

  1. Open a file in Data (GeoJSON, TopoJSON, WKT or a zipped shapefile, up to 64 MB), paste text into the box, load the example, or press Start drawing for an empty collection.
  2. On the map, choose Select and click a feature: drag its square handles to move vertices, drag a round handle to add one, and press Delete for the selected vertex. Point, Line and Polygon draw new features; Enter or a double-click finishes a shape. From the keyboard, focus the map, move it with the arrow keys and press Space to put a point or corner at the crosshair in its middle.
  3. Open Issues to read what the checks found. Show finds a feature on the map; each fix button repairs one kind of fault, Fix all the safe ones together, and Undo takes any edit back.
  4. In Properties, change values, add a property to every feature, rename one in its header or remove it; numbers, true, false and null keep their types.
  5. In Simplify, choose the method and the share of vertices to keep, round the coordinates and pick the properties to keep, compare the outline on the map, and press Apply to the data.
  6. Exporting to GeoJSON, TopoJSON, KML, WKT or a zipped shapefile, as a download or a copy, unlocks with a Pro pass; the free preview shows the map with a mark and the first part of the GeoJSON.

Examples

A bow tie made valid
Input
POLYGON ((0 0, 2 2, 2 0, 0 2, 0 0))
Result
MULTIPOLYGON (((0 0, 1 1, 0 2, 0 0)), ((2 2, 1 1, 2 0, 2 2)))

Issues reports that the exterior ring crosses itself near 1, 1; Make polygons valid splits it where it crosses into two triangles, both counterclockwise.

The example file, fixed in one go
Input
The page’s example: a clockwise ring, an open ring, a bow tie, a repeated vertex, a "crs" member and two features with the id 3
Result
2 errors and 4 warnings. Fix all removes the "crs" member, closes the ring, removes the repeated vertex, rebuilds the bow tie and turns the clockwise ring round, which leaves the repeated id for you to decide.
A line across the antimeridian
Input
{"type": "LineString", "coordinates": [[179.5, 10], [-179.5, 10.5]]}
Result
{"type": "MultiLineString", "coordinates": [[[179.5, 10], [180, 10.25]], [[-180, 10.25], [-179.5, 10.5]]]}

Cut lines at the antimeridian splits the line where it crosses 180°, as RFC 7946 §3.1.9 asks, instead of a line drawn across the whole world.

Two squares that share a side, as TopoJSON
Input
Two polygons: [0 0, 1 0, 1 1, 0 1] and [1 0, 2 0, 2 1, 1 1]
Result
Three arcs: the shared side [1, 0] → [1, 1] is stored once, and the second square uses it backwards (arc −1).

What the checks look at

  • Structure (RFC 7946 §3): every object has the members its type needs, with the right types; a Feature has "geometry" and "properties" (either may be null); geometry type names are case-sensitive.
  • Positions (§3.1.1): two or three finite numbers, longitude first. Longitudes beyond ±180 and latitudes beyond ±90 are errors; when most values are far beyond them the data is likely projected (metres, such as Web Mercator), and when the out-of-range values fit the other way round the axes are likely swapped.
  • Lines and rings (§3.1.4, §3.1.6): lines of two or more positions, rings of four or more that end where they start, exterior rings counterclockwise and holes clockwise (the right-hand rule; many readers accept both, so it is a warning).
  • The antimeridian (§3.1.9): a line or ring that jumps more than 180° of longitude between two positions.
  • bbox and crs (§5, §4): a bbox must hold every coordinate; the old "crs" member was removed from the standard.
  • Valid shapes: rings that cross themselves or each other, repeated vertices, empty or degenerate parts, holes outside their shell, and repeated feature ids.

How the fixes work

Every fix makes a new version of the data that Undo takes back, and the checks run again after it.

  • Make polygons valid splits rings where they cross and rebuilds simple rings from the edges between inside and outside. A point counts as inside when it is inside the exterior ring (by the even-odd rule, so both loops of a bow tie count) and outside the holes; a hole outside its shell goes, and overlapping parts of a MultiPolygon merge.
  • Apply the right-hand rule turns rings round: exterior rings counterclockwise, holes clockwise.
  • Close open rings, Remove repeated vertices and Remove empty and too-short parts do what they say; Refresh bbox members writes each bbox again from the coordinates.
  • Cut lines at the antimeridian splits lines into MultiLineStrings at ±180°, with the crossing latitude interpolated. Polygons across it are reported but not cut.
  • Swap longitude and latitude and the antimeridian cut change what the data means, so Fix all leaves them out: use them when the shapes land in the wrong place.

Simplifying without gaps between neighbours

The editor first finds the arcs: the stretches of border between the points where shapes meet, so a border two polygons share is one arc. Each vertex of an arc gets an importance, by Visvalingam–Whyatt (the area of the triangle it makes with its neighbours, the smallest removed first) or Douglas–Peucker (the largest distance from the line between the ends, kept first), and the share you choose of all removable vertices is kept, the most important first over the whole data. The ends of arcs always stay, so neighbours still meet, and every ring keeps at least three corners.

Rounding coordinates shrinks a file too: 6 decimals of a degree are about 11 cm on the ground, 5 about 1 m and 4 about 11 m.

Formats in and out

  • GeoJSON (RFC 7946): a FeatureCollection, a Feature, a geometry, an array of features, newline-delimited GeoJSON, or RFC 8142 text sequences. Written indented, compact, or one feature per line.
  • TopoJSON (the TopoJSON specification): quantized and delta-encoded arcs are read; written with shared arcs and the quantization you choose.
  • WKT (OGC Simple Features): POINT to GEOMETRYCOLLECTION, with Z and M, EMPTY, and the SRID prefix of EWKT. WKT holds geometries only.
  • Shapefiles (the ESRI Shapefile Technical Description): a ZIP with the .shp and its .dbf, .prj and .cpg. Web Mercator layers are turned into longitude and latitude; other projections are refused with a note, because GeoJSON is always WGS 84. Written one file per kind of geometry, with a WGS 84 .prj and a UTF-8 .cpg.
  • KML (OGC KML 2.2): placemarks with their names and properties as extended data.

Limitations

  • No base map is shown: the features are drawn on a grid of longitudes and latitudes, so nothing is fetched from a tile server.
  • Shapefiles in projections other than WGS 84 and Web Mercator are not reprojected: save the layer in WGS 84 (EPSG:4326) first.
  • Polygons that cross the antimeridian are reported but not cut; lines are cut.
  • The map uses Web Mercator, like most web maps: areas far from the equator look larger than they are, and the poles beyond about 85° are not shown.
  • Very large files (millions of vertices) open, but self-intersections are looked for in about the first 2,000,000 segments only, and the table shows features 200 at a time.

Privacy

On this device: nothing is sent

Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.

Frequently asked questions

What do I get without a pass?

Without a pass, GeoJSON Editor (Map, Validate, Fix & Convert) shows the map under a MySmartCoPilot mark, and the first part of the GeoJSON (up to 20 lines) and of the issues found (up to 10), with every count. Until you unlock it, the result can’t be downloaded or copied. A Pro, Premium or Ultimate pass, a one-time payment that never renews, unlocks the full result. The pricing page lists the passes and their prices.

Why does it say my polygon runs clockwise?

RFC 7946 asks for exterior rings counterclockwise and holes clockwise, the right-hand rule. Older GeoJSON, shapefiles and many tools write them the other way, and most readers accept both, so it is a warning. Apply the right-hand rule turns them round.

What does Make polygons valid do to a bow tie?

A ring that crosses itself has no clear inside. The fix splits it at the crossing into two rings, each counterclockwise, so a bow tie becomes a MultiPolygon of two triangles. The same rebuild removes holes that lie outside their shell and merges overlapping parts.

Why are my coordinates said to be projected or swapped?

GeoJSON is always longitude then latitude in degrees (WGS 84). Values in the hundreds of thousands are metres from a projection such as Web Mercator; reproject them in your GIS program. Latitudes beyond ±90 that would fit as longitudes mean the axes are the other way round: Swap longitude and latitude fixes that.

Do the simplified polygons still fit together?

Yes. A border two polygons share is simplified once, as one arc, and the points where borders meet always stay, so no gaps or overlaps open between neighbours.

Is my data uploaded?

No. Files are read in your browser, the checks and fixes run in a background worker on your device, and no base map or tile is loaded, so the map does not reveal where your data is.

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.