GeoJSON implementation of RBush — a high-performance JavaScript R-tree-based 2D spatial index for points and rectangles
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.gitignore
.travis.yml
CHANGELOG.md
LICENSE
README.md
bench.js
index.d.ts
index.js
package.json
test.js
types.ts
yarn.lock

README.md

GeoJSON RBush

Build Status npm version MIT licensed

GeoJSON implementation of RBush — a high-performance JavaScript R-tree-based 2D spatial index for points and rectangles.

Install

npm

$ npm install --save geojson-rbush

API

Table of Contents

rbush

GeoJSON implementation of RBush spatial index.

Parameters

  • maxEntries number defines the maximum number of entries in a tree node. 9 (used by default) is a reasonable choice for most applications. Higher value means faster insertion and slower search, and vice versa. (optional, default 9)

Examples

var geojsonRbush = require('geojson-rbush').default;
var tree = geojsonRbush();

Returns RBush GeoJSON RBush

insert

insert

Parameters

  • feature Feature insert single GeoJSON Feature

Examples

var poly = turf.polygon([[[-78, 41], [-67, 41], [-67, 48], [-78, 48], [-78, 41]]]);
tree.insert(poly)

Returns RBush GeoJSON RBush

load

load

Parameters

  • features (FeatureCollection | Array<Feature>) load entire GeoJSON FeatureCollection

Examples

var polys = turf.polygons([
    [[[-78, 41], [-67, 41], [-67, 48], [-78, 48], [-78, 41]]],
    [[[-93, 32], [-83, 32], [-83, 39], [-93, 39], [-93, 32]]]
]);
tree.load(polys);

Returns RBush GeoJSON RBush

remove

remove

Parameters

  • feature Feature remove single GeoJSON Feature
  • equals Function Pass a custom equals function to compare by value for removal.

Examples

var poly = turf.polygon([[[-78, 41], [-67, 41], [-67, 48], [-78, 48], [-78, 41]]]);

tree.remove(poly);

Returns RBush GeoJSON RBush

clear

clear

Examples

tree.clear()

Returns RBush GeoJSON Rbush

search

search

Parameters

  • geojson (BBox | FeatureCollection | Feature) search with GeoJSON

Examples

var poly = turf.polygon([[[-78, 41], [-67, 41], [-67, 48], [-78, 48], [-78, 41]]]);

tree.search(poly);

Returns FeatureCollection all features that intersects with the given GeoJSON.

collides

collides

Parameters

  • geojson (BBox | FeatureCollection | Feature) collides with GeoJSON

Examples

var poly = turf.polygon([[[-78, 41], [-67, 41], [-67, 48], [-78, 48], [-78, 41]]]);

tree.collides(poly);

Returns boolean true if there are any items intersecting the given GeoJSON, otherwise false.

all

all

Examples

tree.all()

Returns FeatureCollection all the features in RBush

toJSON

toJSON

Examples

var exported = tree.toJSON()

Returns any export data as JSON object

fromJSON

fromJSON

Parameters

  • json any import previously exported data

Examples

var exported = {
  "children": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [110, 50]
      },
      "properties": {},
      "bbox": [110, 50, 110, 50]
    }
  ],
  "height": 1,
  "leaf": true,
  "minX": 110,
  "minY": 50,
  "maxX": 110,
  "maxY": 50
}
tree.fromJSON(exported)

Returns RBush GeoJSON RBush