Skip to content

Convert CSV to KML

One placemark per row, ready for Google Earth or QGIS.

Nothing is uploaded

AI Agent for QGIS
QGIS plugin

AI Agent for QGIS

Skip the converter next time: ask AI Agent in QGIS to convert, reproject and load your files.

Get the free QGIS pluginFree plan, no credit card.

Guide

How it works, formats and limits.

About this tool

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

How the conversion works

  1. Choose a .csv file, drop it on the page, or paste the table. Comma, semicolon and tab delimiters are all recognised.
  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. 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.

Frequently asked questions

Short answers to what people ask most.

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.