Class: Proj::PrimeMeridian

Inherits:
PjObject show all
Defined in:
lib/proj/prime_meridian.rb

Class Method Summary collapse

Instance Method Summary collapse

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_inObject

Returns a list of Prime Meridians 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
# File 'lib/proj/prime_meridian.rb', line 5

def self.built_in
  pointer_to_array = FFI::Pointer.new(Api::PJ_PRIME_MERIDIANS, Api.proj_list_prime_meridians)
  result = Array.new
  0.step do |i|
    prime_meridian_info = Api::PJ_PRIME_MERIDIANS.new(pointer_to_array[i])
    break result if prime_meridian_info[:id].nil?
    result << prime_meridian_info
  end
  result
end

Instance Method Details

#longitudeFloat

Returns the longitude of the prime meridian in its native unit



44
45
46
# File 'lib/proj/prime_meridian.rb', line 44

def longitude
  self.parameters[:longitude]
end

#parametersHash

Returns prime meridian parameters

Returns:

  • (Hash)

    Hash of ellipsoid parameters. Axes are in meters

See Also:



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

def parameters
  @parameters ||= begin
                    out_longitude = FFI::MemoryPointer.new(:double)
                    out_unit_conv_factor = FFI::MemoryPointer.new(:double)
                    out_unit_name = FFI::MemoryPointer.new(:string)

                    result = Api.proj_prime_meridian_get_parameters(self.context, self, out_longitude, out_unit_conv_factor, out_unit_name)

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

                    {longitude: out_longitude.read_double,
                     unit_conv_factor: out_unit_conv_factor.read_double,
                     unit_name: out_unit_name.read_pointer.read_string_to_null}
                  end
end

#unit_conv_factorFloat

Returns the conversion factor of the prime meridian longitude unit to radians



53
54
55
# File 'lib/proj/prime_meridian.rb', line 53

def unit_conv_factor
  self.parameters[:unit_conv_factor]
end

#unit_nameString

Returns the unit name



62
63
64
# File 'lib/proj/prime_meridian.rb', line 62

def unit_name
  self.parameters[:unit_name]
end