Skip to main content
. Author manuscript; available in PMC: 2018 Jul 20.
Published in final edited form as: Proc ACM SIGSPATIAL Int Conf Adv Inf. 2017 Nov;2017:28.

Algorithm 5.

SparkGIS Spatial kNN

1: procedure NativeSpatialKNN(tile, k, searchRadius)
2: dataset1 // all objects from dataset1 in tile
3: dataset2 // all objects from dataset2 in tile
4:  /* local R*tree index */
5: localIndex.build(dataset2)
6: getObjectDensity()
7: for each object in dataset1 do
8:   while searchRadius < spacedimensions do
9:    /* Use local index to get qualifying objects */
10:    if qualifying objects > (k * 1.5) then
11:     break
12:    else searchRadius* = 2
13:    end if
14:   end while
15: end for
16: for each qualifying object from dataset2 do
17:   Compute distance
18: end for
19:  Sort(distance, neighbors)
20:  return first k results
21: end procedure