Convert KML to Shapefile

Drop a KML from Google Earth and get back a zipped shapefile set (.shp, .shx, .dbf, .prj and .cpg) that opens straight in QGIS, ArcGIS or any GIS. The conversion runs inside this page, so your file is never uploaded, there is no size limit, and nothing to sign up for.

Drop your KML here

or

Your file is converted inside this tab and never uploaded. No size limit, no sign-up.

What happens to your data

KML and Shapefile store different things, so some parts of your file translate exactly and others cannot. Here is the whole picture before you convert, rather than after.

How to convert KML to Shapefile

  1. 1

    Choose your KML file

    Drag a .kml onto the box above, or click to browse. Files stay on your computer; nothing is sent anywhere.

  2. 2

    Pick a coordinate system

    WGS 84 suits most uses and is what the KML already holds. Choose a UTM zone if you need metres for measuring area or distance.

  3. 3

    Convert and download

    You get a single .zip holding the .shp, .shx, .dbf, .prj and .cpg files that make up a shapefile.

  4. 4

    Open it in your GIS

    QGIS opens the .zip directly; just drag it onto the map. ArcGIS needs the files unzipped into a folder first.

Why a shapefile is a zip and not a single file

People often expect one .shp file and are surprised to receive a .zip. A shapefile has never been a single file: it is a set that must travel together. The .shp holds the geometry, the .dbf holds the attribute table, the .shx is the index that links them, the .prj records the coordinate system and the .cpg declares the text encoding. Separate any one of them from the others and the layer stops working.

That is also why the keyword 'KML to zip' leads here. The zip is the shapefile, correctly packaged. Keep the files together, and unzip them into their own folder before opening in ArcGIS.

What happens to column names

The .dbf attribute table dates to dBASE III and caps column names at 10 characters. A KML field called measured_elevation_metres has to become something shorter, and when two long names shorten to the same thing one of them needs a suffix so they stay distinct.

Most converters do this quietly, and people discover weeks later that two columns of their survey data were merged or renamed. This one shows you the full before-and-after list with the result, so you can check it before the data goes anywhere.

Mixed geometry, and why you may get three layers

A Google Earth file routinely holds a site boundary, a flight line and a set of ground control points all together. A shapefile cannot: each file is points, or lines, or polygons, never a mix.

Rather than keeping the first type and dropping the rest, the conversion writes a layer for each and puts them all in one zip, named _points, _lines and _polygons. You end up with everything you started with, as the format demands it.

Nothing leaves your computer

The conversion is JavaScript running in this tab. Your KML is read with the browser's own file reader, parsed in memory and written back out as a download. No copy is sent to a server, so there is no upload wait, no queue, no file size cap and no account.

If you want to check that claim rather than take it on trust: load this page, turn off your Wi-Fi, and convert a file. It still works.

KML and Shapefile, briefly

KMLKeyhole Markup Language

The XML format Google Earth uses. One readable text file that holds points, lines and polygons together with their names, descriptions and colours.

ShapefileEsri Shapefile

The format every GIS reads. Not one file but a set: .shp for geometry, .dbf for the attribute table, .shx for the index and .prj for the coordinate system, which travel together in a zip.

Questions people ask

Is this KML to SHP converter really free, with no limits?

Yes. There is no sign-up, no watermark, no cap on file size and no limit on how many files you convert. The conversion runs in your browser rather than on a server, so there is no cost to us per file and nothing to meter.

Is my KML file uploaded to a server?

No. The file is read and converted entirely inside your browser tab using the browser's own file APIs. Nothing is transmitted, stored or logged. You can confirm this by disconnecting from the internet after the page loads; the converter still works.

Why did my KML turn into two or three shapefiles?

A shapefile can only store one geometry type. If your KML contains a mix of points, lines and polygons, each type is written as its own layer and all of them are placed in the same zip, named with a _points, _lines or _polygons suffix. This keeps all of your data rather than discarding everything that is not the first type found.

Why are my attribute column names shortened?

The .dbf attribute table that shapefiles use allows a maximum of 10 characters per column name. Longer names must be shortened, and if two shortened names collide, a number is added so they stay unique. The converter shows the complete list of renamed columns with your result so you can map them back.

What happened to the colours and icons from Google Earth?

The shapefile format has no way to store styling, so colours, icon images and line widths are not carried over. Your geometry, names, descriptions and attribute values are all preserved. If you need the styling as well, convert to GeoJSON instead, which keeps colour information as properties.

What coordinate system will the shapefile be in?

KML always stores WGS 84 longitude and latitude, so that is the default, and a matching .prj file is written so your GIS recognises it immediately. If you need to measure areas or distances in metres, pick a UTM zone before converting and the coordinates are projected for you.

How do I open the result in QGIS or ArcGIS?

QGIS can read the zip directly: drag the .zip file onto the map canvas and it loads every layer inside. ArcGIS needs the files extracted first, so unzip into a folder and add the .shp from there. Keep all the files together in that folder, since a .shp on its own will not open.

Will Hindi, Arabic or Chinese text in my attributes survive?

Yes. The attribute table is written as UTF-8 and a .cpg file is included to declare that encoding, which is what QGIS and ArcGIS read to display the text correctly. Converters that skip the .cpg file are the usual reason non-English attributes appear as garbled characters.

My file is a KMZ, not a KML. What do I do?

Use the KMZ to Shapefile converter instead; it opens the archive and converts the KML inside it in one step. A KMZ is simply a zipped KML, so the result is the same.

Need a combination that is not listed? The universal converter handles every format this tool reads and writes.