Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

Build Status


Converts CSV and TSV files into GeoJSON data suitable for maps..

Using as a binary:

npm install -g csv2geojson
csv2geojson geodata.csv > geodata.geojson
➟ csv2geojson
Usage: csv2geojson --lat [string] --lon [string] --line [boolean] --delimiter [string] FILE

  --lat        the name of the latitude column
  --lon        the name of the longitude column
  --line       whether or not to output points as a LineString  [default: false]
  --delimiter  the type of delimiter                            [default: ","]
  --numeric-fields comma separated list of fields to convert to numbers

Using in nodejs

npm install --save csv2geojson
var csv2geojson = require('csv2geojson');

var geoJson = csv2geojson.csv2geojson(csvString, function(err, data) {
    // err has any parsing errors
    // data is the data.


csv2geojson.csv2geojson(csvString, {
    latfield: 'LATFIELDNAME',
    lonfield: 'LONFIELDNAME',
    delimiter: ','
}, function(err, data) {

Parse a CSV file and derive a GeoJSON FeatureCollection object from it. Err is non-falsy if latitude and longitude values cannot be detected or if there are invalid rows in the file. Delimiter can be ',' for CSV or '\t' for TSV or '|' and other delimiters.

Delimiter can also be auto, and it will try , \t | ; and choose the 'best'.


The dsv library for barebones DSV parsing.;

Automatically choose a delimiter to parse a dsv string with, and do it.


Given a GeoJSON file consisting of points, derive one consisting of a polygon or line that has the coordinates of those points, in the order given.

Using in webpages

The latest build will be at

Open that path in a browser to be redirected to the lastest pinned version.

Looks for fields like /^Lat/i.

See Also

  • topojson supports joining data in CSV
  • gdal supports specific CSV structures to and from other data formats

This is what powers the CSV/TSV import of