Method: Proj::Ellipsoid#parameters

Defined in:
lib/proj/ellipsoid.rb

#parametersHash

Returns ellipsoid parameters

Returns:

  • (Hash)

    Hash of ellipsoid parameters. Axes are in meters

See Also:



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/proj/ellipsoid.rb', line 22

def parameters
  @parameters ||= begin
    out_semi_major_metre = FFI::MemoryPointer.new(:double)
    out_semi_minor_metre = FFI::MemoryPointer.new(:double)
    out_is_semi_minor_computed = FFI::MemoryPointer.new(:int)
    out_inv_flattening = FFI::MemoryPointer.new(:double)

    result = Api.proj_ellipsoid_get_parameters(self.context, self, out_semi_major_metre, out_semi_minor_metre, out_is_semi_minor_computed, out_inv_flattening)

    if result != 1
      Error.check_object(self)
    end

    {semi_major_axis: out_semi_major_metre.read_double,
     semi_minor_axis: out_semi_minor_metre.read_double,
     semi_minor_axis_computed: out_is_semi_minor_computed.read_int == 1 ? true : false,
     inverse_flattening: out_inv_flattening.null? ? nil : out_inv_flattening.read_double}
  end
end