
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
@turf/geojson-rbush
Advanced tools
feature Feature insert single GeoJSON Featurevar poly = turf.polygon([[[-78, 41], [-67, 41], [-67, 48], [-78, 48], [-78, 41]]]);
tree.insert(poly)
Returns RBush GeoJSON RBush
features (FeatureCollection | Array<Feature>) load entire GeoJSON FeatureCollectionvar 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
feature Feature remove single GeoJSON Featureequals Function Pass a custom equals function to compare by value for removal.var poly = turf.polygon([[[-78, 41], [-67, 41], [-67, 48], [-78, 48], [-78, 41]]]);
tree.remove(poly);
Returns RBush GeoJSON RBush
tree.clear()
Returns RBush GeoJSON Rbush
geojson (BBox | FeatureCollection | Feature) search with GeoJSONvar 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.
geojson (BBox | FeatureCollection | Feature) collides with GeoJSONvar 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.
tree.all()
Returns FeatureCollection all the features in RBush
var exported = tree.toJSON()
Returns any export data as JSON object
json any import previously exported datavar 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
GeoJSON implementation of RBush spatial index.
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)var geojsonRbush = require('geojson-rbush').default;
var tree = geojsonRbush();
Returns RBush GeoJSON RBush
feature Feature insert single GeoJSON Featurevar poly = turf.polygon([[[-78, 41], [-67, 41], [-67, 48], [-78, 48], [-78, 41]]]);
tree.insert(poly)
Returns RBush GeoJSON RBush
features (FeatureCollection | Array<Feature>) load entire GeoJSON FeatureCollectionvar 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
feature Feature remove single GeoJSON Featureequals Function Pass a custom equals function to compare by value for removal.var poly = turf.polygon([[[-78, 41], [-67, 41], [-67, 48], [-78, 48], [-78, 41]]]);
tree.remove(poly);
Returns RBush GeoJSON RBush
tree.clear()
Returns RBush GeoJSON Rbush
geojson (BBox | FeatureCollection | Feature) search with GeoJSONvar 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.
geojson (BBox | FeatureCollection | Feature) collides with GeoJSONvar 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.
tree.all()
Returns FeatureCollection all the features in RBush
var exported = tree.toJSON()
Returns any export data as JSON object
json any import previously exported datavar 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
This module is part of the Turfjs project, an open source module collection dedicated to geographic algorithms. It is maintained in the Turfjs/turf repository, where you can create PRs and issues.
Install this single module individually:
$ npm install @turf/geojson-rbush
Or install the all-encompassing @turf/turf module that includes all modules as functions:
$ npm install @turf/turf
rbush is a high-performance JavaScript library for 2D spatial indexing of points and rectangles. It is a general-purpose R-tree implementation that can be used for spatial indexing but does not specifically handle GeoJSON data like @turf/geojson-rbush.
geokdbush is a geospatial index library that uses a K-D tree for fast nearest neighbor queries. It is optimized for geospatial data but focuses on point data rather than the broader GeoJSON support provided by @turf/geojson-rbush.
supercluster is a fast geospatial point clustering library for browsers and Node. It is designed for clustering large sets of point data, which is a different use case compared to the spatial indexing and querying capabilities of @turf/geojson-rbush.
FAQs
GeoJSON implementation of RBush
The npm package @turf/geojson-rbush receives a total of 912,761 weekly downloads. As such, @turf/geojson-rbush popularity was classified as popular.
We found that @turf/geojson-rbush demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 9 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.