geohash-point-store
Store and query spatial points using geohashes and LevelDB.
Uses geohashing to index points for fast storage and querying.
Usage
var Geostore = var memdb = var levelDb = var store = var n = 1000var spread = 02 // 0.2 of lat/lon is about 20kmvar pending = n { if !--pending return var x = 03 + Math * spread - spread/2 var y = 03 + Math * spread - spread/2 var value = Math db} { var at = 03 03 var q = db // 1km q}
outputs
Q { lat: 0.29634207747112706, lon: 0.2993872801415114, value: '38' }
Q { lat: 0.3068307609860095, lon: 0.295966883616435, value: '73' }
Q { lat: 0.2981759863251534, lon: 0.29876116341017966, value: '78' }
Q { lat: 0.3029278595931988, lon: 0.2977136462590203, value: '57' }
API
var Geostore =
var store = Geostore(db)
Create a new point store, using the
LevelUP instance db
for storage.
store.insert(pt, value, cb)
Insert value
(and JSON serializable object) at point pt
. pt
must be an
array of the form [latitude, longitude]
.
var readstream = store.queryStream(at, distance)
Query for all points around point at
(an array of [lat, lon]
) that are
within distance distance
, in kilometres.
Returns a readable stream of points of the form { lat: ?, lon: ?, value: ? }
.
Install
With npm installed, run
$ npm install geohash-point-store
See Also
License
ISC