0.5.1 • Published 6 years ago
@gpcboekema/shp-write v0.5.1
@gpcboekema/shp-write
A fork of shp-write with support for 3D-shapes. Intent is to contribute this to shp-write. Unless you need 3D support it is recommended to use shp-write instead.
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 @gpcboekema/shp-writeCaveats
- Requires a capable fancy modern browser with Typed Arrays support
 - Geometries: Point, PointZ, LineString, LineStringZ, Polygon, PolygonZ, MultiLineString, MultiPolygon
 - Tabular-style properties export with Shapefile's field name length limit
 - Uses jsZip for ZIP files, but compression is buggy so it uses STORE instead of DEFLATE.
 
Example
var shpwrite = require('shp-write');
// (optional) set names for feature types and zipped folder
var options = {
    folder: 'myshapes',
    types: {
        point: 'mypoints',
        polygon: 'mypolygons',
        line: 'mylines'
    }
}
// a GeoJSON bridge for features
shpwrite.download({
    type: 'FeatureCollection',
    features: [
        {
            type: 'Feature',
            geometry: {
                type: 'Point',
                coordinates: [0, 0]
            },
            properties: {
                name: 'Foo'
            }
        },
        {
            type: 'Feature',
            geometry: {
                type: 'Point',
                coordinates: [0, 10]
            },
            properties: {
                name: 'Bar'
            }
        }
    ]
}, options);
// 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)
Generate a ArrayBuffer of a zipped shapefile, dbf, and prj, from a GeoJSON object.
Other Implementations
Reference
Contributors
- Nick Baugh niftylettuce@gmail.com