UNPKG

hyperlog-kdb-index

Version:

n-dimensional kdb tree spatial index for hyperlogs

38 lines (33 loc) 979 B
var fdstore = require('fd-chunk-store') var hyperkdb = require('../') var level = require('level') var hyperlog = require('hyperlog') var log = hyperlog(level('/tmp/kdb-log/log'), { valueEncoding: 'json' }) var kdb = hyperkdb({ log: log, db: level('/tmp/kdb-log/index'), types: [ 'float', 'float' ], kdbtree: require('kdb-tree-store'), store: fdstore(1024, '/tmp/kdb-log/tree'), map: function (row, next) { if (row.value.type === 'point') { next(null, [ row.value.lat, row.value.lon ]) } else next() } }) if (process.argv[2] === 'add') { log.add(null, { type: 'point', lat: Number(process.argv[3]), lon: Number(process.argv[4]) }) } else if (process.argv[2] === 'query') { var q = process.argv.slice(3).map(commaSplit) kdb.query(q, function (err, pts) { if (err) return console.error(err) pts.forEach(function (pt) { console.log(pt.point) }) }) } function commaSplit (s) { return s.split(',').map(Number) }