point-grouper v0.0.2
point-grouper
group geojson points into containing polygons
example
var fs = require('fs');
var path = require('path');
var grouper = require('point-grouper');
var g = grouper();
g.on('region', function (region) {
console.log('REGION ' + region.name);
var outfile = path.join(__dirname, 'output', region.name + '.geojson');
region.pipe(fs.createWriteStream(outfile));
});
process.argv.slice(2).forEach(function (file) {
var ws = g.createWriteStream();
fs.createReadStream(file).pipe(ws);
});Then give point-grouper some files. Here we'll provide oakland city council district boundaries for the polygons and oakland street tree data for the points.
$ mkdir -p output
$ node group.js districts.json trees.geojson
REGION 7
REGION 6
REGION 1
REGION 3
REGION 5
REGION 4
REGION 2The program will then split up the tree data out into each district file:
$ ls -sh output/
total 41M
9.6M 1.geojson 6.7M 3.geojson 4.6M 5.geojson 4.0M 7.geojson
6.0M 2.geojson 4.9M 4.geojson 4.6M 6.geojsonYou can also use the point-grouper command that ships with this module to do
the same thing without having to use the API directly:
$ point-grouper districts.json trees.geojson -o output/usage
usage: point-grouper FILES {-o OUTDIR}methods
var grouper = require('point-grouper')var g = grouper(cb)
Create a new grouper.
Optionally provide a cb(err, region) listener for 'error' and 'region'
events.
g.createWriteStream()
events
g.on('region', function (region) {})
When a region (any polygon) was read from one of the input files, this event
fires with region, a readable stream of geojson data for all of the points
contained in the region.
The region stream has these properties:
region.index- the numeric index of the regionregion.name- the property Name if one was presentregion.feature- the feature data for the region polygonregion.coordinates- an array of the points in the region shape
install
With npm, to get the library do:
npm install point-grouperand to get the point-grouper command do:
npm install -g point-grouperlicense
MIT
