Method: H3::Traversal#k_ring

Defined in:
lib/h3/traversal.rb

#k_ring(origin, k) ⇒ Array<Integer>

Derives H3 indexes within k distance of the origin H3 index.

k-ring 0 is defined as the origin index, k-ring 1 is defined as k-ring 0 and all neighboring indexes, and so on.

Examples:

Derive the k-ring for a given H3 index with k of 0.

H3.k_ring(617700169983721471, 0)
[617700169983721471]

Derive the k-ring for a given H3 index with k of 1.

H3.k_ring(617700169983721471, 1)
[
  617700169983721471, 617700170047946751, 617700169984245759,
  617700169982672895, 617700169983983615, 617700170044276735,
  617700170044014591
]

Parameters:

  • origin (Integer)

    Origin H3 index

  • k (Integer)

    K distance.

Returns:

  • (Array<Integer>)

    Array of H3 indexes within the k-range.



123
124
125
126
127
128
# File 'lib/h3/traversal.rb', line 123

def k_ring(origin, k)
  max_hexagons = max_kring_size(k)
  out = H3Indexes.of_size(max_hexagons)
  Bindings::Private.k_ring(origin, k, out)
  out.read
end