proj4rb 3.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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