CSV to KML Converter

Build Google Earth KML from a CSV with lat/lon columns

Free CSV to KML converter — turn a spreadsheet with latitude and longitude columns into Google Earth Placemark KML in your browser. Optional name and description columns, instant download, nothing uploaded. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What columns does the CSV need?

It needs a latitude and a longitude column. The tool recognises headers named lat, latitude or y, and lon, lng, long, longitude or x. A name and description column are optional and become the Placemark title and balloon text.

A CSV to KML converter turns a plain spreadsheet of coordinates into a Keyhole Markup Language file that Google Earth, Google Maps, and most GIS tools can read. If you have a list of stores, sensors, survey points, or any locations with latitude and longitude, this tool builds the KML for you in seconds — entirely in your browser, with no upload.

How it works

The tool parses your CSV with a proper quote-aware parser, so fields containing commas or line breaks inside double quotes are handled correctly. It then locates the coordinate columns by matching the header names: lat, latitude, or y for latitude and lon, lng, long, longitude, or x for longitude. Optional name and description columns become each placemark’s title and balloon text.

For every data row, it emits a Placemark element. The critical detail is coordinate order: KML writes points as longitude,latitude,altitude, which is the reverse of how spreadsheets usually list them. The converter performs that swap automatically and appends a zero altitude. Rows with non-numeric or out-of-range coordinates are skipped and the count of valid placemarks is reported.

The coordinate-order pitfall explained

This is the single most common source of corruption when building KML manually. Most people think in latitude-first order — Google Maps, OpenStreetMap, and geographic convention all express a location as (lat, lon). KML inherits GIS tradition and uses (longitude, latitude, altitude) — the opposite.

If you build the <coordinates> element yourself with lat first, every pin will appear in the wrong hemisphere (because longitude and latitude values fall in overlapping ranges, the map places the pin roughly symmetrically across the equator and prime meridian). This converter always writes the swap correctly: lon,lat,0 — so you never have to remember it.

Example

A row like Yerevan HQ,40.1792,44.4991,Head office produces:

<Placemark>
  <name>Yerevan HQ</name>
  <description>Head office</description>
  <Point><coordinates>44.4991,40.1792,0</coordinates></Point>
</Placemark>

Note the coordinate order in the output: longitude (44.4991) comes before latitude (40.1792), matching the KML specification.

What makes a valid KML Placemark

The minimum required element is a <Point> with <coordinates>. The tool generates a complete, schema-valid KML 2.2 document with:

  • A <Document> wrapper with the name you specify.
  • One <Placemark> per valid data row.
  • <name> from the name column if present.
  • <description> from the description column if present, wrapped in a CDATA block so HTML inside descriptions is preserved.
  • Proper XML escaping on all text: &amp;, &lt;, &gt;, and &quot; replace bare &, <, >, and " in names and descriptions.

Opening the KML in Google Earth

Download the .kml file and:

  • Google Earth (web): drag the file onto the map — it loads as a layer.
  • Google Earth Pro (desktop): File → Open, select the .kml file.
  • Google My Maps: New map → Import → upload the .kml.
  • QGIS / ArcGIS: Use the vector layer import or drag-and-drop.

Tips

Quote any name or description that contains a comma. All XML-special characters (&, <, >, quotes) are escaped automatically, so addresses with ampersands stay valid. Everything runs locally, so the tool works offline and keeps confidential location data on your machine.