Class: GeoKdTree<T>
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:29
A spatial tree which is keyed on points on Earth's surface and allows searching for elements based on the great- circle distances from their keys to a query point.
Type Parameters
| Type Parameter |
|---|
T |
Constructors
Constructor
new GeoKdTree<
T>(keyFunc):GeoKdTree<T>
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:46
Constructor.
Parameters
| Parameter | Type | Description |
|---|---|---|
keyFunc | (element, out) => Float64Array | A function which generates keys from elements. Keys are cartesian representations of points on Earth's surface. |
Returns
GeoKdTree<T>
Throws
Error if the dimension count is less than 2.
Methods
clear()
clear():
void
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:235
Removes all elements from this tree.
Returns
void
insert()
insert(
element):void
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:183
Inserts an element into this tree. This operation will trigger a rebalancing if, after the insertion, the length of this tree's longest branch is more than twice the length of the shortest branch.
Parameters
| Parameter | Type | Description |
|---|---|---|
element | T | The element to insert. |
Returns
void
insertAll()
insertAll(
elements):void
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:191
Inserts a batch of elements into this tree. This tree will be rebalanced after the elements are inserted.
Parameters
| Parameter | Type | Description |
|---|---|---|
elements | Iterable<T> | An iterable of the elements to insert. |
Returns
void
rebuild()
rebuild():
void
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:228
Rebuilds and balances this tree.
Returns
void
remove()
remove(
element):boolean
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:200
Removes an element from this tree. This tree will be rebalanced after the element is removed.
Parameters
| Parameter | Type | Description |
|---|---|---|
element | T | The element to remove. |
Returns
boolean
Whether the element was removed.
removeAll()
removeAll(
elements):boolean
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:209
Removes a batch of elements from this tree. This tree will be rebalanced after the elements are removed.
Parameters
| Parameter | Type | Description |
|---|---|---|
elements | Iterable<T> | An iterable of the elements to remove. |
Returns
boolean
Whether at least one element was removed.
removeAndInsert()
removeAndInsert(
toRemove,toInsert):void
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:221
Removes elements from this tree, then inserts elements into this tree as a single operation. The tree will be rebalanced at the end of the operation.
Using this method is more efficient than calling removeAll() and insertAll() separately.
Parameters
| Parameter | Type | Description |
|---|---|---|
toRemove | Iterable<T> | An iterable of the elements to remove. |
toInsert | Iterable<T> | An iterable of the elements to insert. |
Returns
void
search()
Call Signature
search(
lat,lon,radius,visitor):void
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:58
Searches this tree for elements located near a query point and visits each of them with a function.
Parameters
| Parameter | Type | Description |
|---|---|---|
lat | number | The latitude of the query point, in degrees. |
lon | number | The longitude of the query point, in degrees. |
radius | number | The radius around the query point to search, in great-arc radians. |
visitor | GeoKdTreeSearchVisitor<T> | A visitor function. This function will be called once per element found within the search radius. If the visitor returns true, then the search will continue; if the visitor returns false, the search will immediately halt. |
Returns
void
Call Signature
search(
center,radius,visitor):void
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:67
Searches this tree for elements located near a query point and visits each of them with a function.
Parameters
| Parameter | Type | Description |
|---|---|---|
center | Readonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterface | The query point. |
radius | number | The radius around the query point to search, in great-arc radians. |
visitor | GeoKdTreeSearchVisitor<T> | A visitor function. This function will be called once per element found within the search radius. If the visitor returns true, then the search will continue; if the visitor returns false, the search will immediately halt. |
Returns
void
Call Signature
search(
lat,lon,radius,maxResultCount,out,filter?):T[]
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:79
Searches this tree for elements located near a query point and returns them in order of increasing distance from the query key.
Parameters
| Parameter | Type | Description |
|---|---|---|
lat | number | The latitude of the query point, in degrees. |
lon | number | The longitude of the query point, in degrees. |
radius | number | The radius around the query point to search, in great-arc radians. |
maxResultCount | number | The maximum number of search results to return. |
out | T[] | An array in which to store the search results. |
filter? | GeoKdTreeSearchFilter<T> | A function to filter the search results. |
Returns
T[]
An array containing the search results, in order of increasing distance from the query key.
Call Signature
search(
center,radius,maxResultCount,out,filter?):T[]
Defined in: src/sdk/utils/datastructures/GeoKdTree.ts:90
Searches this tree for elements located near a query point and returns them in order of increasing distance from the query key.
Parameters
| Parameter | Type | Description |
|---|---|---|
center | Readonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterface | The query point. |
radius | number | The radius around the query point to search, in great-arc radians. |
maxResultCount | number | The maximum number of search results to return. |
out | T[] | An array in which to store the search results. |
filter? | GeoKdTreeSearchFilter<T> | A function to filter the search results. |
Returns
T[]
An array containing the search results, in order of increasing distance from the query key.