AnyFormat

00 CSV → GeoJSON

CSV to GeoJSON

Finds your coordinate columns. Refuses to guess at DMS.

01CSV in
02GEOJSON out
03Options 4

Only needed if the automatic detection picks the wrong column.

0 keeps full precision. Six places is about 10 cm — beyond that is noise from consumer GPS.

  • No upload The conversion runs in this tab. Your file never travels — not to us, and not to the advertising.
  • No sign-up, no email, no daily cap There is no account system to sign up to.
  • No size limit we invented Only your device's memory — about ~2 GB on a desktop browser, ~400 MB on a phone.
  • Turn your Wi-Fi off and convert anyway The conversion needs nothing but this page. Ads will not load without a connection; your file will still convert. That is the whole claim, and it takes five seconds to check.

Turns a spreadsheet with coordinates into a GeoJSON FeatureCollection. Every other column becomes a property, so the data travels with the points.

How the coordinate columns are found

Column names are matched ignoring case, spaces and punctuation. Latitude is recognised from lat, latitude or y; longitude from lon, lng, long, longitude or x. Elevation from ele, elevation, alt, altitude, height or z.

Whichever columns are used is stated in the conversion notes, so you can see the guess rather than trust it. If it picks wrong, name the columns explicitly in the options.

Degrees-minutes-seconds are refused, on purpose

A value like 59°54'50"N is rejected rather than parsed. This is a deliberate choice worth explaining.

The obvious implementation reads the leading number and discards the rest, turning 59°54'50" into 59 — an error of about six kilometres, applied to every row, with no warning. That is far worse than a refusal, because it produces a map that looks plausible and is wrong.

Convert the column to decimal degrees first: degrees + minutes/60 + seconds/3600, negated for south and west. Then this tool will take it.

Comma decimal separators

European exports write 59,9139 rather than 59.9139, and arrive semicolon-delimited so there is no ambiguity. Those are accepted and converted. A comma decimal in a comma-delimited file is genuinely unresolvable and will not parse.

What you get

A FeatureCollection of Point features. Every non-coordinate column becomes a property, keeping its original column name. Rows whose coordinates do not parse are skipped and counted rather than becoming points at (0, 0) — which would put them in the Gulf of Guinea, the traditional home of bad geodata.

Other names for this

Also searched as “csv to map”, “spreadsheet to geojson”, “excel to geojson”.

Questions

It cannot find my coordinate columns.
The error lists the columns it did find. Rename yours to latitude and longitude, or name them explicitly in the options.
My coordinates are in degrees-minutes-seconds.
Convert them to decimal degrees first. Parsing the leading number would introduce a several-kilometre error in every row without telling you.
Can I create lines or shapes from a CSV?
Not yet — every row becomes a point. Building a line needs a convention for which rows group together and in what order.
Some rows are missing from the output.
Their coordinates did not parse as numbers. The count is reported rather than placing them at (0, 0).
Is my file uploaded?
No. Everything runs in this tab. That matters more here than almost anywhere else on the site — a calendar is your movements, an address book is other people’s personal data, and a GPS track is where you live and where you run. None of it is sent anywhere.