Stream-based utility for consuming and generating GEOJSON files specifically for geocoding needs. see proposed geocodejson spec
npm install geocodejson-stream
geojson feature objects --> geocodejson-stream.stringify(geocoding) --> text
var fs = require('fs');
var geocodejson = require('geocodejson-stream');
// provide geocoding properties as the first parameter to stringify
var geoStream = GeocodeJsonStream.stringify({ version: '0.0.3', license: 'ODbL' });
geoStream.pipe(fs.createWriteStream('results.geojson');
geoStream.write({ type: 'Feature', properties: { name: 'USA' }, geometry: {...} });
geoStream.write({ type: 'Feature', properties: { name: 'Canada' }, geometry: {...} });
geoStream.end();
will result in...
{
"type": "FeatureCollection",
"geocoding": {
"version": "0.0.3",
"license": "ODbL"
},
"features": [
{ "type": "Feature", "properties": { "name": "USA" }, "geometry": {...} },
{ "type": "Feature", "properties": { "name": "Canada" }, "geometry": {...} }
]
}
text --> geocodejson-stream.parse --> geojson feature objects
var fs = require('fs');
var through = require('through2');
var geocodejson = require('geocodejson-stream');
fs.createReadStream('results.geojson') // file contents described in stringify documentation
.pipe(GeocodeJsonStream.parseGeocoding())
.pipe(through.obj(function (data, enc, next) {
console.log(data.properties);
next();
}));
will result in...
{ "type": "Feature", "properties": { "name": "USA" }, "geometry": {...} },
{ "type": "Feature", "properties": { "name": "Canada" }, "geometry": {...} }
text --> geocodejson-stream.parseGeocoding --> geocoding object
var fs = require('fs');
var through = require('through2');
var geocodejson = require('geocodejson-stream');
fs.createReadStream('results.geojson') // file contents described in stringify documentation
.pipe(GeocodeJsonStream.parseGeocoding())
.pipe(through.obj(function (data, enc, next) {
console.log(data);
next();
}));
will result in...
{
"version": "0.0.3",
"license": "ODbL"
}
$ npm test
- yes please
MIT (see LICENSE.md)