Class: Proj::Ellipsoid
Class Method Summary collapse
-
.built_in ⇒ Object
Returns a list of ellipsoids that are built into Proj.
Instance Method Summary collapse
-
#inverse_flattening ⇒ Float
Returns the inverse flattening value.
-
#parameters ⇒ Hash
Returns ellipsoid parameters.
-
#semi_major_axis ⇒ Float
Returns the semi-major axis in meters.
-
#semi_minor_axis ⇒ Float
Returns the semi-minor axis in meters.
-
#semi_minor_axis_computed ⇒ Boolean
Returns whether the semi-minor axis is computed.
Methods inherited from PjObject
#accuracy, #angular_input?, #angular_output?, #area_of_use, #auth, #auth_name, #context, #context=, create, create_from_database, create_from_name, create_from_wkt, #definition, #degree_input?, #degree_output?, #deprecated?, #description, #equivalent_to?, #errno, #errorno, #factors, #geod_distance, #has_inverse?, #id, #id_code, #info, #initialize, #initialize_copy, #lp_distance, #lpz_distance, #name, #non_deprecated, #proj_type, #remarks, #scope, #source_crs, #target_crs, #to_json, #to_proj_string, #to_ptr, #to_s, #to_wkt, #xy_distance, #xyz_distance
Constructor Details
This class inherits a constructor from Proj::PjObject
Class Method Details
.built_in ⇒ Object
Returns a list of ellipsoids that are built into Proj. A more comprehensive list is stored in the Proj database and can be queried via PjObject#create_from_database
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/proj/ellipsoid.rb', line 5 def self.built_in pointer_to_array = FFI::Pointer.new(Api::PJ_ELLPS, Api.proj_list_ellps) result = Array.new 0.step do |i| pj_ellps = Api::PJ_ELLPS.new(pointer_to_array[i]) break result if pj_ellps[:id].nil? result << pj_ellps end result end |
Instance Method Details
#inverse_flattening ⇒ Float
Returns the inverse flattening value
74 75 76 |
# File 'lib/proj/ellipsoid.rb', line 74 def inverse_flattening self.parameters[:inverse_flattening] end |
#parameters ⇒ Hash
Returns ellipsoid parameters
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 |
#semi_major_axis ⇒ Float
Returns the semi-major axis in meters
47 48 49 |
# File 'lib/proj/ellipsoid.rb', line 47 def semi_major_axis self.parameters[:semi_major_axis] end |
#semi_minor_axis ⇒ Float
Returns the semi-minor axis in meters
56 57 58 |
# File 'lib/proj/ellipsoid.rb', line 56 def semi_minor_axis self.parameters[:semi_minor_axis] end |
#semi_minor_axis_computed ⇒ Boolean
Returns whether the semi-minor axis is computed
65 66 67 |
# File 'lib/proj/ellipsoid.rb', line 65 def semi_minor_axis_computed self.parameters[:semi_minor_axis_computed] end |