luminous-leaf-locator

1.0.8 • Public • Published

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 have x, y (top left corner coordinates), width, and height.
  • 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

Package Sidebar

Install

npm i luminous-leaf-locator

Weekly Downloads

4

Version

1.0.8

License

MIT

Unpacked Size

5.21 kB

Total Files

5

Last publish

Collaborators

  • haydetani