shp-write
Writes shapefile in pure javascript. Uses dbf for the data component, and jsZIP to generate ZIP file downloads in-browser.
Usage
For node.js or browserify
npm install --save shp-write
Or in a browser
https://unpkg.com/shp-write@latest/shpwrite.js
Testing
To test the download functionality run npm run make-test
and open index.html in browser.
This should start an immediate download of test features defined in indexTest.js
.
Caveats
- Requires a capable fancy modern browser with Typed Arrays support
- Geometries: Point, LineString, Polygon, MultiLineString, MultiPolygon
- Tabular-style properties export with Shapefile's field name length limit
Example
var shpwrite = ; // (optional) set names for zip file, zipped folder and feature typesvar options = folder: 'myshapes' types: point: 'mypoints' polygon: 'mypolygons' polyline: 'mylines' // a GeoJSON bridge for featuresshpwrite;// triggers a download of a zip file with shapefiles contained within.
API
download(geojson)
Given a GeoJSON FeatureCollection as an object, converts convertible features into Shapefiles and triggers a download.
write(data, geometrytype, geometries, callback)
Given data, an array of objects for each row of data, geometry, the OGC standard
geometry type (like POINT
), geometries, a list of geometries as bare coordinate
arrays, generate a shapfile and call the callback with err
and an object with
shp: DataView shx: DataView dbf: DataView
zip(geojson)
Returns a promise which contains the blob of a zipped shapefile, dbf, and prj, from a GeoJSON object.
Other Implementations
Reference
Contributors
- Nick Baugh niftylettuce@gmail.com
Local Customize For Cordova
zip(geojson)
method now returns a promise which contains the blob for store in cordova
Pull requests contained in this branch
This branch includes the following PRs of the official repository:
- IE download fix (merged manually as the source repo is gone)
- Fix point export
- Fixed extraction of polygon coordinates