Package Exports
- @plotly/point-cluster
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@plotly/point-cluster) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
point-cluster

Point clustering for 2D spatial indexing. Incorporates optimized quad-tree data structure.
const cluster = require('point-cluster')
let ids = cluster(points)
// get point ids in the indicated range
let selectedIds = ids.range([10, 10, 20, 20])
// get levels of details: list of ids subranges for rendering purposes
let lod = ids.range([10, 10, 20, 20], { lod: true })
API
ids = cluster(points, options?)
Create index for the set of 2d points
based on options
.
points
is an array of[x,y, x,y, ...]
or[[x,y], [x,y], ...]
coordinates.ids
is Uint32Array with point ids sorted by zoom levels, suitable for WebGL buffer, subranging or alike.options
Option | Default | Description |
---|---|---|
bounds |
'auto' |
Data range, if different from points bounds, eg. in case of subdata. |
depth |
256 |
Max number of levels. Points below the indicated level are grouped into single level. |
output |
'array' |
Output data array or data format. For available formats see dtype. |
result = ids.range(box?, options?)
Get point ids from the indicated range.
box
can be any rectangle object, eg.[l, t, r, b]
, see parse-rect.options
Option | Default | Description |
---|---|---|
lod |
false |
Makes result a list of level details instead of ids, useful for obtaining subranges to render. |
px |
0 |
Min pixel size in data dimension (number or [width, height] couple) to search for, to ignore lower levels. |
level |
null |
Max level to limit search. |
let levels = ids.range([0,0, 100, 100], { lod: true, d: dataRange / canvas.width })
levels.forEach([from, to] => {
// offset and count point to range in `ids` array
render( ids.subarray( from, to ) )
})
Related
- snap-points-2d − grouping points by pixels.
- kdgrass − minimal kd-tree implementation.
- regl-scatter2d − highly performant scatter2d plot.
License
© 2017 Dmitry Yv. MIT License
Development supported by plot.ly.