GeoXForm
A library for transforming large streams of geojson into csv, kml, shapefile and other formats
Example
- Get GeoJSON from the web -> transform into csv -> write to disk
const GeoXForm =const request =const fs =const id = '593b88391b614123890f54a1db8fbf55_0'request
Set up
GDAL
Install- With Homebrew on OSX:
brew install gdal
- On Ubuntu:
sudo apt-get install gdal-bin
Install node dependencies
(sudo) npm install
Development
Transpile to ES5
npm run compile
Test
npm test
API
createStream(format, options)
Create a stream that takes in geojson of arbitrary size and returns data in the selected format
- Format: the requested output format e.g. csv, zip (shapefile), kml
- Options:
path: string // disk location to write temp files (optional)name: string // sets the name file parts (shapefile only)metadata: string // and xml string to write to file (shapefile only)srs: string // the spatial reference system for projecting transformed data (shapefile only)
GeoJSON.createStream(options)
Create a stream that takes in individual features and returns a feature collection
- Input: A stream of individual GeoJSON features as strings or objects
- Options:
json: boolean // flags whether the input is JSON or string
VRT.createStream(options)
Create a steam that takes in geojson and outputs an OGR Virtual Layer
- Options:
size: integer // number of features to write into each GeoJSON part, defaults to 5000path: string // output path to write the VRT XML and GeoJSON parts
OGR.createStream(format, options)
Create a stream that takes in a layer and outputs transformed data
- Format: the requested output format e.g. csv, zip (shapefile), kml
- Options:
geometry: string // on of ['point', 'line', 'polygon']fields: array // the names of fields in a given dataset (csv only)name: string // sets the name file parts (shapefile only)metadata: string // and xml string to write to file (shapefile only)srs: string // the spatial reference system for projecting transformed data (shapefile only)