Module: Proj::Api

Extended by:
FFI::Library
Defined in:
lib/api/proj.rb,
lib/api/proj_ffi.rb,
lib/api/proj_version.rb,
lib/api/proj_experimental.rb,
lib/proj/pj_axis_description.rb,
lib/proj/pj_param_description.rb

Defined Under Namespace

Classes: P5Factors, PjAxisDescription, PjCoord, PjEllps, PjEnu, PjGeod, PjGridInfo, PjInfo, PjInitInfo, PjList, PjLp, PjLpz, PjLpzt, PjOpk, PjParamDescription, PjPrimeMeridians, PjProjInfo, PjUnits, PjUv, PjUvw, PjUvwt, PjXy, PjXyz, PjXyzt, ProjCelestialBodyInfo, ProjCrsInfo, ProjCrsListParameters, ProjFileApi, ProjUnitInfo

Constant Summary collapse

PjLogLevel =
enum(
  :PJ_LOG_NONE, 0,
  :PJ_LOG_ERROR, 1,
  :PJ_LOG_DEBUG, 2,
  :PJ_LOG_TRACE, 3,
  :PJ_LOG_TELL, 4,
  :PJ_LOG_DEBUG_MAJOR, 2,
  :PJ_LOG_DEBUG_MINOR, 3
)
ProjOpenAccess =
enum(
  :PROJ_OPEN_ACCESS_READ_ONLY, 0,
  :PROJ_OPEN_ACCESS_READ_UPDATE, 1,
  :PROJ_OPEN_ACCESS_CREATE, 2
)
PjDirection =
enum(
  :PJ_FWD, 1,
  :PJ_IDENT, 0,
  :PJ_INV, -1
)
PjGuessedWktDialect =
enum(
  :PJ_GUESSED_WKT2_2019, 0,
  :PJ_GUESSED_WKT2_2018, 0,
  :PJ_GUESSED_WKT2_2015, 1,
  :PJ_GUESSED_WKT1_GDAL, 2,
  :PJ_GUESSED_WKT1_ESRI, 3,
  :PJ_GUESSED_NOT_WKT, 4
)
PjCategory =
enum(
  :PJ_CATEGORY_ELLIPSOID, 0,
  :PJ_CATEGORY_PRIME_MERIDIAN, 1,
  :PJ_CATEGORY_DATUM, 2,
  :PJ_CATEGORY_CRS, 3,
  :PJ_CATEGORY_COORDINATE_OPERATION, 4,
  :PJ_CATEGORY_DATUM_ENSEMBLE, 5
)
PjType =
enum(
  :PJ_TYPE_UNKNOWN, 0,
  :PJ_TYPE_ELLIPSOID, 1,
  :PJ_TYPE_PRIME_MERIDIAN, 2,
  :PJ_TYPE_GEODETIC_REFERENCE_FRAME, 3,
  :PJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME, 4,
  :PJ_TYPE_VERTICAL_REFERENCE_FRAME, 5,
  :PJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME, 6,
  :PJ_TYPE_DATUM_ENSEMBLE, 7,
  :PJ_TYPE_CRS, 8,
  :PJ_TYPE_GEODETIC_CRS, 9,
  :PJ_TYPE_GEOCENTRIC_CRS, 10,
  :PJ_TYPE_GEOGRAPHIC_CRS, 11,
  :PJ_TYPE_GEOGRAPHIC_2D_CRS, 12,
  :PJ_TYPE_GEOGRAPHIC_3D_CRS, 13,
  :PJ_TYPE_VERTICAL_CRS, 14,
  :PJ_TYPE_PROJECTED_CRS, 15,
  :PJ_TYPE_COMPOUND_CRS, 16,
  :PJ_TYPE_TEMPORAL_CRS, 17,
  :PJ_TYPE_ENGINEERING_CRS, 18,
  :PJ_TYPE_BOUND_CRS, 19,
  :PJ_TYPE_OTHER_CRS, 20,
  :PJ_TYPE_CONVERSION, 21,
  :PJ_TYPE_TRANSFORMATION, 22,
  :PJ_TYPE_CONCATENATED_OPERATION, 23,
  :PJ_TYPE_OTHER_COORDINATE_OPERATION, 24,
  :PJ_TYPE_TEMPORAL_DATUM, 25,
  :PJ_TYPE_ENGINEERING_DATUM, 26,
  :PJ_TYPE_PARAMETRIC_DATUM, 27,
  :PJ_TYPE_DERIVED_PROJECTED_CRS, 28,
  :PJ_TYPE_COORDINATE_METADATA, 29
)
PjComparisonCriterion =
enum(
  :PJ_COMP_STRICT, 0,
  :PJ_COMP_EQUIVALENT, 1,
  :PJ_COMP_EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS, 2
)
PjWktType =
enum(
  :PJ_WKT2_2015, 0,
  :PJ_WKT2_2015_SIMPLIFIED, 1,
  :PJ_WKT2_2019, 2,
  :PJ_WKT2_2018, 2,
  :PJ_WKT2_2019_SIMPLIFIED, 3,
  :PJ_WKT2_2018_SIMPLIFIED, 3,
  :PJ_WKT1_GDAL, 4,
  :PJ_WKT1_ESRI, 5
)
ProjCrsExtentUse =
enum(
  :PJ_CRS_EXTENT_NONE, 0,
  :PJ_CRS_EXTENT_BOTH, 1,
  :PJ_CRS_EXTENT_INTERSECTION, 2,
  :PJ_CRS_EXTENT_SMALLEST, 3
)
ProjGridAvailabilityUse =
enum(
  :PROJ_GRID_AVAILABILITY_USED_FOR_SORTING, 0,
  :PROJ_GRID_AVAILABILITY_DISCARD_OPERATION_IF_MISSING_GRID, 1,
  :PROJ_GRID_AVAILABILITY_IGNORED, 2,
  :PROJ_GRID_AVAILABILITY_KNOWN_AVAILABLE, 3
)
PjProjStringType =
enum(
  :PJ_PROJ_5, 0,
  :PJ_PROJ_4, 1
)
ProjSpatialCriterion =
enum(
  :PROJ_SPATIAL_CRITERION_STRICT_CONTAINMENT, 0,
  :PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION, 1
)
ProjIntermediateCrsUse =
enum(
  :PROJ_INTERMEDIATE_CRS_USE_ALWAYS, 0,
  :PROJ_INTERMEDIATE_CRS_USE_IF_NO_DIRECT_TRANSFORMATION, 1,
  :PROJ_INTERMEDIATE_CRS_USE_NEVER, 2
)
PjCoordinateSystemType =
enum(
  :PJ_CS_TYPE_UNKNOWN, 0,
  :PJ_CS_TYPE_CARTESIAN, 1,
  :PJ_CS_TYPE_ELLIPSOIDAL, 2,
  :PJ_CS_TYPE_VERTICAL, 3,
  :PJ_CS_TYPE_SPHERICAL, 4,
  :PJ_CS_TYPE_ORDINAL, 5,
  :PJ_CS_TYPE_PARAMETRIC, 6,
  :PJ_CS_TYPE_DATETIMETEMPORAL, 7,
  :PJ_CS_TYPE_TEMPORALCOUNT, 8,
  :PJ_CS_TYPE_TEMPORALMEASURE, 9
)
PjUnitType =
enum(
  :PJ_UT_ANGULAR, 0,
  :PJ_UT_LINEAR, 1,
  :PJ_UT_SCALE, 2,
  :PJ_UT_TIME, 3,
  :PJ_UT_PARAMETRIC, 4
)
PjCartesianCs2dType =
enum(
  :PJ_CART2D_EASTING_NORTHING, 0,
  :PJ_CART2D_NORTHING_EASTING, 1,
  :PJ_CART2D_NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH, 2,
  :PJ_CART2D_SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH, 3,
  :PJ_CART2D_WESTING_SOUTHING, 4
)
PjEllipsoidalCs2dType =
enum(
  :PJ_ELLPS2D_LONGITUDE_LATITUDE, 0,
  :PJ_ELLPS2D_LATITUDE_LONGITUDE, 1
)
PjEllipsoidalCs3dType =
enum(
  :PJ_ELLPS3D_LONGITUDE_LATITUDE_HEIGHT, 0,
  :PJ_ELLPS3D_LATITUDE_LONGITUDE_HEIGHT, 1
)
PROJ_VERSION =
Gem::Version.new("#{info[:major]}.#{info[:minor]}.#{info[:patch]}")

Class Method Summary collapse

Class Method Details

.library_namesObject



8
9
10
# File 'lib/api/proj_ffi.rb', line 8

def self.library_names
  ["proj"]
end

.library_versionsObject



12
13
14
# File 'lib/api/proj_ffi.rb', line 12

def self.library_versions
  ["9_1", "9", "25", "22", "19", "17", "15", "14", "13", "12", "11"]
end

.proj_versionObject



16
17
18
19
# File 'lib/api/proj_version.rb', line 16

def self.proj_version
  info = proj_info
  info[:major] * 10000 + info[:minor] * 100 + info[:patch]
end

.search_namesObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/api/proj_ffi.rb', line 16

def self.search_names
  result = Array.new
  self.library_names.each do |name|
    result << "lib#{name}"
    self.library_versions.each do |version|
      case RbConfig::CONFIG['host_os']
        when /darwin|mac os/
          result << "lib#{name}.#{version}"
        when /mingw/
          result << "lib#{name}-#{version}"
        when /mswin/
          result << "#{name}_#{version}"
        else
          result << "lib#{name}.so.#{version}"
      end
    end
  end
  result
end