# csv2geojson

> convert CSV files to GeoJSON

Latest version **5.1.2** (published 2022-09-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install csv2geojson
pnpm add csv2geojson
yarn add csv2geojson
bun add csv2geojson
```

Provides the command `csv2geojson`.

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 5.1.2 |
| Published | 2022-09-14 |
| First published | 2012-08-02 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=6 |
| Dependencies | 4 |
| Unpacked size | 28 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 373 |
| Maintainers | mapbox-npm-01, mapbox-npm-02, mapbox-npm-07, mapbox-npm-03, mapbox-npm-04, mapbox-npm-09, mapbox-npm-05, mapbox-npm-06, mapbox-npm-08, mapbox-npm-advanced-actions, mapbox-npm-ci, mapbox-npm, mapbox-admin, mapbox-machine-user |

## Links

- npm: https://www.npmjs.com/package/csv2geojson
- Repository: https://github.com/mapbox/csv2geojson
- Homepage: https://github.com/mapbox/csv2geojson#readme
- Issues: https://github.com/mapbox/csv2geojson/issues
- npm.io page: https://npm.io/package/csv2geojson

## Dependencies (4)

- [meow](https://npm.io/package/meow.md) ^9.0.0
- [d3-dsv](https://npm.io/package/d3-dsv.md) 1.0.1
- [concat-stream](https://npm.io/package/concat-stream.md) ~1.5.1
- [@mapbox/sexagesimal](https://npm.io/package/@mapbox/sexagesimal.md) ^1.1.0

## Recent versions

- 5.1.2 (latest) — 2022-09-14
- 5.1.1 — 2018-08-14
- 5.0.2 — 2016-09-19
- 5.0.1 — 2016-09-19
- 5.0.0 — 2016-02-11
- 4.0.0 — 2015-02-22
- 3.8.0 — 2015-02-01
- 3.7.1 — 2014-07-03
- 3.7.0 — 2014-02-20
- 3.6.1 — 2013-12-09
- 3.6.0 — 2013-10-16
- 3.5.2 — 2013-09-24
- 3.5.1 — 2013-09-11
- 3.4.1 — 2013-08-25
- 3.4.0 — 2013-08-14
- … 7 more at https://npm.io/package/csv2geojson/versions

## README

[![Build Status](https://travis-ci.org/mapbox/csv2geojson.png)](https://travis-ci.org/mapbox/csv2geojson)

# csv2geojson

Converts [CSV](http://en.wikipedia.org/wiki/Comma-separated_values) and [TSV](http://en.wikipedia.org/wiki/Tab-separated_values)
files into [GeoJSON](http://www.geojson.org/) 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

Options:
  --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

```js
var csv2geojson = require('csv2geojson');

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

## api

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

Parse a CSV file and derive a [GeoJSON](http://www.geojson.org/) 
[`FeatureCollection`](http://geojson.org/geojson-spec.html#feature-collection-objects)
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'.

```js
csv2geojson.dsv(delimiter).parse(dsvString);
```

The [dsv](https://github.com/mbostock/dsv) library for barebones DSV parsing.

```js
csv2geojson.auto(dsvString);
```

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

```js
csv2geojson.toPolygon(gj);
csv2geojson.toLine(gj);
```

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

    https://npmcdn.com/csv2geojson@latest/csv2geojson.js

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

Looks for fields like `/^Lat/i`.

## See Also

* [topojson](https://github.com/mbostock/topojson/) supports joining data in CSV
* [gdal](http://www.gdal.org/) supports specific CSV structures to and from other data formats

This is what powers the CSV/TSV import of [geojson.io](http://geojson.io/).

---
_Source: https://npm.io/package/csv2geojson · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
