supercluster

WebJar for supercluster

License

License

ISC
Categories

Categories

Github Development Tools Version Controls
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

github-com-mapbox-supercluster
Last Version

Last Version

2.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

supercluster
WebJar for supercluster
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/mapbox/supercluster

Download github-com-mapbox-supercluster

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/github-com-mapbox-supercluster/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>github-com-mapbox-supercluster</artifactId>
    <version>2.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/github-com-mapbox-supercluster/
implementation 'org.webjars.npm:github-com-mapbox-supercluster:2.0.0'
// https://jarcasting.com/artifacts/org.webjars.npm/github-com-mapbox-supercluster/
implementation ("org.webjars.npm:github-com-mapbox-supercluster:2.0.0")
'org.webjars.npm:github-com-mapbox-supercluster:jar:2.0.0'
<dependency org="org.webjars.npm" name="github-com-mapbox-supercluster" rev="2.0.0">
  <artifact name="github-com-mapbox-supercluster" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='github-com-mapbox-supercluster', version='2.0.0')
)
libraryDependencies += "org.webjars.npm" % "github-com-mapbox-supercluster" % "2.0.0"
[org.webjars.npm/github-com-mapbox-supercluster "2.0.0"]

Dependencies

compile (1)

Group / Artifact Type Version
org.webjars.npm : rbush jar [1.4.1,2)

Project Modules

There are no modules declared in this project.

supercluster Simply Awesome Build Status

A very fast JavaScript library for geospatial point clustering for browsers and Node.

<script src="https://unpkg.com/[email protected]/dist/supercluster.min.js"></script>
const index = new Supercluster({
    radius: 40,
    maxZoom: 16
});
index.load(points);
index.getClusters([-180, -85, 180, 85], 2);

Clustering 6 million points in Leaflet:

clusters2

Install

Install using NPM (npm install supercluster) or Yarn (yarn add supercluster), then:

// import as a ES module
import Supercluster from 'supercluster';

// or require in Node / Browserify
const Supercluster = require('supercluster');

Or use a browser build directly:

<script src="https://unpkg.com/[email protected]/dist/supercluster.min.js"></script>

Methods

load(points)

Loads an array of GeoJSON Feature objects. Each feature's geometry must be a GeoJSON Point. Once loaded, index is immutable.

getClusters(bbox, zoom)

For the given bbox array ([westLng, southLat, eastLng, northLat]) and integer zoom, returns an array of clusters and points as GeoJSON Feature objects.

getTile(z, x, y)

For a given zoom and x/y coordinates, returns a geojson-vt-compatible JSON tile object with cluster/point features.

getChildren(clusterId)

Returns the children of a cluster (on the next zoom level) given its id (cluster_id value from feature properties).

getLeaves(clusterId, limit = 10, offset = 0)

Returns all the points of a cluster (given its cluster_id), with pagination support: limit is the number of points to return (set to Infinity for all points), and offset is the amount of points to skip (for pagination).

getClusterExpansionZoom(clusterId)

Returns the zoom on which the cluster expands into several children (useful for "click to zoom" feature) given the cluster's cluster_id.

Options

Option Default Description
minZoom 0 Minimum zoom level at which clusters are generated.
maxZoom 16 Maximum zoom level at which clusters are generated.
minPoints 2 Minimum number of points to form a cluster.
radius 40 Cluster radius, in pixels.
extent 512 (Tiles) Tile extent. Radius is calculated relative to this value.
nodeSize 64 Size of the KD-tree leaf node. Affects performance.
log false Whether timing info should be logged.
generateId false Whether to generate ids for input features in vector tiles.

Property map/reduce options

In addition to the options above, supercluster supports property aggregation with the following two options:

  • map: a function that returns cluster properties corresponding to a single point.
  • reduce: a reduce function that merges properties of two clusters into one.

Example of setting up a sum cluster property that accumulates the sum of myValue property values:

const index = new Supercluster({
    map: (props) => ({sum: props.myValue}),
    reduce: (accumulated, props) => { accumulated.sum += props.sum; }
});

Note that reduce must not mutate the second argument (props).

Developing Supercluster

npm install       # install dependencies
npm run build     # generate dist/supercluster.js and dist/supercluster.min.js
npm test          # run tests
org.webjars.npm

Mapbox

Mapbox is the location data platform for mobile and web applications. We're changing the way people move around cities and explore our world.

Versions

Version
2.0.0