supercluster 2.0.4

Geospatial and non-geospatial point clustering.
Documentation

Supercluster

A high-performance Rust crate for geospatial and non-geospatial point clustering.

Reference implementation

test docs crate downloads GitHub codecov

Features

Documentation

For more in-depth details, please refer to the full documentation.

If you encounter any issues or have questions that are not addressed in the documentation, feel free to submit an issue.

This crate was initially inspired by Mapbox's supercluster blog post.

Usage

To use the supercluster crate in your project, add it to your Cargo.toml:

[dependencies]
supercluster = "x.x.x"

Below is an example of how to create and run a supercluster using the crate. This example demonstrates how to build supercluster options, create a new supercluster, and get a tile. For more detailed information and advanced usage, please refer to the full documentation.

use supercluster::{ CoordinateSystem, Supercluster, SuperclusterError };

fn main() -> Result<(), SuperclusterError> {
    // Set the configuration settings
    let options = Supercluster::builder()
        .radius(40.0)
        .extent(512.0)
        .min_points(2)
        .max_zoom(16)
        .coordinate_system(CoordinateSystem::LatLng)
        .build();

    // Create a new instance with the specified configuration settings
    let mut cluster = Supercluster::new(options);

    // Create a FeatureCollection Object
    // [GeoJSON Format Specification ยง 5](https://tools.ietf.org/html/rfc7946#section-5)
    let features = Supercluster::feature_builder()
        .add_point(vec![0.0, 0.0])
        .build();

    // Load a FeatureCollection Object into the Supercluster instance
    let index = cluster.load(features)?;

    index.get_tile(0, 0.0, 0.0)?;

    Ok(())
}

Safety

This crate uses #![forbid(unsafe_code)] to ensure everything is implemented in 100% safe Rust.

Contributing

๐ŸŽˆ Thanks for your help improving the project! We are so happy to have you!

We have a contributing guide to help you get involved in the project.

Sponsors