luminous-leaf-locator
v1.0.8
Published
A lightweight library for efficient spatial searching of elements.
Downloads
5
Maintainers
Readme
Luminous Leaf Locator
A lightweight library for efficient spatial searching of elements. Luminous Leaf Locator
leverages a quadtree implementation for rapid querying of geographical data points, making it ideal for applications requiring fast searches over a large set of points.
Installation
npm install luminous-leaf-locator
Usage
const LuminousLeafLocator = require('luminous-leaf-locator');
const locator = new LuminousLeafLocator({ x: 0, y: 0, width: 10000, height: 10000 });
// Add an element with latitude, longitude, and custom data
const id = locator.addElement(50.4501, 30.5234, { name: "Test Point" });
// Find elements within 500 meters of a given latitude and longitude
const nearbyElements = locator.findNearby(50.4501, 30.5234, 500);
console.log(nearbyElements);
// Update an element's data by ID
locator.updateElement(id, { name: "Updated Test Point" });
// Remove an element by ID
locator.removeElement(id);
API
new LuminousLeafLocator(bounds, options)
bounds
: Object specifying the bounding box for the quadtree. Should havex
,y
(top left corner coordinates),width
, andheight
.options
: Optional. Quadtree specific options.
addElement(lat, lng, data)
lat
,lng
: Latitude and longitude of the element.data
: Custom data object.- Returns a unique ID for the added element.
findNearby(lat, lng, radius)
lat
,lng
: Latitude and longitude to search around.radius
: Search radius in meters.- Returns an array of elements within the radius.
updateElement(id, newData)
id
: Unique ID of the element to update.newData
: New data object for the element.- Returns true if the element was updated successfully.
removeElement(id)
id
: Unique ID of the element to remove.- Returns true if the element was removed successfully.
License
MIT