Module: H3::Inspection

Extended by:
Bindings::Base
Included in:
H3
Defined in:
lib/h3/inspection.rb

Overview

Index inspection functions.

Instance Method Summary collapse

Methods included from Bindings::Base

extended

Instance Method Details

#base_cell(h3_index) ⇒ Integer

Derives the base cell number of the given H3 index

Examples:

Derive the base cell number of a H3 index

H3.base_cell(617700440100569087)
20

Parameters:

  • h3_index (Integer)

    A valid H3 index

Returns:

  • (Integer)

    Base cell number



41
# File 'lib/h3/inspection.rb', line 41

attach_function :base_cell, :h3GetBaseCell, %i[h3_index], :int

#faces(h3_index) ⇒ Array<Integer>

Find all icosahedron faces intersected by a given H3 index.

Examples:

Find icosahedron faces for given index

H3.faces(585961082523222015)
[1, 2, 6, 7, 11]

Parameters:

  • h3_index (Integer)

    A H3 index.

Returns:

  • (Array<Integer>)

    Faces. Faces are represented as integers from 0-19, inclusive.



177
178
179
180
181
182
183
# File 'lib/h3/inspection.rb', line 177

def faces(h3_index)
  max_faces = max_face_count(h3_index)
  out = FFI::MemoryPointer.new(:int, max_faces)
  Bindings::Private.h3_faces(h3_index, out)
  # The C function returns a sparse array whose holes are represented by -1.
  out.read_array_of_int(max_faces).reject(&:negative?).sort
end

#from_string(h3_string) ⇒ Integer

Derives the H3 index for a given hexadecimal string representation.

Examples:

Derive the H3 index from the given hexadecimal form.

H3.from_string("8928308280fffff")
617700169958293503

Parameters:

  • h3_string (String)

    A H3 index in hexadecimal form.

Returns:

  • (Integer)

    H3 index



60
# File 'lib/h3/inspection.rb', line 60

attach_function :from_string, :stringToH3, %i[string], :h3_index

#h3_base_cell(h3_index) ⇒ Object

Deprecated.

Please use #base_cell instead.



44
45
46
# File 'lib/h3/inspection.rb', line 44

def h3_base_cell(h3_index)
  base_cell(h3_index)
end

#h3_faces(h3_index) ⇒ Object

Deprecated.

Please use #faces instead.



186
187
188
# File 'lib/h3/inspection.rb', line 186

def h3_faces(h3_index)
  faces(h3_index)
end

#h3_pentagon?(h3_index) ⇒ Boolean

Deprecated.

Please use #pentagon? instead.

Returns:

  • (Boolean)


84
85
86
# File 'lib/h3/inspection.rb', line 84

def h3_pentagon?(h3_index)
  pentagon?(h3_index)
end

#h3_res_class_3?(h3_index) ⇒ Boolean

Deprecated.

Please use #class_3_resolution? instead.

Returns:

  • (Boolean)


106
107
108
# File 'lib/h3/inspection.rb', line 106

def h3_res_class_3?(h3_index)
  class_3_resolution?(h3_index)
end

#h3_resolution(h3_index) ⇒ Object

Deprecated.

Please use #resolution instead.



25
26
27
# File 'lib/h3/inspection.rb', line 25

def h3_resolution(h3_index)
  resolution(h3_index)
end

#h3_to_string(h3_index) ⇒ Object

Deprecated.

Please use #to_string instead.



148
149
150
# File 'lib/h3/inspection.rb', line 148

def h3_to_string(h3_index)
  to_string(h3_index)
end

#h3_valid?(h3_index) ⇒ Boolean

Deprecated.

Please use #valid? instead.

Returns:

  • (Boolean)


127
128
129
# File 'lib/h3/inspection.rb', line 127

def h3_valid?(h3_index)
  valid?(h3_index)
end

#max_face_count(h3_index) ⇒ Integer

Returns the maximum number of icosahedron faces the given H3 index may intersect.

Examples:

Check maximum faces

H3.max_face_count(585961082523222015)
5

Parameters:

  • h3_index (Integer)

    A H3 index.

Returns:

  • (Integer)

    Maximum possible number of faces



164
# File 'lib/h3/inspection.rb', line 164

attach_function :max_face_count, :maxFaceCount, %i[h3_index], :int

#resolution(h3_index) ⇒ Integer

Derive the resolution of a given H3 index

Examples:

Derive the resolution of a H3 index

H3.resolution(617700440100569087)
9

Parameters:

  • h3_index (Integer)

    A valid H3 index

Returns:

  • (Integer)

    Resolution of H3 index



22
# File 'lib/h3/inspection.rb', line 22

attach_function :resolution, :h3GetResolution, %i[h3_index], Resolution

#string_to_h3(string) ⇒ Object

Deprecated.

Please use #from_string instead.



63
64
65
# File 'lib/h3/inspection.rb', line 63

def string_to_h3(string)
  from_string(string)
end

#to_string(h3_index) ⇒ String

Derives the hexadecimal string representation for a given H3 index.

Examples:

Derive the given hexadecimal form for the H3 index

H3.to_string(617700169958293503)
"89283470dcbffff"

Parameters:

  • h3_index (Integer)

    A valid H3 index.

Returns:

  • (String)

    H3 index in hexadecimal form.



141
142
143
144
145
# File 'lib/h3/inspection.rb', line 141

def to_string(h3_index)
  h3_str = FFI::MemoryPointer.new(:char, H3_TO_STR_BUF_SIZE)
  Bindings::Private.h3_to_string(h3_index, h3_str, H3_TO_STR_BUF_SIZE)
  h3_str.read_string
end