Module: RGeo::ImplHelper::Utils

Included in:
Cartesian::Factory, Geographic::Factory, Geos::CAPIFactory, Geos::FFIFactory, Geos::ZMFactory
Defined in:
lib/rgeo/impl_helper/utils.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.setup_coord_sys(srid, coord_sys, coord_sys_class) ⇒ Object

Helper function to create coord_sys from common options in most factories. Returns a hash with finalized coord sys info after processing.

The reason we return the data as a hash instead of assigning instance variables is because some classes need to do this multiple times with different values and others pass the data to a CAPI or FFI.



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/rgeo/impl_helper/utils.rb', line 20

def self.setup_coord_sys(srid, coord_sys, coord_sys_class)
  coord_sys_class = CoordSys::CONFIG.default_coord_sys_class unless coord_sys_class.is_a?(Class)

  coord_sys = coord_sys_class.create_from_wkt(coord_sys) if coord_sys.is_a?(String)

  srid ||= coord_sys.authority_code if coord_sys
  srid = srid.to_i
  # Create a coord sys based on the SRID if one was not given
  coord_sys = coord_sys_class.create(srid) if coord_sys.nil? && srid != 0

  { coord_sys: coord_sys, srid: srid }
end