hyperlog-kdb-index
Version:
n-dimensional kdb tree spatial index for hyperlogs
35 lines (30 loc) • 816 B
JavaScript
var fdstore = require('fd-chunk-store')
var hyperkdb = require('../')
var memdb = require('memdb')
var hyperlog = require('hyperlog')
var log = hyperlog(memdb(), { valueEncoding: 'json' })
var kdb = hyperkdb({
log: log,
db: memdb(),
types: [ 'float', 'float' ],
kdbtree: require('kdb-tree-store'),
store: fdstore(1024, '/tmp/kdb-tree-' + Math.random()),
map: function (row, next) {
if (row.value.type === 'point') {
next(null, [ row.value.lat, row.value.lon ])
} else next()
}
})
for (var i = 0; i < 50; i++) {
log.add(null, {
type: 'point',
lat: 64 + Math.random() * 2,
lon: -147 - Math.random() * 2
})
}
kdb.query([[64.5,65],[-147.9,-147.2]], function (err, pts) {
if (err) return console.error(err)
pts.forEach(function (pt) {
console.log(pt.point)
})
})