class Proj::PrimeMeridian

Public Class Methods

built_in() click to toggle source

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

# 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

Public Instance Methods

longitude() click to toggle source

Returns the longitude of the prime meridian in its native unit

@see proj.org/development/reference/functions.html#c.proj_prime_meridian_get_parameters

@return [Float]

# File lib/proj/prime_meridian.rb, line 44
def longitude
  self.parameters[:longitude]
end
parameters() click to toggle source

Returns prime meridian parameters

@see proj.org/development/reference/functions.html#c.proj_prime_meridian_get_parameters

@return [Hash] Hash of ellipsoid parameters. Axes are in meters

# 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_factor() click to toggle source

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

@see proj.org/development/reference/functions.html#c.proj_prime_meridian_get_parameters

@return [Float]

# File lib/proj/prime_meridian.rb, line 53
def unit_conv_factor
  self.parameters[:unit_conv_factor]
end
unit_name() click to toggle source

Returns the unit name

@see proj.org/development/reference/functions.html#c.proj_prime_meridian_get_parameters

@return [String ]

# File lib/proj/prime_meridian.rb, line 62
def unit_name
  self.parameters[:unit_name]
end