Skip to content

Instantly share code, notes, and snippets.

@JerrySievert
Created April 10, 2014 20:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JerrySievert/10421863 to your computer and use it in GitHub Desktop.
Save JerrySievert/10421863 to your computer and use it in GitHub Desktop.
var Terraformer = require('../Terraformer/'),
GeoStore = require('../terraformer-geostore/node/terraformer-geostore.js').GeoStore,
RTree = require('../terraformer-geostore-rtree/').RTree,
LevelStore = require('../terraformer-geostore-leveldb/').LevelStore;
fs = require('fs');
var JSONStream = require('JSONStream');
var index = new RTree();
var store = new GeoStore({
store: new LevelStore({name: "./buildings"}),
index: index
});
var incoming = fs.createReadStream("./buildings.json", { encoding: "utf8" });
var stream = JSONStream.parse(['features', true]);
stream.on("data", function (data) {
if (data.properties.YEAR_BUILT && data.properties.YEAR_BUILT > 1600) {
var year = data.properties.YEAR_BUILT;
var oid = data.properties.OBJECTID;
data.properties = { YEAR_BUILT: year, OBJECTID: oid };
data.id = oid;
store.add(data, function () { });
}
});
incoming.pipe(stream);
stream.on("end", function (data) {
index.serialize(function (err, data) {
fs.writeFileSync("./rtree.json", JSON.stringify(data), 'utf8');
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment