Code Monkey home page Code Monkey logo

shp-write's Introduction

shp-write

Build Status

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 = require('shp-write');

// (optional) set names for zip file, zipped folder and feature types
var options = {
    folder: 'myshapes',
    types: {
        point: 'mypoints',
        polygon: 'mypolygons',
        polyline: '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

Pull requests contained in this branch

This branch includes the following PRs of the official repository:

shp-write's People

Contributors

tmcw avatar hwbllmnn avatar jseppi avatar kuuup avatar jasonsanford avatar shane98c avatar glenselle avatar jfgodoy avatar niftylettuce avatar kuuup-at-work avatar symbyte avatar npmcdn-to-unpkg-bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.