Test suite & interface to implement a geographic point storage backend.
npm install abstract-point-store> Test suite & interface to implement a geographic (2D) point storage backend.
An abstract point store is a data store that allows you to store, delete, and
make spatial queries over many points. A point has 2 (or more) dimensional
coordinates, and a value associated with it (that is compatible with the
[comparable-storable-types][cst] set of types).
```
npm install abstract-point-store
- kdb-tree-store
- grid-point-store
- (COMING SOON) geohash-point-store
If you write a new one, send a PR adding it.
Create a new point store. opts include:
- (required) opts.types: a size-3 array of [comparable-storable-types][cst] strings: X coord, Y coord, value.opts.store
- (optional) : a point-store-specific storage backend for the spatial data.
pt is a size-2 array with the coordinates of the point. value is the value
to be associated with this point.
Remove all points at location pt ([x, y]).
Valid opts include:
- (optional) opts.value: Only delete points at this location with this
specific value.
Query for points with bbox, a size-2 array of the shape [[minX,maxX],[minY,maxY]].
Results are given as an array of points in cb(err, results). Each element inresults has a point and value property.
Publishing a test suite as a module lets multiple modules all ensure
compatibility since they use the same test suite.
To use the test suite from this module you can
require('abstract-point-store/tests').
An example of this can be found in the
grid-point-store
test setup.
To run the tests simply pass your test module (tap or tape or any other
compatible modules are supported) and your store's constructor (or a setup
function) in:
`js`
var tests = require('abstract-point-store/tests')
tests(require('tape'), require('your-custom-point-store'), instance-of-needed-storage-backend)
- @mafintosh and @Feross for
abstract-chunk-store, which this README is heavily borrowed from.
- @maxogden for starting the immensely useful abstract-*-store` pattern.
- @substack for all of the
kdb-tree-store tests that served
as a base for this module.
ISC
[cst]: https://github.com/substack/comparable-storable-types