Skip to content

Convert CSV to KML

One placemark per row, ready for Google Earth or QGIS. Free, and the file never leaves your browser.

or drop CSV here

How the conversion works

  1. 1

    Choose a .csv file, drop it on the page, or paste the table. Comma, semicolon and tab delimiters are all recognised.

  2. 2

    The page finds the coordinate columns by their name: latitude, lat or y for one, longitude, lon, lng or x for the other. A wkt column works too, for lines and polygons. A name column becomes the placemark name.

  3. 3

    Download the KML. Open it in Google Earth, or in QGIS through Layer, Add Layer, Add Vector Layer.

How each column is used

The names are matched after lowercasing and stripping spaces and underscores, so Latitude, LAT and lat_dd all work.

Column names recognisedWhere it goes in the KML
latitude, lat, y, northingThe second number of the Point coordinates. Decimal degrees, WGS 84. A decimal comma is accepted.
longitude, lon, lng, long, x, eastingThe first number of the Point coordinates.
name, title, label, idThe placemark name. Rows without one are named by their row number.
description, desc, notes, commentThe placemark description.
wkt, geometry, geom, the_geomWell-known text. POINT, LINESTRING, POLYGON and the MULTI types become the matching KML geometry when there is no latitude and longitude pair.
Everything elseOne ExtendedData field per column, named after the column, so QGIS shows them as attributes.

What it does not do

  • Coordinates must be latitude and longitude in degrees. A CSV in a projected system, metres in UTM or Lambert for example, has to be reprojected first, in QGIS or with ogr2ogr.
  • No icons or colours. Set them in Google Earth or in the QGIS style panel.
  • When most values in the latitude column are beyond 90 degrees, the two columns are swapped and a notice says so. Check it on a map: nothing else can tell a column named wrong from a file in a projected system.
  • Files up to 50 MB. Every row with a readable coordinate pair becomes a placemark; the rows without one are counted and skipped.

Questions people ask

Does my CSV get uploaded?
No. The conversion is JavaScript running in your browser tab. Open the network panel of your browser while you convert: no request carries the file.
Which column names does it recognise?
latitude, lat, y or northing for the latitude; longitude, lon, lng, long, x or easting for the longitude; name, title, label or id for the name; description, desc, notes or comment for the description. Case and underscores do not matter.
My coordinates are in UTM. Will it work?
No. KML only carries degrees. Reproject the table first: in QGIS, load it as a delimited text layer with its UTM CRS, then Export, Save Features As, KML, which reprojects on the way out.
What happens to the other columns?
Each one becomes an ExtendedData field on the placemark. Google Earth shows them in the balloon, QGIS shows them as attributes, and a KML to CSV conversion gets them back as columns.
Can it make lines or polygons from a CSV?
Yes, from a wkt column holding LINESTRING or POLYGON text. A CSV where each row is a vertex of one line is not supported: group it into WKT first, or load it in QGIS and use Points to Path.

Next, open it in QGIS

Every one of these files loads in QGIS in one dialog. Once the points or polygons sit on your imagery, the two TerraLab plugins take over: AI Segmentation detects the objects the file is missing, AI Edit renders a project on the map.