
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
node-kdtree is a node.js addon that defines a wrapper to libkdtree, allowing one to work with KD trees directly in node. A KD tree is a data structure that organizes points in a multi-dimensional space, and in particular is useful for performing efficient nearest neighbor searches.
The kdtree C library is required. In order to install, get the latest version from here and run the following commands:
./configure
make
sudo make install PREFIX=/usr
The easiest way to install node-kdtree is to use the npm package manager:
npm install kdtree
###Creating a tree
You may create a tree by instantiating a new KDTree object:
var kd = require('kdtree');
var tree = new kd.KDTree(3); // A new tree for 3-dimensional points
When creating a new tree we can specify the dimensions of the data. For example, a three-dimensional tree will contain points of the form (x, y, z). If a dimension is not specified, the tree defaults to three dimensions.
###Adding data to a tree
Data may be added to the tree using the insert method:
tree.insert(1, 2, 3);
tree.insert(10, 20, 30);
There must be one argument for each dimension of the data - for example, a three dimensional tree would have three arguments to insert. An optional data parameter may also be specified to store a data value alongside the point data:
tree.insert(39.285785, -76.610262, "USS Constellation");
###Nearest neighbor searches
The nearest method is used to find the point in the tree that is closest to a target point. For example:
> tree.nearest(39.273889, -76.738056);
[39.272051, -76.731917, "Bill's Music, Inc."]
nearest will return an array containing closest point, or an empty array if no points were found. As shown above, if the point contains a data value, that value will also be returned at the end of the array.
A nearestRange method is also provided, which allows us to find all of the points within a given range. For example:
> tree.nearestRange(0, 0, 3);
[ [ 1, 1 ],
[ 0, 2 ],
[ 2, 0 ],
[ 1, 0 ],
[ 0, 1 ],
[ 0, 0 ] ]
The first arguments to nearestRange are the components of the point to begin searching at. The last argument is the search range.
##API
##Credits
node-kdtree is developed by Justin Ethier.
Thanks to John Tsiombikas for developing libkdtree!
Patches are welcome; please send via pull request on github.
FAQs
Basic libkdtree binding to node
We found that kdtree demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.