proj4rb 3.0.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +26 -15
  3. data/README.rdoc +82 -44
  4. data/Rakefile +27 -27
  5. data/lib/api/api.rb +96 -118
  6. data/lib/api/api_5_0.rb +331 -300
  7. data/lib/api/api_5_1.rb +6 -6
  8. data/lib/api/api_5_2.rb +4 -4
  9. data/lib/api/api_6_0.rb +116 -14
  10. data/lib/api/api_6_1.rb +4 -4
  11. data/lib/api/api_6_2.rb +9 -6
  12. data/lib/api/api_6_3.rb +6 -0
  13. data/lib/api/api_7_0.rb +68 -0
  14. data/lib/api/api_7_1.rb +73 -0
  15. data/lib/api/api_7_2.rb +14 -0
  16. data/lib/api/api_8_0.rb +6 -0
  17. data/lib/api/api_8_1.rb +24 -0
  18. data/lib/api/api_8_2.rb +6 -0
  19. data/lib/api/api_9_1.rb +7 -0
  20. data/lib/api/api_9_2.rb +9 -0
  21. data/lib/api/api_experimental.rb +196 -0
  22. data/lib/proj/area.rb +73 -32
  23. data/lib/proj/axis_info.rb +44 -0
  24. data/lib/proj/bounds.rb +13 -0
  25. data/lib/proj/context.rb +174 -28
  26. data/lib/proj/conversion.rb +92 -0
  27. data/lib/proj/coordinate.rb +281 -197
  28. data/lib/proj/coordinate_operation_mixin.rb +381 -0
  29. data/lib/proj/coordinate_system.rb +137 -0
  30. data/lib/proj/crs.rb +672 -204
  31. data/lib/proj/crs_info.rb +47 -0
  32. data/lib/proj/database.rb +305 -0
  33. data/lib/proj/datum.rb +32 -0
  34. data/lib/proj/datum_ensemble.rb +34 -0
  35. data/lib/proj/ellipsoid.rb +77 -41
  36. data/lib/proj/error.rb +62 -9
  37. data/lib/proj/file_api.rb +166 -0
  38. data/lib/proj/grid.rb +121 -0
  39. data/lib/proj/grid_cache.rb +64 -0
  40. data/lib/proj/grid_info.rb +19 -0
  41. data/lib/proj/network_api.rb +92 -0
  42. data/lib/proj/operation.rb +42 -42
  43. data/lib/proj/operation_factory_context.rb +136 -0
  44. data/lib/proj/parameter.rb +38 -0
  45. data/lib/proj/parameters.rb +106 -0
  46. data/lib/proj/pj_object.rb +670 -80
  47. data/lib/proj/pj_objects.rb +44 -0
  48. data/lib/proj/prime_meridian.rb +65 -39
  49. data/lib/proj/projection.rb +698 -207
  50. data/lib/proj/session.rb +46 -0
  51. data/lib/proj/strings.rb +32 -0
  52. data/lib/proj/transformation.rb +101 -60
  53. data/lib/proj/unit.rb +108 -53
  54. data/lib/proj.rb +110 -9
  55. data/proj4rb.gemspec +5 -5
  56. data/test/abstract_test.rb +23 -1
  57. data/test/context_test.rb +172 -82
  58. data/test/conversion_test.rb +368 -0
  59. data/test/coordinate_system_test.rb +144 -0
  60. data/test/crs_test.rb +770 -71
  61. data/test/database_test.rb +360 -0
  62. data/test/datum_ensemble_test.rb +65 -0
  63. data/test/datum_test.rb +55 -0
  64. data/test/ellipsoid_test.rb +64 -18
  65. data/test/file_api_test.rb +66 -0
  66. data/test/grid_cache_test.rb +72 -0
  67. data/test/grid_test.rb +141 -0
  68. data/test/network_api_test.rb +45 -0
  69. data/test/operation_factory_context_test.rb +201 -0
  70. data/test/parameters_test.rb +40 -0
  71. data/test/pj_object_test.rb +179 -0
  72. data/test/prime_meridian_test.rb +76 -0
  73. data/test/proj_test.rb +46 -4
  74. data/test/projection_test.rb +646 -222
  75. data/test/session_test.rb +78 -0
  76. data/test/transformation_test.rb +149 -7
  77. data/test/unit_test.rb +57 -28
  78. metadata +51 -13
  79. data/lib/api/api_4_9.rb +0 -31
  80. data/lib/proj/config.rb +0 -70
  81. data/lib/proj/point.rb +0 -72
  82. data/test/prime_meridians_test.rb +0 -33
