Skip to main content
Vecaria

KML to GeoJSON Converter

Local

Convert KML to GeoJSON — free online, no upload. Points, lines, polygons, MultiGeometry and holes kept, with name and ExtendedData, locally in your browser.

Sample data loaded — click "Convert to GeoJSON" to try it.

What is it? KML to GeoJSON parses KML Placemarks (points, lines, polygons, MultiGeometry) with their name and ExtendedData attributes and converts them to GeoJSON — drop a .kml file (or paste), with a result summary and a map preview; input over 20 MB is rejected. Everything runs locally in your browser — nothing is uploaded, and no account is needed.

TL;DR: Convert KML to GeoJSON in your browser — no upload, no sign-up, attributes and polygon holes kept.

How to use

  1. Drop your .kml file into the input (or use "or load a file"), or paste the KML text.
  2. Click "Convert to GeoJSON" (or press Ctrl/Cmd+Enter).
  3. Check the result summary and map preview, then copy or download the .geojson.

FAQ

Are styles and attributes converted?

Geometry is converted with the name and ExtendedData fields (Data/value, SchemaData/SimpleData) kept as properties; styling and icons are not converted.

How are MultiGeometry and polygons with holes handled?

MultiGeometry members stay separate as a GeometryCollection; polygon outer and inner rings (holes) are preserved.

Why is my large KML rejected?

Parsing runs synchronously in the browser, so input over 20 MB is rejected to keep the page responsive — split the file or export by layer/area first.

My file is .kmz, not .kml — can I convert it?

Not directly. A .kmz is a ZIP archive: unzip it first (or rename it to .zip and extract), then drop in or paste the .kml inside. Only KML text is parsed.

Does the output work as plain JSON?

Yes — GeoJSON is valid JSON, so the .geojson output loads anywhere a .json file is expected. Save or rename it if a tool insists on the .json extension.

Why does MultiGeometry become a GeometryCollection?

Each member of a KML MultiGeometry is kept as its own geometry inside a GeometryCollection, so members stay independent and nothing is merged or dropped. Polygon holes (inner rings) are preserved, and rings with fewer than 4 positions are skipped.

Is it local?

Yes — parsing and conversion run entirely in your browser; nothing is uploaded. Only the map preview's basemap tiles are fetched over the network.

Examples

  • Input: a <Placemark> with <Point><coordinates>116.4,39.9</coordinates></Point> and <ExtendedData><Data name="type"><value>road</value></Data></ExtendedData>.
  • Output: a Feature with a Point geometry and properties {name, type} — MultiGeometry becomes a GeometryCollection; polygon holes are preserved. A feature summary and map preview accompany the result.

Supported formats

KMLGeoJSON

Limitations

  • KMZ archives must be unzipped first — drop or paste the .kml text.
  • Network links, 3D models, styling and icons are ignored.
  • Rings with fewer than 4 positions are skipped.
  • KML over 20 MB is rejected (parsing runs synchronously in the browser) — split the file or export by layer/area first.
  • Output is pretty-printed (indented) JSON.
  • The map preview renders geometry locally (MapLibre); CARTO basemap tiles load over the network. Previews sample the first 5,000 features — the download contains all of them.

Privacy

Privacy first: this tool runs entirely in your browser — your input and files never leave your device, and everything is cleared when you close the page.