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 , "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 , "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.