@@ -1,207 +1,698 @@
1
- # encoding: UTF-8
2
-
3
- module Proj
4
- # @deprecated This class is *DEPRECATED.* It will be removed when Proj 7 is released and removes the
5
- # underlying API's this class uses. Code should be ported to use Crs and Transformation objects.
6
- class Projection
7
- def self.parse(value)
8
- case value
9
- when Array
10
- value
11
- when String
12
- value.strip.split(' ')
13
- when Hash
14
- array = []
15
- value.each_pair do |key, value|
16
- key = "+#{key}"
17
- array << (value.nil? ? key : "#{key}=#{value}")
18
- end
19
- array
20
- when Projection
21
- value.getDef.split(' ')
22
- else
23
- raise ArgumentError, "Unknown type #{value.class} for projection definition"
24
- end
25
- end
26
-
27
- def self.finalize(pointer)
28
- proc do
29
- Api.pj_free(pointer)
30
- end
31
- end
32
-
33
- # Projection classes are created using Proj4 strings which consist of a number of parameters.
34
- # For more information please see the +opt arguments section at https://proj.org/apps/proj.html.
35
- #
36
- # @param value [string, array, hash] Parameters can be specified as strings, arrays or hashes.
37
- #
38
- # @example
39
- # proj = Projection.new("+proj=utm +zone=21 +units=m")
40
- # proj = Projection.new ["+proj=utm", "+zone=21", "+units=m"]
41
- # proj = Projection.new("proj" => "utm", "zone" => "21", "units" => "m")
42
- #
43
- # With all variants the plus sign in front of the keys is optional.
44
- def initialize(value)
45
- params = self.class.parse(value)
46
- p_params = FFI::MemoryPointer.new(:pointer, params.length)
47
- params.each_with_index do |param, i|
48
- p_param = FFI::MemoryPointer.from_string(param)
49
- p_params[i].write_pointer(p_param)
50
- end
51
-
52
- @pointer = Api.pj_init(params.count, p_params)
53
- self.check_error
54
-
55
- ObjectSpace.define_finalizer(self, self.class.finalize(@pointer))
56
- end
57
-
58
- def check_error
59
- ptr = Api.pj_get_errno_ref
60
- errno = ptr.read_int
61
- if errno != 0
62
- # If we don't reset the error code it hangs around. This doesn't seem documented anyplace?
63
- ptr.write_int(0)
64
- Error.check(errno)
65
- end
66
- end
67
-
68
-
69
- def to_ptr
70
- @pointer
71
- end
72
-
73
- # Returns projection definitions
74
- #
75
- # @return [String]
76
- def getDef
77
- Api.pj_get_def(self, 0)
78
- end
79
-
80
- # Returns if this is a geocentric projection
81
- #
82
- # @return [Boolean]
83
- def isGeocent?
84
- Api::pj_is_geocent(self)
85
- end
86
- alias :isGeocentric? :isGeocent?
87
-
88
- # Returns if this is a lat/long projection
89
- #
90
- # @return [Boolean]
91
- def isLatLong?
92
- Api::pj_is_latlong(self)
93
- end
94
-
95
- # Get the ID of this projection.
96
- #
97
- # @return [String]
98
- def projection
99
- getDef =~ /\+proj=(.+?) / ? $1 : nil
100
- end
101
-
102
- # Get the ID of the datum used in this projection.
103
- #
104
- # @return [String]
105
- def datum
106
- getDef =~ /\+datum=(.+?) / ? $1 : nil
107
- end
108
-
109
- # Get definition of projection in typical inspect format (#<Proj::Projection +init=... +proj=... ...>).
110
- #
111
- # @return [String]
112
- def to_s
113
- "#<#{self.class.name}#{getDef}>"
114
- end
115
-
116
- # Forward projection of a point. Returns a copy of the point object with coordinates projected.
117
- #
118
- # @param point [Point] in radians
119
- # @return [Point] in cartesian coordinates
120
- def forward(point)
121
- struct = Api.pj_fwd(point, self)
122
- self.check_error
123
- Point.from_pointer(struct)
124
- end
125
-
126
- # Convenience function for calculating a forward projection with degrees instead of radians.
127
- #
128
- # @param point [Point] in degrees
129
- # @return [Point] in cartesian coordinates
130
- def forwardDeg(point)
131
- forward(point.to_radians)
132
- end
133
-
134
- # Projects all points in a collection.
135
- #
136
- # @param collection [Enumerable<Point>] Points specified in radians
137
- # @return [Enumerable<Point>] Points specified in cartesian coordinates
138
- def forward_all(collection)
139
- collection.map do |point|
140
- forward(point)
141
- end
142
- end
143
-
144
- # Inverse projection of a point. Returns a copy of the point object with coordinates projected.
145
- #
146
- # @param point [Point] in cartesian coordinates
147
- # @return [Point] in radians
148
- def inverse(point)
149
- struct = Api.pj_inv(point, self)
150
- self.check_error
151
- Point.from_pointer(struct)
152
- end
153
-
154
- # Convenience function for calculating an inverse projection with the result in degrees instead of radians.
155
- #
156
- # @param point [Point] in cartesian coordinates
157
- # @return [Point] in degrees
158
- def inverseDeg(point)
159
- result = inverse(point)
160
- result.to_degrees
161
- end
162
-
163
- # Inverse projection of all points in a collection.
164
- #
165
- # @param collection [Enumerable<Point>] Points specified in cartesian coordinates
166
- # @return [Enumerable<Point>] Points specified in radians
167
- def inverse_all(collection)
168
- collection.map do |point|
169
- inverse(point)
170
- end
171
- end
172
-
173
- # Transforms a point from one projection to another.
174
- #
175
- # @param other [Projection]
176
- # @param point [Point]
177
- # @return [Point]
178
- def transform(other, point)
179
- p_x = FFI::MemoryPointer.new(:double, 1)
180
- p_x.write_double(point.x)
181
-
182
- p_y = FFI::MemoryPointer.new(:double, 1)
183
- p_y.write_double(point.y)
184
-
185
- p_z = FFI::MemoryPointer.new(:double, 1)
186
- p_z.write_double(0)
187
-
188
- Api.pj_transform(self, other, 1, 1, p_x, p_y, p_z)
189
- self.check_error
190
-
191
- Point.new(p_x.read_double, p_y.read_double)
192
- end
193
-
194
- # Transforms all points in a collection from one projection to
195
- # another. The +collection+ object must implement the +each+,
196
- # +clear+, and << methods (just like an Array) for this to work.
197
- #
198
- # @param other [Projection]
199
- # @param collection [Enumerable, Point]
200
- # @return [Enumerable, Point]
201
- def transform_all(other, collection)
202
- collection.map do |point|
203
- transform(other, point)
204
- end
205
- end
206
- end
207
- end
1
+ # encoding: UTF-8
2
+ require 'stringio'
3
+
4
+ module Proj
5
+ # Projections are coordinate operations that are conversions. For more information about each
6
+ # projection @see https://proj.org/operations/projections/index.html
7
+ module Projection
8
+ def self.utm(context, zone:, north: true)
9
+ ptr = Api.proj_create_conversion_utm(context, zone, north ? 1 : 0)
10
+
11
+ if ptr.null?
12
+ Error.check_context(context)
13
+ end
14
+
15
+ Conversion.create_object(ptr, context)
16
+ end
17
+
18
+ def self.transverse_mercator(context, center_lat:, center_long:, scale:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
19
+ ptr = Api.proj_create_conversion_transverse_mercator(context, center_lat, center_long, scale, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
20
+
21
+ if ptr.null?
22
+ Error.check_context(context)
23
+ end
24
+
25
+ Conversion.create_object(ptr, context)
26
+ end
27
+
28
+ def self.gauss_schreiber_transverse_mercator(context, center_lat:, center_long:, scale:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
29
+ ptr = Api.proj_create_conversion_gauss_schreiber_transverse_mercator(context, center_lat, center_long, scale, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
30
+
31
+ if ptr.null?
32
+ Error.check_context(context)
33
+ end
34
+
35
+ Conversion.create_object(ptr, context)
36
+ end
37
+
38
+ def self.transverse_mercator_south_oriented(context, center_lat:, center_long:, scale:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
39
+ ptr = Api.proj_create_conversion_transverse_mercator_south_oriented(context, center_lat, center_long, scale, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
40
+
41
+ if ptr.null?
42
+ Error.check_context(context)
43
+ end
44
+
45
+ Conversion.create_object(ptr, context)
46
+ end
47
+
48
+ def self.two_point_equidistant(context, latitude_first_point:, longitude_first_point:, latitude_second_point:, longitude_secon_point:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
49
+ ptr = Api.proj_create_conversion_two_point_equidistant(context, latitude_first_point, longitude_first_point, latitude_second_point, longitude_secon_point, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
50
+
51
+ if ptr.null?
52
+ Error.check_context(context)
53
+ end
54
+
55
+ Conversion.create_object(ptr, context)
56
+ end
57
+
58
+ def self.tunisia_mapping_grid(context, center_lat:, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
59
+ ptr = Api.proj_create_conversion_tunisia_mapping_grid(context, center_lat, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
60
+
61
+ if ptr.null?
62
+ Error.check_context(context)
63
+ end
64
+
65
+ Conversion.create_object(ptr, context)
66
+ end
67
+
68
+ def self.tunisia_mining_grid(context, center_lat:, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
69
+ ptr = Api.proj_create_conversion_tunisia_mining_grid(context, center_lat, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
70
+
71
+ if ptr.null?
72
+ Error.check_context(context)
73
+ end
74
+
75
+ Conversion.create_object(ptr, context)
76
+ end
77
+
78
+ def self.albers_equal_area(context, latitude_false_origin:, longitude_false_origin:, latitude_first_parallel:, latitude_second_parallel:, easting_false_origin:, northing_false_origin:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
79
+ ptr = Api.proj_create_conversion_albers_equal_area(context, latitude_false_origin, longitude_false_origin, latitude_first_parallel, latitude_second_parallel, easting_false_origin, northing_false_origin, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
80
+
81
+ if ptr.null?
82
+ Error.check_context(context)
83
+ end
84
+
85
+ Conversion.create_object(ptr, context)
86
+ end
87
+
88
+ def self.lambert_conic_conformal_1sp(context, center_lat:, center_long:, scale:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
89
+ ptr = Api.proj_create_conversion_lambert_conic_conformal_1sp(context, center_lat, center_long, scale, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
90
+
91
+ if ptr.null?
92
+ Error.check_context(context)
93
+ end
94
+
95
+ Conversion.create_object(ptr, context)
96
+ end
97
+
98
+ def self.lambert_conic_conformal_2sp(context, latitude_false_origin:, longitude_false_origin:, latitude_first_parallel:, latitude_second_parallel:, easting_false_origin:, northing_false_origin:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
99
+ ptr = Api.proj_create_conversion_lambert_conic_conformal_2sp(context, latitude_false_origin, longitude_false_origin, latitude_first_parallel, latitude_second_parallel, easting_false_origin, northing_false_origin, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
100
+
101
+ if ptr.null?
102
+ Error.check_context(context)
103
+ end
104
+
105
+ Conversion.create_object(ptr, context)
106
+ end
107
+
108
+ def self.lambert_conic_conformal_2sp_michigan(context, latitude_false_origin:, longitude_false_origin:, latitude_first_parallel:, latitude_second_parallel:, easting_false_origin:, northing_false_origin:, ellipsoid_scaling_factor:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
109
+ ptr = Api.proj_create_conversion_lambert_conic_conformal_2sp_michigan(context, latitude_false_origin, longitude_false_origin, latitude_first_parallel, latitude_second_parallel, easting_false_origin, northing_false_origin, ellipsoid_scaling_factor, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
110
+
111
+ if ptr.null?
112
+ Error.check_context(context)
113
+ end
114
+
115
+ Conversion.create_object(ptr, context)
116
+ end
117
+
118
+ def self.lambert_conic_conformal_2sp_belgium(context, latitude_false_origin:, longitude_false_origin:, latitude_first_parallel:, latitude_second_parallel:, easting_false_origin:, northing_false_origin:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
119
+ ptr = Api.proj_create_conversion_lambert_conic_conformal_2sp_belgium(context, latitude_false_origin, longitude_false_origin, latitude_first_parallel, latitude_second_parallel, easting_false_origin, northing_false_origin, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
120
+
121
+ if ptr.null?
122
+ Error.check_context(context)
123
+ end
124
+
125
+ Conversion.create_object(ptr, context)
126
+ end
127
+
128
+ def self.azimuthal_equidistant(context, latitude_nat_origin:, longitude_nat_origin:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
129
+ ptr = Api.proj_create_conversion_azimuthal_equidistant(context, latitude_nat_origin, longitude_nat_origin, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
130
+
131
+ if ptr.null?
132
+ Error.check_context(context)
133
+ end
134
+
135
+ Conversion.create_object(ptr, context)
136
+ end
137
+
138
+ def self.guam_projection(context, latitude_nat_origin:, longitude_nat_origin:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
139
+ ptr = Api.proj_create_conversion_guam_projection(context, latitude_nat_origin, longitude_nat_origin, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
140
+
141
+ if ptr.null?
142
+ Error.check_context(context)
143
+ end
144
+
145
+ Conversion.create_object(ptr, context)
146
+ end
147
+
148
+ def self.bonne(context, latitude_nat_origin:, longitude_nat_origin:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
149
+ ptr = Api.proj_create_conversion_bonne(context, latitude_nat_origin, longitude_nat_origin, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
150
+
151
+ if ptr.null?
152
+ Error.check_context(context)
153
+ end
154
+
155
+ Conversion.create_object(ptr, context)
156
+ end
157
+
158
+ def self.lambert_cylindrical_equal_area_spherical(context, latitude_first_parallel:, longitude_nat_origin:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
159
+ ptr = Api.proj_create_conversion_lambert_cylindrical_equal_area_spherical(context, latitude_first_parallel, longitude_nat_origin, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
160
+
161
+ if ptr.null?
162
+ Error.check_context(context)
163
+ end
164
+
165
+ Conversion.create_object(ptr, context)
166
+ end
167
+
168
+ def self.lambert_cylindrical_equal_area(context, latitude_first_parallel:, longitude_nat_origin:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
169
+ ptr = Api.proj_create_conversion_lambert_cylindrical_equal_area(context, latitude_first_parallel, longitude_nat_origin, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
170
+
171
+ if ptr.null?
172
+ Error.check_context(context)
173
+ end
174
+
175
+ Conversion.create_object(ptr, context)
176
+ end
177
+
178
+ def self.cassini_soldner(context, center_lat:, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
179
+ ptr = Api.proj_create_conversion_cassini_soldner(context, center_lat, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
180
+
181
+ if ptr.null?
182
+ Error.check_context(context)
183
+ end
184
+
185
+ Conversion.create_object(ptr, context)
186
+ end
187
+
188
+ def self.equidistant_conic(context, center_lat:, center_long:, latitude_first_parallel:, latitude_second_parallel:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
189
+ ptr = Api.proj_create_conversion_equidistant_conic(context, center_lat, center_long, latitude_first_parallel, latitude_second_parallel, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
190
+
191
+ if ptr.null?
192
+ Error.check_context(context)
193
+ end
194
+
195
+ Conversion.create_object(ptr, context)
196
+ end
197
+
198
+ def self.eckert_i(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
199
+ ptr = Api.proj_create_conversion_eckert_i(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
200
+
201
+ if ptr.null?
202
+ Error.check_context(context)
203
+ end
204
+
205
+ Conversion.create_object(ptr, context)
206
+ end
207
+
208
+ def self.eckert_ii(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
209
+ ptr = Api.proj_create_conversion_eckert_ii(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
210
+
211
+ if ptr.null?
212
+ Error.check_context(context)
213
+ end
214
+
215
+ Conversion.create_object(ptr, context)
216
+ end
217
+
218
+ def self.eckert_iii(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
219
+ ptr = Api.proj_create_conversion_eckert_iii(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
220
+
221
+ if ptr.null?
222
+ Error.check_context(context)
223
+ end
224
+
225
+ Conversion.create_object(ptr, context)
226
+ end
227
+
228
+ def self.eckert_iv(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
229
+ ptr = Api.proj_create_conversion_eckert_iv(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
230
+
231
+ if ptr.null?
232
+ Error.check_context(context)
233
+ end
234
+
235
+ Conversion.create_object(ptr, context)
236
+ end
237
+
238
+ def self.eckert_v(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
239
+ ptr = Api.proj_create_conversion_eckert_v(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
240
+
241
+ if ptr.null?
242
+ Error.check_context(context)
243
+ end
244
+
245
+ Conversion.create_object(ptr, context)
246
+ end
247
+
248
+ def self.eckert_vi(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
249
+ ptr = Api.proj_create_conversion_eckert_vi(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
250
+
251
+ if ptr.null?
252
+ Error.check_context(context)
253
+ end
254
+
255
+ Conversion.create_object(ptr, context)
256
+ end
257
+
258
+ def self.equidistant_cylindrical(context, latitude_first_parallel:, longitude_nat_origin:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
259
+ ptr = Api.proj_create_conversion_equidistant_cylindrical(context, latitude_first_parallel, longitude_nat_origin, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
260
+
261
+ if ptr.null?
262
+ Error.check_context(context)
263
+ end
264
+
265
+ Conversion.create_object(ptr, context)
266
+ end
267
+
268
+ def self.equidistant_cylindrical_spherical(context, latitude_first_parallel:, longitude_nat_origin:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
269
+ ptr = Api.proj_create_conversion_equidistant_cylindrical_spherical(context, latitude_first_parallel, longitude_nat_origin, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
270
+
271
+ if ptr.null?
272
+ Error.check_context(context)
273
+ end
274
+
275
+ Conversion.create_object(ptr, context)
276
+ end
277
+
278
+ def self.gall(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
279
+ ptr = Api.proj_create_conversion_gall(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
280
+
281
+ if ptr.null?
282
+ Error.check_context(context)
283
+ end
284
+
285
+ Conversion.create_object(ptr, context)
286
+ end
287
+
288
+ def self.goode_homolosine(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
289
+ ptr = Api.proj_create_conversion_goode_homolosine(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
290
+
291
+ if ptr.null?
292
+ Error.check_context(context)
293
+ end
294
+
295
+ Conversion.create_object(ptr, context)
296
+ end
297
+
298
+ def self.interrupted_goode_homolosine(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
299
+ ptr = Api.proj_create_conversion_interrupted_goode_homolosine(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
300
+
301
+ if ptr.null?
302
+ Error.check_context(context)
303
+ end
304
+
305
+ Conversion.create_object(ptr, context)
306
+ end
307
+
308
+ def self.geostationary_satellite_sweep_x(context, center_long:, height:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
309
+ ptr = Api.proj_create_conversion_geostationary_satellite_sweep_x(context, center_long, height, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
310
+
311
+ if ptr.null?
312
+ Error.check_context(context)
313
+ end
314
+
315
+ Conversion.create_object(ptr, context)
316
+ end
317
+
318
+ def self.geostationary_satellite_sweep_y(context, center_long:, height:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
319
+ ptr = Api.proj_create_conversion_geostationary_satellite_sweep_y(context, center_long, height, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
320
+
321
+ if ptr.null?
322
+ Error.check_context(context)
323
+ end
324
+
325
+ Conversion.create_object(ptr, context)
326
+ end
327
+
328
+ def self.gnomonic(context, center_lat:, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
329
+ ptr = Api.proj_create_conversion_gnomonic(context, center_lat, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
330
+
331
+ if ptr.null?
332
+ Error.check_context(context)
333
+ end
334
+
335
+ Conversion.create_object(ptr, context)
336
+ end
337
+
338
+ def self.hotine_oblique_mercator_variant_a(context, latitude_projection_centre:, longitude_projection_centre:, azimuth_initial_line:, angle_from_rectified_to_skrew_grid:, scale:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
339
+ ptr = Api.proj_create_conversion_hotine_oblique_mercator_variant_a(context, latitude_projection_centre, longitude_projection_centre, azimuth_initial_line, angle_from_rectified_to_skrew_grid, scale, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
340
+
341
+ if ptr.null?
342
+ Error.check_context(context)
343
+ end
344
+
345
+ Conversion.create_object(ptr, context)
346
+ end
347
+
348
+ def self.hotine_oblique_mercator_variant_b(context, latitude_projection_centre:, longitude_projection_centre:, azimuth_initial_line:, angle_from_rectified_to_skrew_grid:, scale:, easting_projection_centre:, northing_projection_centre:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
349
+ ptr = Api.proj_create_conversion_hotine_oblique_mercator_variant_b(context, latitude_projection_centre, longitude_projection_centre, azimuth_initial_line, angle_from_rectified_to_skrew_grid, scale, easting_projection_centre, northing_projection_centre, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
350
+
351
+ if ptr.null?
352
+ Error.check_context(context)
353
+ end
354
+
355
+ Conversion.create_object(ptr, context)
356
+ end
357
+
358
+ def self.hotine_oblique_mercator_two_point_natural_origin(context, latitude_projection_centre:, latitude_point1:, longitude_point1:, latitude_point2:, longitude_point2:, scale:, easting_projection_centre:, northing_projection_centre:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
359
+ ptr = Api.proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin(context, latitude_projection_centre, latitude_point1, longitude_point1, latitude_point2, longitude_point2, scale, easting_projection_centre, northing_projection_centre, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
360
+
361
+ if ptr.null?
362
+ Error.check_context(context)
363
+ end
364
+
365
+ Conversion.create_object(ptr, context)
366
+ end
367
+
368
+ def self.laborde_oblique_mercator(context, latitude_projection_centre:, longitude_projection_centre:, azimuth_initial_line:, scale:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
369
+ ptr = Api.proj_create_conversion_laborde_oblique_mercator(context, latitude_projection_centre, longitude_projection_centre, azimuth_initial_line, scale, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
370
+
371
+ if ptr.null?
372
+ Error.check_context(context)
373
+ end
374
+
375
+ Conversion.create_object(ptr, context)
376
+ end
377
+
378
+ def self.international_map_world_polyconic(context, center_long:, latitude_first_parallel:, latitude_second_parallel:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
379
+ ptr = Api.proj_create_conversion_international_map_world_polyconic(context, center_long, latitude_first_parallel, latitude_second_parallel, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
380
+
381
+ if ptr.null?
382
+ Error.check_context(context)
383
+ end
384
+
385
+ Conversion.create_object(ptr, context)
386
+ end
387
+
388
+ def self.krovak_north_oriented(context, latitude_projection_centre:, longitude_of_origin:, colatitude_cone_axis:, latitude_pseudo_standard_parallel:, scale_factor_pseudo_standard_parallel:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
389
+ ptr = Api.proj_create_conversion_krovak_north_oriented(context, latitude_projection_centre, longitude_of_origin, colatitude_cone_axis, latitude_pseudo_standard_parallel, scale_factor_pseudo_standard_parallel, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
390
+
391
+ if ptr.null?
392
+ Error.check_context(context)
393
+ end
394
+
395
+ Conversion.create_object(ptr, context)
396
+ end
397
+
398
+ def self.krovak(context, latitude_projection_centre:, longitude_of_origin:, colatitude_cone_axis:, latitude_pseudo_standard_parallel:, scale_factor_pseudo_standard_parallel:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
399
+ ptr = Api.proj_create_conversion_krovak(context, latitude_projection_centre, longitude_of_origin, colatitude_cone_axis, latitude_pseudo_standard_parallel, scale_factor_pseudo_standard_parallel, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
400
+
401
+ if ptr.null?
402
+ Error.check_context(context)
403
+ end
404
+
405
+ Conversion.create_object(ptr, context)
406
+ end
407
+
408
+ def self.lambert_azimuthal_equal_area(context, latitude_nat_origin:, longitude_nat_origin:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
409
+ ptr = Api.proj_create_conversion_lambert_azimuthal_equal_area(context, latitude_nat_origin, longitude_nat_origin, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
410
+
411
+ if ptr.null?
412
+ Error.check_context(context)
413
+ end
414
+
415
+ Conversion.create_object(ptr, context)
416
+ end
417
+
418
+ def self.miller_cylindrical(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
419
+ ptr = Api.proj_create_conversion_miller_cylindrical(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
420
+
421
+ if ptr.null?
422
+ Error.check_context(context)
423
+ end
424
+
425
+ Conversion.create_object(ptr, context)
426
+ end
427
+
428
+ def self.mercator_variant_a(context, center_lat:, center_long:, scale:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
429
+ ptr = Api.proj_create_conversion_mercator_variant_a(context, center_lat, center_long, scale, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
430
+
431
+ if ptr.null?
432
+ Error.check_context(context)
433
+ end
434
+
435
+ Conversion.create_object(ptr, context)
436
+ end
437
+
438
+ def self.mercator_variant_b(context, latitude_first_parallel:, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
439
+ ptr = Api.proj_create_conversion_mercator_variant_b(context, latitude_first_parallel, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
440
+
441
+ if ptr.null?
442
+ Error.check_context(context)
443
+ end
444
+
445
+ Conversion.create_object(ptr, context)
446
+ end
447
+
448
+ def self.popular_visualisation_pseudo_mercator(context, center_lat:, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
449
+ ptr = Api.proj_create_conversion_popular_visualisation_pseudo_mercator(context, center_lat, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
450
+
451
+ if ptr.null?
452
+ Error.check_context(context)
453
+ end
454
+
455
+ Conversion.create_object(ptr, context)
456
+ end
457
+
458
+ def self.mollweide(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
459
+ ptr = Api.proj_create_conversion_mollweide(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
460
+
461
+ if ptr.null?
462
+ Error.check_context(context)
463
+ end
464
+
465
+ Conversion.create_object(ptr, context)
466
+ end
467
+
468
+ def self.new_zealand_mapping_grid(context, center_lat:, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
469
+ ptr = Api.proj_create_conversion_new_zealand_mapping_grid(context, center_lat, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
470
+
471
+ if ptr.null?
472
+ Error.check_context(context)
473
+ end
474
+
475
+ Conversion.create_object(ptr, context)
476
+ end
477
+
478
+ def self.oblique_stereographic(context, center_lat:, center_long:, scale:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
479
+ ptr = Api.proj_create_conversion_oblique_stereographic(context, center_lat, center_long, scale, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
480
+
481
+ if ptr.null?
482
+ Error.check_context(context)
483
+ end
484
+
485
+ Conversion.create_object(ptr, context)
486
+ end
487
+
488
+ def self.orthographic(context, center_lat:, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
489
+ ptr = Api.proj_create_conversion_orthographic(context, center_lat, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
490
+
491
+ if ptr.null?
492
+ Error.check_context(context)
493
+ end
494
+
495
+ Conversion.create_object(ptr, context)
496
+ end
497
+
498
+ def self.american_polyconic(context, center_lat:, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
499
+ ptr = Api.proj_create_conversion_american_polyconic(context, center_lat, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
500
+
501
+ if ptr.null?
502
+ Error.check_context(context)
503
+ end
504
+
505
+ Conversion.create_object(ptr, context)
506
+ end
507
+
508
+ def self.polar_stereographic_variant_a(context, center_lat:, center_long:, scale:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
509
+ ptr = Api.proj_create_conversion_polar_stereographic_variant_a(context, center_lat, center_long, scale, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
510
+
511
+ if ptr.null?
512
+ Error.check_context(context)
513
+ end
514
+
515
+ Conversion.create_object(ptr, context)
516
+ end
517
+
518
+ def self.polar_stereographic_variant_b(context, latitude_standard_parallel:, longitude_of_origin:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
519
+ ptr = Api.proj_create_conversion_polar_stereographic_variant_b(context, latitude_standard_parallel, longitude_of_origin, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
520
+
521
+ if ptr.null?
522
+ Error.check_context(context)
523
+ end
524
+
525
+ Conversion.create_object(ptr, context)
526
+ end
527
+
528
+ def self.robinson(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
529
+ ptr = Api.proj_create_conversion_robinson(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
530
+
531
+ if ptr.null?
532
+ Error.check_context(context)
533
+ end
534
+
535
+ Conversion.create_object(ptr, context)
536
+ end
537
+
538
+ def self.sinusoidal(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
539
+ ptr = Api.proj_create_conversion_sinusoidal(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
540
+
541
+ if ptr.null?
542
+ Error.check_context(context)
543
+ end
544
+
545
+ Conversion.create_object(ptr, context)
546
+ end
547
+
548
+ def self.stereographic(context, center_lat:, center_long:, scale:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
549
+ ptr = Api.proj_create_conversion_stereographic(context, center_lat, center_long, scale, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
550
+
551
+ if ptr.null?
552
+ Error.check_context(context)
553
+ end
554
+
555
+ Conversion.create_object(ptr, context)
556
+ end
557
+
558
+ def self.van_der_grinten(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
559
+ ptr = Api.proj_create_conversion_van_der_grinten(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
560
+
561
+ if ptr.null?
562
+ Error.check_context(context)
563
+ end
564
+
565
+ Conversion.create_object(ptr, context)
566
+ end
567
+
568
+ def self.wagner_i(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
569
+ ptr = Api.proj_create_conversion_wagner_i(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
570
+
571
+ if ptr.null?
572
+ Error.check_context(context)
573
+ end
574
+
575
+ Conversion.create_object(ptr, context)
576
+ end
577
+
578
+ def self.wagner_ii(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
579
+ ptr = Api.proj_create_conversion_wagner_ii(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
580
+
581
+ if ptr.null?
582
+ Error.check_context(context)
583
+ end
584
+
585
+ Conversion.create_object(ptr, context)
586
+ end
587
+
588
+ def self.wagner_iii(context, latitude_true_scale:, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
589
+ ptr = Api.proj_create_conversion_wagner_iii(context, latitude_true_scale, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
590
+
591
+ if ptr.null?
592
+ Error.check_context(context)
593
+ end
594
+
595
+ Conversion.create_object(ptr, context)
596
+ end
597
+
598
+ def self.wagner_iv(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
599
+ ptr = Api.proj_create_conversion_wagner_iv(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
600
+
601
+ if ptr.null?
602
+ Error.check_context(context)
603
+ end
604
+
605
+ Conversion.create_object(ptr, context)
606
+ end
607
+
608
+ def self.wagner_v(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
609
+ ptr = Api.proj_create_conversion_wagner_v(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
610
+
611
+ if ptr.null?
612
+ Error.check_context(context)
613
+ end
614
+
615
+ Conversion.create_object(ptr, context)
616
+ end
617
+
618
+ def self.wagner_vi(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
619
+ ptr = Api.proj_create_conversion_wagner_vi(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
620
+
621
+ if ptr.null?
622
+ Error.check_context(context)
623
+ end
624
+
625
+ Conversion.create_object(ptr, context)
626
+ end
627
+
628
+ def self.wagner_vii(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
629
+ ptr = Api.proj_create_conversion_wagner_vii(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
630
+
631
+ if ptr.null?
632
+ Error.check_context(context)
633
+ end
634
+
635
+ Conversion.create_object(ptr, context)
636
+ end
637
+
638
+ def self.quadrilateralized_spherical_cube(context, center_lat:, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
639
+ ptr = Api.proj_create_conversion_quadrilateralized_spherical_cube(context, center_lat, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
640
+
641
+ if ptr.null?
642
+ Error.check_context(context)
643
+ end
644
+
645
+ Conversion.create_object(ptr, context)
646
+ end
647
+
648
+ def self.spherical_cross_track_height(context, peg_point_lat:, peg_point_long:, peg_point_heading:, peg_point_height:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
649
+ ptr = Api.proj_create_conversion_spherical_cross_track_height(context, peg_point_lat, peg_point_long, peg_point_heading, peg_point_height, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
650
+
651
+ if ptr.null?
652
+ Error.check_context(context)
653
+ end
654
+
655
+ Conversion.create_object(ptr, context)
656
+ end
657
+
658
+ def self.equal_earth(context, center_long:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
659
+ ptr = Api.proj_create_conversion_equal_earth(context, center_long, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
660
+
661
+ if ptr.null?
662
+ Error.check_context(context)
663
+ end
664
+
665
+ Conversion.create_object(ptr, context)
666
+ end
667
+
668
+ def self.vertical_perspective(context, topo_origin_lat:, topo_origin_long:, topo_origin_height:, view_point_height:, false_easting:, false_northing:, ang_unit_name:, ang_unit_conv_factor:, linear_unit_name:, linear_unit_conv_factor:)
669
+ ptr = Api.proj_create_conversion_vertical_perspective(context, topo_origin_lat, topo_origin_long, topo_origin_height, view_point_height, false_easting, false_northing, ang_unit_name, ang_unit_conv_factor, linear_unit_name, linear_unit_conv_factor)
670
+
671
+ if ptr.null?
672
+ Error.check_context(context)
673
+ end
674
+
675
+ Conversion.create_object(ptr, context)
676
+ end
677
+
678
+ def self.pole_rotation_grib_convention(context, south_pole_lat_in_unrotated_crs:, south_pole_long_in_unrotated_crs:, axis_rotation:, ang_unit_name:, ang_unit_conv_factor:)
679
+ ptr = Api.proj_create_conversion_pole_rotation_grib_convention(context, south_pole_lat_in_unrotated_crs, south_pole_long_in_unrotated_crs, axis_rotation, ang_unit_name, ang_unit_conv_factor)
680
+
681
+ if ptr.null?
682
+ Error.check_context(context)
683
+ end
684
+
685
+ Conversion.create_object(ptr, context)
686
+ end
687
+
688
+ def self.pole_rotation_netcdf_cf_convention(context, grid_north_pole_latitude:, grid_north_pole_longitude:, north_pole_grid_longitude:, ang_unit_name:, ang_unit_conv_factor:)
689
+ ptr = Api.proj_create_conversion_pole_rotation_netcdf_cf_convention(context, grid_north_pole_latitude, grid_north_pole_longitude, north_pole_grid_longitude, ang_unit_name, ang_unit_conv_factor)
690
+
691
+ if ptr.null?
692
+ Error.check_context(context)
693
+ end
694
+
695
+ Conversion.create_object(ptr, context)
696
+ end
697
+ end
698
+ end