Constructors
constructor
- new KdTreeMap<K, V>(dim: number, pairs?: Iterable<Pair<K, V>>): KdTreeMap<K, V>
Type parameters
K: ArrayLike<number, K> & Iterable<number, K>
V
Parameters
dim: number
Optional pairs: Iterable<Pair<K, V>>
Properties
Protected _size
_size: number
Protected root
root: MaybeKdNode<K, V>
Methods
[Symbol.iterator]
- [Symbol.iterator](): Generator<Pair<K, V>, void, unknown>
Returns Generator<Pair<K, V>, void, unknown>
Protected buildTree
- buildTree(points: Pair<K, V>[], depth: number, parent?: KdNode<K, V>): undefined | KdNode<K, V>
Parameters
points: Pair<K, V>[]
depth: number
Optional parent: KdNode<K, V>
Returns undefined | KdNode<K, V>
Protected doSelect
- doSelect<T>(q: K, f: Fn<KdNode<K, V>, T>, maxDist: number, maxNum?: number, acc?: T[]): T[]
Type parameters
Parameters
q: K
f: Fn<KdNode<K, V>, T>
maxDist: number
maxNum: number = 1
acc: T[] = ...
Returns T[]
get
- get(key: K, eps?: number): undefined | V
Parameters
Returns undefined | V
has
- has(key: K, eps?: number): boolean
Parameters
Returns boolean
into
- into(pairs: Iterable<Pair<K, V>>, eps?: number): boolean
Parameters
pairs: Iterable<Pair<K, V>>
eps: number = ...
Returns boolean
keys
- keys(): Generator<K, void, unknown>
Returns Generator<K, void, unknown>
query
- query(q: K, maxDist: number, limit?: number, acc?: Pair<K, V>[]): Pair<K, V>[]
Parameters
q: K
maxDist: number
Optional limit: number
Optional acc: Pair<K, V>[]
Returns Pair<K, V>[]
queryKeys
- queryKeys(q: K, maxDist: number, limit?: number, acc?: K[]): K[]
Parameters
q: K
maxDist: number
Optional limit: number
Optional acc: K[]
Returns K[]
queryValues
- queryValues(q: K, maxDist: number, limit?: number, acc?: V[]): V[]
Parameters
q: K
maxDist: number
Optional limit: number
Optional acc: V[]
Returns V[]
remove
Parameters
Returns boolean
set
- set(key: K, val: V, eps?: number): boolean
Parameters
key: K
val: V
eps: number = ...
Returns boolean
values
- values(): IterableIterator<V>
Returns IterableIterator<V>
https://en.wikipedia.org/wiki/K-d_tree
Partially based on: https://github.com/ubilabs/kd-tree-javascript