diff --git a/README.md b/README.md index b04c03e0..ca2084f5 100644 --- a/README.md +++ b/README.md @@ -29,9 +29,8 @@ Or in a browser ```js var shpwrite = require('shp-write'); -// (optional) set names for feature types and zipped folder +// (optional) set names for feature types var options = { - folder: 'myshapes', types: { point: 'mypoints', polygon: 'mypolygons', @@ -67,6 +66,15 @@ shpwrite.download({ // triggers a download of a zip file with shapefiles contained within. ``` +## Custom .prj file +To pass a custom [WKT string](http://www.opengeospatial.org/standards/wkt-crs) in the .prj file to define a different projection the prj option can be used: + +```js +var options = { + prj: 'PROJCS["Amersfoort / RD New",GEOGCS["Amersfoort",DATUM["D_Amersfoort",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Stereographic_North_Pole"],PARAMETER["standard_parallel_1",52.15616055555555],PARAMETER["central_meridian",5.38763888888889],PARAMETER["scale_factor",0.9999079],PARAMETER["false_easting",155000],PARAMETER["false_northing",463000],UNIT["Meter",1]]' +} +``` + ## API ### `download(geojson)` diff --git a/src/zip.js b/src/zip.js index b8e89d85..98551ddc 100644 --- a/src/zip.js +++ b/src/zip.js @@ -1,12 +1,12 @@ var write = require('./write'), geojson = require('./geojson'), - prj = require('./prj'), + defaultPrj = require('./prj'), JSZip = require('jszip'); module.exports = function(gj, options) { - var zip = new JSZip(), - layers = zip.folder(options && options.folder ? options.folder : 'layers'); + var zip = new JSZip(); + var prj = (options && options.prj) ? options.prj : defaultPrj; [geojson.point(gj), geojson.line(gj), geojson.polygon(gj)] .forEach(function(l) { @@ -20,10 +20,10 @@ module.exports = function(gj, options) { l.geometries, function(err, files) { var fileName = options && options.types[l.type.toLowerCase()] ? options.types[l.type.toLowerCase()] : l.type; - layers.file(fileName + '.shp', files.shp.buffer, { binary: true }); - layers.file(fileName + '.shx', files.shx.buffer, { binary: true }); - layers.file(fileName + '.dbf', files.dbf.buffer, { binary: true }); - layers.file(fileName + '.prj', prj); + zip.file(fileName + '.shp', files.shp.buffer, { binary: true }); + zip.file(fileName + '.shx', files.shx.buffer, { binary: true }); + zip.file(fileName + '.dbf', files.dbf.buffer, { binary: true }); + zip.file(fileName + '.prj', prj); }); } });