1pub const PROJ_VERSION_MAJOR: u32 = 9;
7pub const PROJ_VERSION_MINOR: u32 = 4;
8pub const PROJ_VERSION_PATCH: u32 = 0;
9pub const PJ_DEFAULT_CTX: u32 = 0;
10pub const PROJ_ERR_INVALID_OP: u32 = 1024;
11pub const PROJ_ERR_INVALID_OP_WRONG_SYNTAX: u32 = 1025;
12pub const PROJ_ERR_INVALID_OP_MISSING_ARG: u32 = 1026;
13pub const PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE: u32 = 1027;
14pub const PROJ_ERR_INVALID_OP_MUTUALLY_EXCLUSIVE_ARGS: u32 = 1028;
15pub const PROJ_ERR_INVALID_OP_FILE_NOT_FOUND_OR_INVALID: u32 = 1029;
16pub const PROJ_ERR_COORD_TRANSFM: u32 = 2048;
17pub const PROJ_ERR_COORD_TRANSFM_INVALID_COORD: u32 = 2049;
18pub const PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN: u32 = 2050;
19pub const PROJ_ERR_COORD_TRANSFM_NO_OPERATION: u32 = 2051;
20pub const PROJ_ERR_COORD_TRANSFM_OUTSIDE_GRID: u32 = 2052;
21pub const PROJ_ERR_COORD_TRANSFM_GRID_AT_NODATA: u32 = 2053;
22pub const PROJ_ERR_COORD_TRANSFM_NO_CONVERGENCE: u32 = 2054;
23pub const PROJ_ERR_COORD_TRANSFM_MISSING_TIME: u32 = 2055;
24pub const PROJ_ERR_OTHER: u32 = 4096;
25pub const PROJ_ERR_OTHER_API_MISUSE: u32 = 4097;
26pub const PROJ_ERR_OTHER_NO_INVERSE_OP: u32 = 4098;
27pub const PROJ_ERR_OTHER_NETWORK_ERROR: u32 = 4099;
28pub type wchar_t = ::std::os::raw::c_int;
29unsafe extern "C" {
30 pub static pj_release: [::std::os::raw::c_char; 0usize];
31}
32#[repr(C)]
33#[derive(Debug, Copy, Clone)]
34pub struct PJ_AREA {
35 _unused: [u8; 0],
36}
37#[repr(C)]
38#[derive(Debug, Copy, Clone)]
39pub struct P5_FACTORS {
40 pub meridional_scale: f64,
41 pub parallel_scale: f64,
42 pub areal_scale: f64,
43 pub angular_distortion: f64,
44 pub meridian_parallel_angle: f64,
45 pub meridian_convergence: f64,
46 pub tissot_semimajor: f64,
47 pub tissot_semiminor: f64,
48 pub dx_dlam: f64,
49 pub dx_dphi: f64,
50 pub dy_dlam: f64,
51 pub dy_dphi: f64,
52}
53#[allow(clippy::unnecessary_operation, clippy::identity_op)]
54const _: () = {
55 ["Size of P5_FACTORS"][::std::mem::size_of::<P5_FACTORS>() - 96usize];
56 ["Alignment of P5_FACTORS"][::std::mem::align_of::<P5_FACTORS>() - 8usize];
57 ["Offset of field: P5_FACTORS::meridional_scale"]
58 [::std::mem::offset_of!(P5_FACTORS, meridional_scale) - 0usize];
59 ["Offset of field: P5_FACTORS::parallel_scale"]
60 [::std::mem::offset_of!(P5_FACTORS, parallel_scale) - 8usize];
61 ["Offset of field: P5_FACTORS::areal_scale"]
62 [::std::mem::offset_of!(P5_FACTORS, areal_scale) - 16usize];
63 ["Offset of field: P5_FACTORS::angular_distortion"]
64 [::std::mem::offset_of!(P5_FACTORS, angular_distortion) - 24usize];
65 ["Offset of field: P5_FACTORS::meridian_parallel_angle"]
66 [::std::mem::offset_of!(P5_FACTORS, meridian_parallel_angle) - 32usize];
67 ["Offset of field: P5_FACTORS::meridian_convergence"]
68 [::std::mem::offset_of!(P5_FACTORS, meridian_convergence) - 40usize];
69 ["Offset of field: P5_FACTORS::tissot_semimajor"]
70 [::std::mem::offset_of!(P5_FACTORS, tissot_semimajor) - 48usize];
71 ["Offset of field: P5_FACTORS::tissot_semiminor"]
72 [::std::mem::offset_of!(P5_FACTORS, tissot_semiminor) - 56usize];
73 ["Offset of field: P5_FACTORS::dx_dlam"][::std::mem::offset_of!(P5_FACTORS, dx_dlam) - 64usize];
74 ["Offset of field: P5_FACTORS::dx_dphi"][::std::mem::offset_of!(P5_FACTORS, dx_dphi) - 72usize];
75 ["Offset of field: P5_FACTORS::dy_dlam"][::std::mem::offset_of!(P5_FACTORS, dy_dlam) - 80usize];
76 ["Offset of field: P5_FACTORS::dy_dphi"][::std::mem::offset_of!(P5_FACTORS, dy_dphi) - 88usize];
77};
78pub type PJ_FACTORS = P5_FACTORS;
79#[repr(C)]
80#[derive(Debug, Copy, Clone)]
81pub struct PJconsts {
82 _unused: [u8; 0],
83}
84pub type PJ = PJconsts;
85#[repr(C)]
86#[derive(Debug, Copy, Clone)]
87pub struct PJ_LIST {
88 pub id: *const ::std::os::raw::c_char,
89 pub proj: ::std::option::Option<unsafe extern "C" fn(arg1: *mut PJ) -> *mut PJ>,
90 pub descr: *const *const ::std::os::raw::c_char,
91}
92#[allow(clippy::unnecessary_operation, clippy::identity_op)]
93const _: () = {
94 ["Size of PJ_LIST"][::std::mem::size_of::<PJ_LIST>() - 24usize];
95 ["Alignment of PJ_LIST"][::std::mem::align_of::<PJ_LIST>() - 8usize];
96 ["Offset of field: PJ_LIST::id"][::std::mem::offset_of!(PJ_LIST, id) - 0usize];
97 ["Offset of field: PJ_LIST::proj"][::std::mem::offset_of!(PJ_LIST, proj) - 8usize];
98 ["Offset of field: PJ_LIST::descr"][::std::mem::offset_of!(PJ_LIST, descr) - 16usize];
99};
100pub type PJ_OPERATIONS = PJ_LIST;
101#[repr(C)]
102#[derive(Debug, Copy, Clone)]
103pub struct PJ_ELLPS {
104 pub id: *const ::std::os::raw::c_char,
105 pub major: *const ::std::os::raw::c_char,
106 pub ell: *const ::std::os::raw::c_char,
107 pub name: *const ::std::os::raw::c_char,
108}
109#[allow(clippy::unnecessary_operation, clippy::identity_op)]
110const _: () = {
111 ["Size of PJ_ELLPS"][::std::mem::size_of::<PJ_ELLPS>() - 32usize];
112 ["Alignment of PJ_ELLPS"][::std::mem::align_of::<PJ_ELLPS>() - 8usize];
113 ["Offset of field: PJ_ELLPS::id"][::std::mem::offset_of!(PJ_ELLPS, id) - 0usize];
114 ["Offset of field: PJ_ELLPS::major"][::std::mem::offset_of!(PJ_ELLPS, major) - 8usize];
115 ["Offset of field: PJ_ELLPS::ell"][::std::mem::offset_of!(PJ_ELLPS, ell) - 16usize];
116 ["Offset of field: PJ_ELLPS::name"][::std::mem::offset_of!(PJ_ELLPS, name) - 24usize];
117};
118#[repr(C)]
119#[derive(Debug, Copy, Clone)]
120pub struct PJ_UNITS {
121 pub id: *const ::std::os::raw::c_char,
122 pub to_meter: *const ::std::os::raw::c_char,
123 pub name: *const ::std::os::raw::c_char,
124 pub factor: f64,
125}
126#[allow(clippy::unnecessary_operation, clippy::identity_op)]
127const _: () = {
128 ["Size of PJ_UNITS"][::std::mem::size_of::<PJ_UNITS>() - 32usize];
129 ["Alignment of PJ_UNITS"][::std::mem::align_of::<PJ_UNITS>() - 8usize];
130 ["Offset of field: PJ_UNITS::id"][::std::mem::offset_of!(PJ_UNITS, id) - 0usize];
131 ["Offset of field: PJ_UNITS::to_meter"][::std::mem::offset_of!(PJ_UNITS, to_meter) - 8usize];
132 ["Offset of field: PJ_UNITS::name"][::std::mem::offset_of!(PJ_UNITS, name) - 16usize];
133 ["Offset of field: PJ_UNITS::factor"][::std::mem::offset_of!(PJ_UNITS, factor) - 24usize];
134};
135#[repr(C)]
136#[derive(Debug, Copy, Clone)]
137pub struct PJ_PRIME_MERIDIANS {
138 pub id: *const ::std::os::raw::c_char,
139 pub defn: *const ::std::os::raw::c_char,
140}
141#[allow(clippy::unnecessary_operation, clippy::identity_op)]
142const _: () = {
143 ["Size of PJ_PRIME_MERIDIANS"][::std::mem::size_of::<PJ_PRIME_MERIDIANS>() - 16usize];
144 ["Alignment of PJ_PRIME_MERIDIANS"][::std::mem::align_of::<PJ_PRIME_MERIDIANS>() - 8usize];
145 ["Offset of field: PJ_PRIME_MERIDIANS::id"]
146 [::std::mem::offset_of!(PJ_PRIME_MERIDIANS, id) - 0usize];
147 ["Offset of field: PJ_PRIME_MERIDIANS::defn"]
148 [::std::mem::offset_of!(PJ_PRIME_MERIDIANS, defn) - 8usize];
149};
150#[repr(C)]
151#[derive(Debug, Copy, Clone)]
152pub struct PJ_XYZT {
153 pub x: f64,
154 pub y: f64,
155 pub z: f64,
156 pub t: f64,
157}
158#[allow(clippy::unnecessary_operation, clippy::identity_op)]
159const _: () = {
160 ["Size of PJ_XYZT"][::std::mem::size_of::<PJ_XYZT>() - 32usize];
161 ["Alignment of PJ_XYZT"][::std::mem::align_of::<PJ_XYZT>() - 8usize];
162 ["Offset of field: PJ_XYZT::x"][::std::mem::offset_of!(PJ_XYZT, x) - 0usize];
163 ["Offset of field: PJ_XYZT::y"][::std::mem::offset_of!(PJ_XYZT, y) - 8usize];
164 ["Offset of field: PJ_XYZT::z"][::std::mem::offset_of!(PJ_XYZT, z) - 16usize];
165 ["Offset of field: PJ_XYZT::t"][::std::mem::offset_of!(PJ_XYZT, t) - 24usize];
166};
167#[repr(C)]
168#[derive(Debug, Copy, Clone)]
169pub struct PJ_UVWT {
170 pub u: f64,
171 pub v: f64,
172 pub w: f64,
173 pub t: f64,
174}
175#[allow(clippy::unnecessary_operation, clippy::identity_op)]
176const _: () = {
177 ["Size of PJ_UVWT"][::std::mem::size_of::<PJ_UVWT>() - 32usize];
178 ["Alignment of PJ_UVWT"][::std::mem::align_of::<PJ_UVWT>() - 8usize];
179 ["Offset of field: PJ_UVWT::u"][::std::mem::offset_of!(PJ_UVWT, u) - 0usize];
180 ["Offset of field: PJ_UVWT::v"][::std::mem::offset_of!(PJ_UVWT, v) - 8usize];
181 ["Offset of field: PJ_UVWT::w"][::std::mem::offset_of!(PJ_UVWT, w) - 16usize];
182 ["Offset of field: PJ_UVWT::t"][::std::mem::offset_of!(PJ_UVWT, t) - 24usize];
183};
184#[repr(C)]
185#[derive(Debug, Copy, Clone)]
186pub struct PJ_LPZT {
187 pub lam: f64,
188 pub phi: f64,
189 pub z: f64,
190 pub t: f64,
191}
192#[allow(clippy::unnecessary_operation, clippy::identity_op)]
193const _: () = {
194 ["Size of PJ_LPZT"][::std::mem::size_of::<PJ_LPZT>() - 32usize];
195 ["Alignment of PJ_LPZT"][::std::mem::align_of::<PJ_LPZT>() - 8usize];
196 ["Offset of field: PJ_LPZT::lam"][::std::mem::offset_of!(PJ_LPZT, lam) - 0usize];
197 ["Offset of field: PJ_LPZT::phi"][::std::mem::offset_of!(PJ_LPZT, phi) - 8usize];
198 ["Offset of field: PJ_LPZT::z"][::std::mem::offset_of!(PJ_LPZT, z) - 16usize];
199 ["Offset of field: PJ_LPZT::t"][::std::mem::offset_of!(PJ_LPZT, t) - 24usize];
200};
201#[repr(C)]
202#[derive(Debug, Copy, Clone)]
203pub struct PJ_OPK {
204 pub o: f64,
205 pub p: f64,
206 pub k: f64,
207}
208#[allow(clippy::unnecessary_operation, clippy::identity_op)]
209const _: () = {
210 ["Size of PJ_OPK"][::std::mem::size_of::<PJ_OPK>() - 24usize];
211 ["Alignment of PJ_OPK"][::std::mem::align_of::<PJ_OPK>() - 8usize];
212 ["Offset of field: PJ_OPK::o"][::std::mem::offset_of!(PJ_OPK, o) - 0usize];
213 ["Offset of field: PJ_OPK::p"][::std::mem::offset_of!(PJ_OPK, p) - 8usize];
214 ["Offset of field: PJ_OPK::k"][::std::mem::offset_of!(PJ_OPK, k) - 16usize];
215};
216#[repr(C)]
217#[derive(Debug, Copy, Clone)]
218pub struct PJ_ENU {
219 pub e: f64,
220 pub n: f64,
221 pub u: f64,
222}
223#[allow(clippy::unnecessary_operation, clippy::identity_op)]
224const _: () = {
225 ["Size of PJ_ENU"][::std::mem::size_of::<PJ_ENU>() - 24usize];
226 ["Alignment of PJ_ENU"][::std::mem::align_of::<PJ_ENU>() - 8usize];
227 ["Offset of field: PJ_ENU::e"][::std::mem::offset_of!(PJ_ENU, e) - 0usize];
228 ["Offset of field: PJ_ENU::n"][::std::mem::offset_of!(PJ_ENU, n) - 8usize];
229 ["Offset of field: PJ_ENU::u"][::std::mem::offset_of!(PJ_ENU, u) - 16usize];
230};
231#[repr(C)]
232#[derive(Debug, Copy, Clone)]
233pub struct PJ_GEOD {
234 pub s: f64,
235 pub a1: f64,
236 pub a2: f64,
237}
238#[allow(clippy::unnecessary_operation, clippy::identity_op)]
239const _: () = {
240 ["Size of PJ_GEOD"][::std::mem::size_of::<PJ_GEOD>() - 24usize];
241 ["Alignment of PJ_GEOD"][::std::mem::align_of::<PJ_GEOD>() - 8usize];
242 ["Offset of field: PJ_GEOD::s"][::std::mem::offset_of!(PJ_GEOD, s) - 0usize];
243 ["Offset of field: PJ_GEOD::a1"][::std::mem::offset_of!(PJ_GEOD, a1) - 8usize];
244 ["Offset of field: PJ_GEOD::a2"][::std::mem::offset_of!(PJ_GEOD, a2) - 16usize];
245};
246#[repr(C)]
247#[derive(Debug, Copy, Clone)]
248pub struct PJ_UV {
249 pub u: f64,
250 pub v: f64,
251}
252#[allow(clippy::unnecessary_operation, clippy::identity_op)]
253const _: () = {
254 ["Size of PJ_UV"][::std::mem::size_of::<PJ_UV>() - 16usize];
255 ["Alignment of PJ_UV"][::std::mem::align_of::<PJ_UV>() - 8usize];
256 ["Offset of field: PJ_UV::u"][::std::mem::offset_of!(PJ_UV, u) - 0usize];
257 ["Offset of field: PJ_UV::v"][::std::mem::offset_of!(PJ_UV, v) - 8usize];
258};
259#[repr(C)]
260#[derive(Debug, Copy, Clone)]
261pub struct PJ_XY {
262 pub x: f64,
263 pub y: f64,
264}
265#[allow(clippy::unnecessary_operation, clippy::identity_op)]
266const _: () = {
267 ["Size of PJ_XY"][::std::mem::size_of::<PJ_XY>() - 16usize];
268 ["Alignment of PJ_XY"][::std::mem::align_of::<PJ_XY>() - 8usize];
269 ["Offset of field: PJ_XY::x"][::std::mem::offset_of!(PJ_XY, x) - 0usize];
270 ["Offset of field: PJ_XY::y"][::std::mem::offset_of!(PJ_XY, y) - 8usize];
271};
272#[repr(C)]
273#[derive(Debug, Copy, Clone)]
274pub struct PJ_LP {
275 pub lam: f64,
276 pub phi: f64,
277}
278#[allow(clippy::unnecessary_operation, clippy::identity_op)]
279const _: () = {
280 ["Size of PJ_LP"][::std::mem::size_of::<PJ_LP>() - 16usize];
281 ["Alignment of PJ_LP"][::std::mem::align_of::<PJ_LP>() - 8usize];
282 ["Offset of field: PJ_LP::lam"][::std::mem::offset_of!(PJ_LP, lam) - 0usize];
283 ["Offset of field: PJ_LP::phi"][::std::mem::offset_of!(PJ_LP, phi) - 8usize];
284};
285#[repr(C)]
286#[derive(Debug, Copy, Clone)]
287pub struct PJ_XYZ {
288 pub x: f64,
289 pub y: f64,
290 pub z: f64,
291}
292#[allow(clippy::unnecessary_operation, clippy::identity_op)]
293const _: () = {
294 ["Size of PJ_XYZ"][::std::mem::size_of::<PJ_XYZ>() - 24usize];
295 ["Alignment of PJ_XYZ"][::std::mem::align_of::<PJ_XYZ>() - 8usize];
296 ["Offset of field: PJ_XYZ::x"][::std::mem::offset_of!(PJ_XYZ, x) - 0usize];
297 ["Offset of field: PJ_XYZ::y"][::std::mem::offset_of!(PJ_XYZ, y) - 8usize];
298 ["Offset of field: PJ_XYZ::z"][::std::mem::offset_of!(PJ_XYZ, z) - 16usize];
299};
300#[repr(C)]
301#[derive(Debug, Copy, Clone)]
302pub struct PJ_UVW {
303 pub u: f64,
304 pub v: f64,
305 pub w: f64,
306}
307#[allow(clippy::unnecessary_operation, clippy::identity_op)]
308const _: () = {
309 ["Size of PJ_UVW"][::std::mem::size_of::<PJ_UVW>() - 24usize];
310 ["Alignment of PJ_UVW"][::std::mem::align_of::<PJ_UVW>() - 8usize];
311 ["Offset of field: PJ_UVW::u"][::std::mem::offset_of!(PJ_UVW, u) - 0usize];
312 ["Offset of field: PJ_UVW::v"][::std::mem::offset_of!(PJ_UVW, v) - 8usize];
313 ["Offset of field: PJ_UVW::w"][::std::mem::offset_of!(PJ_UVW, w) - 16usize];
314};
315#[repr(C)]
316#[derive(Debug, Copy, Clone)]
317pub struct PJ_LPZ {
318 pub lam: f64,
319 pub phi: f64,
320 pub z: f64,
321}
322#[allow(clippy::unnecessary_operation, clippy::identity_op)]
323const _: () = {
324 ["Size of PJ_LPZ"][::std::mem::size_of::<PJ_LPZ>() - 24usize];
325 ["Alignment of PJ_LPZ"][::std::mem::align_of::<PJ_LPZ>() - 8usize];
326 ["Offset of field: PJ_LPZ::lam"][::std::mem::offset_of!(PJ_LPZ, lam) - 0usize];
327 ["Offset of field: PJ_LPZ::phi"][::std::mem::offset_of!(PJ_LPZ, phi) - 8usize];
328 ["Offset of field: PJ_LPZ::z"][::std::mem::offset_of!(PJ_LPZ, z) - 16usize];
329};
330#[repr(C)]
331#[derive(Copy, Clone)]
332pub union PJ_COORD {
333 pub v: [f64; 4usize],
334 pub xyzt: PJ_XYZT,
335 pub uvwt: PJ_UVWT,
336 pub lpzt: PJ_LPZT,
337 pub geod: PJ_GEOD,
338 pub opk: PJ_OPK,
339 pub enu: PJ_ENU,
340 pub xyz: PJ_XYZ,
341 pub uvw: PJ_UVW,
342 pub lpz: PJ_LPZ,
343 pub xy: PJ_XY,
344 pub uv: PJ_UV,
345 pub lp: PJ_LP,
346}
347#[allow(clippy::unnecessary_operation, clippy::identity_op)]
348const _: () = {
349 ["Size of PJ_COORD"][::std::mem::size_of::<PJ_COORD>() - 32usize];
350 ["Alignment of PJ_COORD"][::std::mem::align_of::<PJ_COORD>() - 8usize];
351 ["Offset of field: PJ_COORD::v"][::std::mem::offset_of!(PJ_COORD, v) - 0usize];
352 ["Offset of field: PJ_COORD::xyzt"][::std::mem::offset_of!(PJ_COORD, xyzt) - 0usize];
353 ["Offset of field: PJ_COORD::uvwt"][::std::mem::offset_of!(PJ_COORD, uvwt) - 0usize];
354 ["Offset of field: PJ_COORD::lpzt"][::std::mem::offset_of!(PJ_COORD, lpzt) - 0usize];
355 ["Offset of field: PJ_COORD::geod"][::std::mem::offset_of!(PJ_COORD, geod) - 0usize];
356 ["Offset of field: PJ_COORD::opk"][::std::mem::offset_of!(PJ_COORD, opk) - 0usize];
357 ["Offset of field: PJ_COORD::enu"][::std::mem::offset_of!(PJ_COORD, enu) - 0usize];
358 ["Offset of field: PJ_COORD::xyz"][::std::mem::offset_of!(PJ_COORD, xyz) - 0usize];
359 ["Offset of field: PJ_COORD::uvw"][::std::mem::offset_of!(PJ_COORD, uvw) - 0usize];
360 ["Offset of field: PJ_COORD::lpz"][::std::mem::offset_of!(PJ_COORD, lpz) - 0usize];
361 ["Offset of field: PJ_COORD::xy"][::std::mem::offset_of!(PJ_COORD, xy) - 0usize];
362 ["Offset of field: PJ_COORD::uv"][::std::mem::offset_of!(PJ_COORD, uv) - 0usize];
363 ["Offset of field: PJ_COORD::lp"][::std::mem::offset_of!(PJ_COORD, lp) - 0usize];
364};
365#[repr(C)]
366#[derive(Debug, Copy, Clone)]
367pub struct PJ_INFO {
368 pub major: ::std::os::raw::c_int,
369 pub minor: ::std::os::raw::c_int,
370 pub patch: ::std::os::raw::c_int,
371 pub release: *const ::std::os::raw::c_char,
372 pub version: *const ::std::os::raw::c_char,
373 pub searchpath: *const ::std::os::raw::c_char,
374 pub paths: *const *const ::std::os::raw::c_char,
375 pub path_count: usize,
376}
377#[allow(clippy::unnecessary_operation, clippy::identity_op)]
378const _: () = {
379 ["Size of PJ_INFO"][::std::mem::size_of::<PJ_INFO>() - 56usize];
380 ["Alignment of PJ_INFO"][::std::mem::align_of::<PJ_INFO>() - 8usize];
381 ["Offset of field: PJ_INFO::major"][::std::mem::offset_of!(PJ_INFO, major) - 0usize];
382 ["Offset of field: PJ_INFO::minor"][::std::mem::offset_of!(PJ_INFO, minor) - 4usize];
383 ["Offset of field: PJ_INFO::patch"][::std::mem::offset_of!(PJ_INFO, patch) - 8usize];
384 ["Offset of field: PJ_INFO::release"][::std::mem::offset_of!(PJ_INFO, release) - 16usize];
385 ["Offset of field: PJ_INFO::version"][::std::mem::offset_of!(PJ_INFO, version) - 24usize];
386 ["Offset of field: PJ_INFO::searchpath"][::std::mem::offset_of!(PJ_INFO, searchpath) - 32usize];
387 ["Offset of field: PJ_INFO::paths"][::std::mem::offset_of!(PJ_INFO, paths) - 40usize];
388 ["Offset of field: PJ_INFO::path_count"][::std::mem::offset_of!(PJ_INFO, path_count) - 48usize];
389};
390#[repr(C)]
391#[derive(Debug, Copy, Clone)]
392pub struct PJ_PROJ_INFO {
393 pub id: *const ::std::os::raw::c_char,
394 pub description: *const ::std::os::raw::c_char,
395 pub definition: *const ::std::os::raw::c_char,
396 pub has_inverse: ::std::os::raw::c_int,
397 pub accuracy: f64,
398}
399#[allow(clippy::unnecessary_operation, clippy::identity_op)]
400const _: () = {
401 ["Size of PJ_PROJ_INFO"][::std::mem::size_of::<PJ_PROJ_INFO>() - 40usize];
402 ["Alignment of PJ_PROJ_INFO"][::std::mem::align_of::<PJ_PROJ_INFO>() - 8usize];
403 ["Offset of field: PJ_PROJ_INFO::id"][::std::mem::offset_of!(PJ_PROJ_INFO, id) - 0usize];
404 ["Offset of field: PJ_PROJ_INFO::description"]
405 [::std::mem::offset_of!(PJ_PROJ_INFO, description) - 8usize];
406 ["Offset of field: PJ_PROJ_INFO::definition"]
407 [::std::mem::offset_of!(PJ_PROJ_INFO, definition) - 16usize];
408 ["Offset of field: PJ_PROJ_INFO::has_inverse"]
409 [::std::mem::offset_of!(PJ_PROJ_INFO, has_inverse) - 24usize];
410 ["Offset of field: PJ_PROJ_INFO::accuracy"]
411 [::std::mem::offset_of!(PJ_PROJ_INFO, accuracy) - 32usize];
412};
413#[repr(C)]
414#[derive(Debug, Copy, Clone)]
415pub struct PJ_GRID_INFO {
416 pub gridname: [::std::os::raw::c_char; 32usize],
417 pub filename: [::std::os::raw::c_char; 260usize],
418 pub format: [::std::os::raw::c_char; 8usize],
419 pub lowerleft: PJ_LP,
420 pub upperright: PJ_LP,
421 pub n_lon: ::std::os::raw::c_int,
422 pub n_lat: ::std::os::raw::c_int,
423 pub cs_lon: f64,
424 pub cs_lat: f64,
425}
426#[allow(clippy::unnecessary_operation, clippy::identity_op)]
427const _: () = {
428 ["Size of PJ_GRID_INFO"][::std::mem::size_of::<PJ_GRID_INFO>() - 360usize];
429 ["Alignment of PJ_GRID_INFO"][::std::mem::align_of::<PJ_GRID_INFO>() - 8usize];
430 ["Offset of field: PJ_GRID_INFO::gridname"]
431 [::std::mem::offset_of!(PJ_GRID_INFO, gridname) - 0usize];
432 ["Offset of field: PJ_GRID_INFO::filename"]
433 [::std::mem::offset_of!(PJ_GRID_INFO, filename) - 32usize];
434 ["Offset of field: PJ_GRID_INFO::format"]
435 [::std::mem::offset_of!(PJ_GRID_INFO, format) - 292usize];
436 ["Offset of field: PJ_GRID_INFO::lowerleft"]
437 [::std::mem::offset_of!(PJ_GRID_INFO, lowerleft) - 304usize];
438 ["Offset of field: PJ_GRID_INFO::upperright"]
439 [::std::mem::offset_of!(PJ_GRID_INFO, upperright) - 320usize];
440 ["Offset of field: PJ_GRID_INFO::n_lon"]
441 [::std::mem::offset_of!(PJ_GRID_INFO, n_lon) - 336usize];
442 ["Offset of field: PJ_GRID_INFO::n_lat"]
443 [::std::mem::offset_of!(PJ_GRID_INFO, n_lat) - 340usize];
444 ["Offset of field: PJ_GRID_INFO::cs_lon"]
445 [::std::mem::offset_of!(PJ_GRID_INFO, cs_lon) - 344usize];
446 ["Offset of field: PJ_GRID_INFO::cs_lat"]
447 [::std::mem::offset_of!(PJ_GRID_INFO, cs_lat) - 352usize];
448};
449#[repr(C)]
450#[derive(Debug, Copy, Clone)]
451pub struct PJ_INIT_INFO {
452 pub name: [::std::os::raw::c_char; 32usize],
453 pub filename: [::std::os::raw::c_char; 260usize],
454 pub version: [::std::os::raw::c_char; 32usize],
455 pub origin: [::std::os::raw::c_char; 32usize],
456 pub lastupdate: [::std::os::raw::c_char; 16usize],
457}
458#[allow(clippy::unnecessary_operation, clippy::identity_op)]
459const _: () = {
460 ["Size of PJ_INIT_INFO"][::std::mem::size_of::<PJ_INIT_INFO>() - 372usize];
461 ["Alignment of PJ_INIT_INFO"][::std::mem::align_of::<PJ_INIT_INFO>() - 1usize];
462 ["Offset of field: PJ_INIT_INFO::name"][::std::mem::offset_of!(PJ_INIT_INFO, name) - 0usize];
463 ["Offset of field: PJ_INIT_INFO::filename"]
464 [::std::mem::offset_of!(PJ_INIT_INFO, filename) - 32usize];
465 ["Offset of field: PJ_INIT_INFO::version"]
466 [::std::mem::offset_of!(PJ_INIT_INFO, version) - 292usize];
467 ["Offset of field: PJ_INIT_INFO::origin"]
468 [::std::mem::offset_of!(PJ_INIT_INFO, origin) - 324usize];
469 ["Offset of field: PJ_INIT_INFO::lastupdate"]
470 [::std::mem::offset_of!(PJ_INIT_INFO, lastupdate) - 356usize];
471};
472pub const PJ_LOG_LEVEL_PJ_LOG_NONE: PJ_LOG_LEVEL = 0;
473pub const PJ_LOG_LEVEL_PJ_LOG_ERROR: PJ_LOG_LEVEL = 1;
474pub const PJ_LOG_LEVEL_PJ_LOG_DEBUG: PJ_LOG_LEVEL = 2;
475pub const PJ_LOG_LEVEL_PJ_LOG_TRACE: PJ_LOG_LEVEL = 3;
476pub const PJ_LOG_LEVEL_PJ_LOG_TELL: PJ_LOG_LEVEL = 4;
477pub const PJ_LOG_LEVEL_PJ_LOG_DEBUG_MAJOR: PJ_LOG_LEVEL = 2;
478pub const PJ_LOG_LEVEL_PJ_LOG_DEBUG_MINOR: PJ_LOG_LEVEL = 3;
479pub type PJ_LOG_LEVEL = ::std::os::raw::c_uint;
480pub type PJ_LOG_FUNCTION = ::std::option::Option<
481 unsafe extern "C" fn(
482 arg1: *mut ::std::os::raw::c_void,
483 arg2: ::std::os::raw::c_int,
484 arg3: *const ::std::os::raw::c_char,
485 ),
486>;
487#[repr(C)]
488#[derive(Debug, Copy, Clone)]
489pub struct pj_ctx {
490 _unused: [u8; 0],
491}
492pub type PJ_CONTEXT = pj_ctx;
493unsafe extern "C" {
494 pub fn proj_context_create() -> *mut PJ_CONTEXT;
495}
496unsafe extern "C" {
497 pub fn proj_context_destroy(ctx: *mut PJ_CONTEXT) -> *mut PJ_CONTEXT;
498}
499unsafe extern "C" {
500 pub fn proj_context_clone(ctx: *mut PJ_CONTEXT) -> *mut PJ_CONTEXT;
501}
502#[doc = " Callback to resolve a filename to a full path"]
503pub type proj_file_finder = ::std::option::Option<
504 unsafe extern "C" fn(
505 ctx: *mut PJ_CONTEXT,
506 arg1: *const ::std::os::raw::c_char,
507 user_data: *mut ::std::os::raw::c_void,
508 ) -> *const ::std::os::raw::c_char,
509>;
510unsafe extern "C" {
511 #[doc = " @endcond"]
512 pub fn proj_context_set_file_finder(
513 ctx: *mut PJ_CONTEXT,
514 finder: proj_file_finder,
515 user_data: *mut ::std::os::raw::c_void,
516 );
517}
518unsafe extern "C" {
519 pub fn proj_context_set_search_paths(
520 ctx: *mut PJ_CONTEXT,
521 count_paths: ::std::os::raw::c_int,
522 paths: *const *const ::std::os::raw::c_char,
523 );
524}
525unsafe extern "C" {
526 pub fn proj_context_set_ca_bundle_path(
527 ctx: *mut PJ_CONTEXT,
528 path: *const ::std::os::raw::c_char,
529 );
530}
531unsafe extern "C" {
532 #[doc = " @cond Doxygen_Suppress"]
533 pub fn proj_context_use_proj4_init_rules(ctx: *mut PJ_CONTEXT, enable: ::std::os::raw::c_int);
534}
535unsafe extern "C" {
536 pub fn proj_context_get_use_proj4_init_rules(
537 ctx: *mut PJ_CONTEXT,
538 from_legacy_code_path: ::std::os::raw::c_int,
539 ) -> ::std::os::raw::c_int;
540}
541#[repr(C)]
542#[derive(Debug, Copy, Clone)]
543pub struct PROJ_FILE_HANDLE {
544 _unused: [u8; 0],
545}
546#[doc = " Read-only access. Equivalent to \"rb\""]
547pub const PROJ_OPEN_ACCESS_PROJ_OPEN_ACCESS_READ_ONLY: PROJ_OPEN_ACCESS = 0;
548#[doc = " Read-update access. File should be created if not existing. Equivalent\nto \"r+b\""]
549pub const PROJ_OPEN_ACCESS_PROJ_OPEN_ACCESS_READ_UPDATE: PROJ_OPEN_ACCESS = 1;
550#[doc = " Create access. File should be truncated to 0-byte if already existing.\nEquivalent to \"w+b\""]
551pub const PROJ_OPEN_ACCESS_PROJ_OPEN_ACCESS_CREATE: PROJ_OPEN_ACCESS = 2;
552#[doc = " Open access / mode"]
553pub type PROJ_OPEN_ACCESS = ::std::os::raw::c_uint;
554#[doc = " File API callbacks"]
555#[repr(C)]
556#[derive(Debug, Copy, Clone)]
557pub struct PROJ_FILE_API {
558 #[doc = " Version of this structure. Should be set to 1 currently."]
559 pub version: ::std::os::raw::c_int,
560 #[doc = " Open file. Return NULL if error"]
561 pub open_cbk: ::std::option::Option<
562 unsafe extern "C" fn(
563 ctx: *mut PJ_CONTEXT,
564 filename: *const ::std::os::raw::c_char,
565 access: PROJ_OPEN_ACCESS,
566 user_data: *mut ::std::os::raw::c_void,
567 ) -> *mut PROJ_FILE_HANDLE,
568 >,
569 #[doc = " Read sizeBytes into buffer from current position and return number of\n bytes read"]
570 pub read_cbk: ::std::option::Option<
571 unsafe extern "C" fn(
572 ctx: *mut PJ_CONTEXT,
573 arg1: *mut PROJ_FILE_HANDLE,
574 buffer: *mut ::std::os::raw::c_void,
575 sizeBytes: usize,
576 user_data: *mut ::std::os::raw::c_void,
577 ) -> usize,
578 >,
579 #[doc = " Write sizeBytes into buffer from current position and return number of\n bytes written"]
580 pub write_cbk: ::std::option::Option<
581 unsafe extern "C" fn(
582 ctx: *mut PJ_CONTEXT,
583 arg1: *mut PROJ_FILE_HANDLE,
584 buffer: *const ::std::os::raw::c_void,
585 sizeBytes: usize,
586 user_data: *mut ::std::os::raw::c_void,
587 ) -> usize,
588 >,
589 #[doc = " Seek to offset using whence=SEEK_SET/SEEK_CUR/SEEK_END. Return TRUE in\n case of success"]
590 pub seek_cbk: ::std::option::Option<
591 unsafe extern "C" fn(
592 ctx: *mut PJ_CONTEXT,
593 arg1: *mut PROJ_FILE_HANDLE,
594 offset: ::std::os::raw::c_longlong,
595 whence: ::std::os::raw::c_int,
596 user_data: *mut ::std::os::raw::c_void,
597 ) -> ::std::os::raw::c_int,
598 >,
599 #[doc = " Return current file position"]
600 pub tell_cbk: ::std::option::Option<
601 unsafe extern "C" fn(
602 ctx: *mut PJ_CONTEXT,
603 arg1: *mut PROJ_FILE_HANDLE,
604 user_data: *mut ::std::os::raw::c_void,
605 ) -> ::std::os::raw::c_ulonglong,
606 >,
607 #[doc = " Close file"]
608 pub close_cbk: ::std::option::Option<
609 unsafe extern "C" fn(
610 ctx: *mut PJ_CONTEXT,
611 arg1: *mut PROJ_FILE_HANDLE,
612 user_data: *mut ::std::os::raw::c_void,
613 ),
614 >,
615 #[doc = " Return TRUE if a file exists"]
616 pub exists_cbk: ::std::option::Option<
617 unsafe extern "C" fn(
618 ctx: *mut PJ_CONTEXT,
619 filename: *const ::std::os::raw::c_char,
620 user_data: *mut ::std::os::raw::c_void,
621 ) -> ::std::os::raw::c_int,
622 >,
623 #[doc = " Return TRUE if directory exists or could be created"]
624 pub mkdir_cbk: ::std::option::Option<
625 unsafe extern "C" fn(
626 ctx: *mut PJ_CONTEXT,
627 filename: *const ::std::os::raw::c_char,
628 user_data: *mut ::std::os::raw::c_void,
629 ) -> ::std::os::raw::c_int,
630 >,
631 #[doc = " Return TRUE if file could be removed"]
632 pub unlink_cbk: ::std::option::Option<
633 unsafe extern "C" fn(
634 ctx: *mut PJ_CONTEXT,
635 filename: *const ::std::os::raw::c_char,
636 user_data: *mut ::std::os::raw::c_void,
637 ) -> ::std::os::raw::c_int,
638 >,
639 #[doc = " Return TRUE if file could be renamed"]
640 pub rename_cbk: ::std::option::Option<
641 unsafe extern "C" fn(
642 ctx: *mut PJ_CONTEXT,
643 oldPath: *const ::std::os::raw::c_char,
644 newPath: *const ::std::os::raw::c_char,
645 user_data: *mut ::std::os::raw::c_void,
646 ) -> ::std::os::raw::c_int,
647 >,
648}
649#[allow(clippy::unnecessary_operation, clippy::identity_op)]
650const _: () = {
651 ["Size of PROJ_FILE_API"][::std::mem::size_of::<PROJ_FILE_API>() - 88usize];
652 ["Alignment of PROJ_FILE_API"][::std::mem::align_of::<PROJ_FILE_API>() - 8usize];
653 ["Offset of field: PROJ_FILE_API::version"]
654 [::std::mem::offset_of!(PROJ_FILE_API, version) - 0usize];
655 ["Offset of field: PROJ_FILE_API::open_cbk"]
656 [::std::mem::offset_of!(PROJ_FILE_API, open_cbk) - 8usize];
657 ["Offset of field: PROJ_FILE_API::read_cbk"]
658 [::std::mem::offset_of!(PROJ_FILE_API, read_cbk) - 16usize];
659 ["Offset of field: PROJ_FILE_API::write_cbk"]
660 [::std::mem::offset_of!(PROJ_FILE_API, write_cbk) - 24usize];
661 ["Offset of field: PROJ_FILE_API::seek_cbk"]
662 [::std::mem::offset_of!(PROJ_FILE_API, seek_cbk) - 32usize];
663 ["Offset of field: PROJ_FILE_API::tell_cbk"]
664 [::std::mem::offset_of!(PROJ_FILE_API, tell_cbk) - 40usize];
665 ["Offset of field: PROJ_FILE_API::close_cbk"]
666 [::std::mem::offset_of!(PROJ_FILE_API, close_cbk) - 48usize];
667 ["Offset of field: PROJ_FILE_API::exists_cbk"]
668 [::std::mem::offset_of!(PROJ_FILE_API, exists_cbk) - 56usize];
669 ["Offset of field: PROJ_FILE_API::mkdir_cbk"]
670 [::std::mem::offset_of!(PROJ_FILE_API, mkdir_cbk) - 64usize];
671 ["Offset of field: PROJ_FILE_API::unlink_cbk"]
672 [::std::mem::offset_of!(PROJ_FILE_API, unlink_cbk) - 72usize];
673 ["Offset of field: PROJ_FILE_API::rename_cbk"]
674 [::std::mem::offset_of!(PROJ_FILE_API, rename_cbk) - 80usize];
675};
676unsafe extern "C" {
677 pub fn proj_context_set_fileapi(
678 ctx: *mut PJ_CONTEXT,
679 fileapi: *const PROJ_FILE_API,
680 user_data: *mut ::std::os::raw::c_void,
681 ) -> ::std::os::raw::c_int;
682}
683unsafe extern "C" {
684 pub fn proj_context_set_sqlite3_vfs_name(
685 ctx: *mut PJ_CONTEXT,
686 name: *const ::std::os::raw::c_char,
687 );
688}
689#[repr(C)]
690#[derive(Debug, Copy, Clone)]
691pub struct PROJ_NETWORK_HANDLE {
692 _unused: [u8; 0],
693}
694#[doc = " Network access: open callback\n\n Should try to read the size_to_read first bytes at the specified offset of\n the file given by URL url,\n and write them to buffer. *out_size_read should be updated with the actual\n amount of bytes read (== size_to_read if the file is larger than\n size_to_read). During this read, the implementation should make sure to store\n the HTTP headers from the server response to be able to respond to\n proj_network_get_header_value_cbk_type callback.\n\n error_string_max_size should be the maximum size that can be written into\n the out_error_string buffer (including terminating nul character).\n\n @return a non-NULL opaque handle in case of success."]
695pub type proj_network_open_cbk_type = ::std::option::Option<
696 unsafe extern "C" fn(
697 ctx: *mut PJ_CONTEXT,
698 url: *const ::std::os::raw::c_char,
699 offset: ::std::os::raw::c_ulonglong,
700 size_to_read: usize,
701 buffer: *mut ::std::os::raw::c_void,
702 out_size_read: *mut usize,
703 error_string_max_size: usize,
704 out_error_string: *mut ::std::os::raw::c_char,
705 user_data: *mut ::std::os::raw::c_void,
706 ) -> *mut PROJ_NETWORK_HANDLE,
707>;
708#[doc = " Network access: close callback"]
709pub type proj_network_close_cbk_type = ::std::option::Option<
710 unsafe extern "C" fn(
711 ctx: *mut PJ_CONTEXT,
712 handle: *mut PROJ_NETWORK_HANDLE,
713 user_data: *mut ::std::os::raw::c_void,
714 ),
715>;
716#[doc = " Network access: get HTTP headers"]
717pub type proj_network_get_header_value_cbk_type = ::std::option::Option<
718 unsafe extern "C" fn(
719 ctx: *mut PJ_CONTEXT,
720 handle: *mut PROJ_NETWORK_HANDLE,
721 header_name: *const ::std::os::raw::c_char,
722 user_data: *mut ::std::os::raw::c_void,
723 ) -> *const ::std::os::raw::c_char,
724>;
725#[doc = " Network access: read range\n\n Read size_to_read bytes from handle, starting at offset, into\n buffer.\n During this read, the implementation should make sure to store the HTTP\n headers from the server response to be able to respond to\n proj_network_get_header_value_cbk_type callback.\n\n error_string_max_size should be the maximum size that can be written into\n the out_error_string buffer (including terminating nul character).\n\n @return the number of bytes actually read (0 in case of error)"]
726pub type proj_network_read_range_type = ::std::option::Option<
727 unsafe extern "C" fn(
728 ctx: *mut PJ_CONTEXT,
729 handle: *mut PROJ_NETWORK_HANDLE,
730 offset: ::std::os::raw::c_ulonglong,
731 size_to_read: usize,
732 buffer: *mut ::std::os::raw::c_void,
733 error_string_max_size: usize,
734 out_error_string: *mut ::std::os::raw::c_char,
735 user_data: *mut ::std::os::raw::c_void,
736 ) -> usize,
737>;
738unsafe extern "C" {
739 pub fn proj_context_set_network_callbacks(
740 ctx: *mut PJ_CONTEXT,
741 open_cbk: proj_network_open_cbk_type,
742 close_cbk: proj_network_close_cbk_type,
743 get_header_value_cbk: proj_network_get_header_value_cbk_type,
744 read_range_cbk: proj_network_read_range_type,
745 user_data: *mut ::std::os::raw::c_void,
746 ) -> ::std::os::raw::c_int;
747}
748unsafe extern "C" {
749 pub fn proj_context_set_enable_network(
750 ctx: *mut PJ_CONTEXT,
751 enabled: ::std::os::raw::c_int,
752 ) -> ::std::os::raw::c_int;
753}
754unsafe extern "C" {
755 pub fn proj_context_is_network_enabled(ctx: *mut PJ_CONTEXT) -> ::std::os::raw::c_int;
756}
757unsafe extern "C" {
758 pub fn proj_context_set_url_endpoint(ctx: *mut PJ_CONTEXT, url: *const ::std::os::raw::c_char);
759}
760unsafe extern "C" {
761 pub fn proj_context_get_url_endpoint(ctx: *mut PJ_CONTEXT) -> *const ::std::os::raw::c_char;
762}
763unsafe extern "C" {
764 pub fn proj_context_get_user_writable_directory(
765 ctx: *mut PJ_CONTEXT,
766 create: ::std::os::raw::c_int,
767 ) -> *const ::std::os::raw::c_char;
768}
769unsafe extern "C" {
770 pub fn proj_context_set_user_writable_directory(
771 ctx: *mut PJ_CONTEXT,
772 path: *const ::std::os::raw::c_char,
773 create: ::std::os::raw::c_int,
774 );
775}
776unsafe extern "C" {
777 pub fn proj_grid_cache_set_enable(ctx: *mut PJ_CONTEXT, enabled: ::std::os::raw::c_int);
778}
779unsafe extern "C" {
780 pub fn proj_grid_cache_set_filename(
781 ctx: *mut PJ_CONTEXT,
782 fullname: *const ::std::os::raw::c_char,
783 );
784}
785unsafe extern "C" {
786 pub fn proj_grid_cache_set_max_size(ctx: *mut PJ_CONTEXT, max_size_MB: ::std::os::raw::c_int);
787}
788unsafe extern "C" {
789 pub fn proj_grid_cache_set_ttl(ctx: *mut PJ_CONTEXT, ttl_seconds: ::std::os::raw::c_int);
790}
791unsafe extern "C" {
792 pub fn proj_grid_cache_clear(ctx: *mut PJ_CONTEXT);
793}
794unsafe extern "C" {
795 pub fn proj_is_download_needed(
796 ctx: *mut PJ_CONTEXT,
797 url_or_filename: *const ::std::os::raw::c_char,
798 ignore_ttl_setting: ::std::os::raw::c_int,
799 ) -> ::std::os::raw::c_int;
800}
801unsafe extern "C" {
802 pub fn proj_download_file(
803 ctx: *mut PJ_CONTEXT,
804 url_or_filename: *const ::std::os::raw::c_char,
805 ignore_ttl_setting: ::std::os::raw::c_int,
806 progress_cbk: ::std::option::Option<
807 unsafe extern "C" fn(
808 arg1: *mut PJ_CONTEXT,
809 pct: f64,
810 user_data: *mut ::std::os::raw::c_void,
811 ) -> ::std::os::raw::c_int,
812 >,
813 user_data: *mut ::std::os::raw::c_void,
814 ) -> ::std::os::raw::c_int;
815}
816unsafe extern "C" {
817 #[doc = " @cond Doxygen_Suppress"]
818 pub fn proj_create(ctx: *mut PJ_CONTEXT, definition: *const ::std::os::raw::c_char) -> *mut PJ;
819}
820unsafe extern "C" {
821 pub fn proj_create_argv(
822 ctx: *mut PJ_CONTEXT,
823 argc: ::std::os::raw::c_int,
824 argv: *mut *mut ::std::os::raw::c_char,
825 ) -> *mut PJ;
826}
827unsafe extern "C" {
828 pub fn proj_create_crs_to_crs(
829 ctx: *mut PJ_CONTEXT,
830 source_crs: *const ::std::os::raw::c_char,
831 target_crs: *const ::std::os::raw::c_char,
832 area: *mut PJ_AREA,
833 ) -> *mut PJ;
834}
835unsafe extern "C" {
836 pub fn proj_create_crs_to_crs_from_pj(
837 ctx: *mut PJ_CONTEXT,
838 source_crs: *const PJ,
839 target_crs: *const PJ,
840 area: *mut PJ_AREA,
841 options: *const *const ::std::os::raw::c_char,
842 ) -> *mut PJ;
843}
844unsafe extern "C" {
845 #[doc = " @endcond"]
846 pub fn proj_normalize_for_visualization(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
847}
848unsafe extern "C" {
849 #[doc = " @cond Doxygen_Suppress"]
850 pub fn proj_assign_context(pj: *mut PJ, ctx: *mut PJ_CONTEXT);
851}
852unsafe extern "C" {
853 pub fn proj_destroy(P: *mut PJ) -> *mut PJ;
854}
855unsafe extern "C" {
856 pub fn proj_area_create() -> *mut PJ_AREA;
857}
858unsafe extern "C" {
859 pub fn proj_area_set_bbox(
860 area: *mut PJ_AREA,
861 west_lon_degree: f64,
862 south_lat_degree: f64,
863 east_lon_degree: f64,
864 north_lat_degree: f64,
865 );
866}
867unsafe extern "C" {
868 pub fn proj_area_set_name(area: *mut PJ_AREA, name: *const ::std::os::raw::c_char);
869}
870unsafe extern "C" {
871 pub fn proj_area_destroy(area: *mut PJ_AREA);
872}
873pub const PJ_DIRECTION_PJ_FWD: PJ_DIRECTION = 1;
874pub const PJ_DIRECTION_PJ_IDENT: PJ_DIRECTION = 0;
875pub const PJ_DIRECTION_PJ_INV: PJ_DIRECTION = -1;
876pub type PJ_DIRECTION = ::std::os::raw::c_int;
877unsafe extern "C" {
878 pub fn proj_angular_input(P: *mut PJ, dir: PJ_DIRECTION) -> ::std::os::raw::c_int;
879}
880unsafe extern "C" {
881 pub fn proj_angular_output(P: *mut PJ, dir: PJ_DIRECTION) -> ::std::os::raw::c_int;
882}
883unsafe extern "C" {
884 pub fn proj_degree_input(P: *mut PJ, dir: PJ_DIRECTION) -> ::std::os::raw::c_int;
885}
886unsafe extern "C" {
887 pub fn proj_degree_output(P: *mut PJ, dir: PJ_DIRECTION) -> ::std::os::raw::c_int;
888}
889unsafe extern "C" {
890 pub fn proj_trans(P: *mut PJ, direction: PJ_DIRECTION, coord: PJ_COORD) -> PJ_COORD;
891}
892unsafe extern "C" {
893 pub fn proj_trans_get_last_used_operation(P: *mut PJ) -> *mut PJ;
894}
895unsafe extern "C" {
896 pub fn proj_trans_array(
897 P: *mut PJ,
898 direction: PJ_DIRECTION,
899 n: usize,
900 coord: *mut PJ_COORD,
901 ) -> ::std::os::raw::c_int;
902}
903unsafe extern "C" {
904 pub fn proj_trans_generic(
905 P: *mut PJ,
906 direction: PJ_DIRECTION,
907 x: *mut f64,
908 sx: usize,
909 nx: usize,
910 y: *mut f64,
911 sy: usize,
912 ny: usize,
913 z: *mut f64,
914 sz: usize,
915 nz: usize,
916 t: *mut f64,
917 st: usize,
918 nt: usize,
919 ) -> usize;
920}
921unsafe extern "C" {
922 #[doc = " @endcond"]
923 pub fn proj_trans_bounds(
924 context: *mut PJ_CONTEXT,
925 P: *mut PJ,
926 direction: PJ_DIRECTION,
927 xmin: f64,
928 ymin: f64,
929 xmax: f64,
930 ymax: f64,
931 out_xmin: *mut f64,
932 out_ymin: *mut f64,
933 out_xmax: *mut f64,
934 out_ymax: *mut f64,
935 densify_pts: ::std::os::raw::c_int,
936 ) -> ::std::os::raw::c_int;
937}
938unsafe extern "C" {
939 #[doc = " @cond Doxygen_Suppress"]
940 pub fn proj_coord(x: f64, y: f64, z: f64, t: f64) -> PJ_COORD;
941}
942unsafe extern "C" {
943 pub fn proj_roundtrip(
944 P: *mut PJ,
945 direction: PJ_DIRECTION,
946 n: ::std::os::raw::c_int,
947 coord: *mut PJ_COORD,
948 ) -> f64;
949}
950unsafe extern "C" {
951 pub fn proj_lp_dist(P: *const PJ, a: PJ_COORD, b: PJ_COORD) -> f64;
952}
953unsafe extern "C" {
954 pub fn proj_lpz_dist(P: *const PJ, a: PJ_COORD, b: PJ_COORD) -> f64;
955}
956unsafe extern "C" {
957 pub fn proj_xy_dist(a: PJ_COORD, b: PJ_COORD) -> f64;
958}
959unsafe extern "C" {
960 pub fn proj_xyz_dist(a: PJ_COORD, b: PJ_COORD) -> f64;
961}
962unsafe extern "C" {
963 pub fn proj_geod(P: *const PJ, a: PJ_COORD, b: PJ_COORD) -> PJ_COORD;
964}
965unsafe extern "C" {
966 pub fn proj_context_errno(ctx: *mut PJ_CONTEXT) -> ::std::os::raw::c_int;
967}
968unsafe extern "C" {
969 pub fn proj_errno(P: *const PJ) -> ::std::os::raw::c_int;
970}
971unsafe extern "C" {
972 pub fn proj_errno_set(P: *const PJ, err: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
973}
974unsafe extern "C" {
975 pub fn proj_errno_reset(P: *const PJ) -> ::std::os::raw::c_int;
976}
977unsafe extern "C" {
978 pub fn proj_errno_restore(P: *const PJ, err: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
979}
980unsafe extern "C" {
981 pub fn proj_errno_string(err: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
982}
983unsafe extern "C" {
984 pub fn proj_context_errno_string(
985 ctx: *mut PJ_CONTEXT,
986 err: ::std::os::raw::c_int,
987 ) -> *const ::std::os::raw::c_char;
988}
989unsafe extern "C" {
990 pub fn proj_log_level(ctx: *mut PJ_CONTEXT, log_level: PJ_LOG_LEVEL) -> PJ_LOG_LEVEL;
991}
992unsafe extern "C" {
993 pub fn proj_log_func(
994 ctx: *mut PJ_CONTEXT,
995 app_data: *mut ::std::os::raw::c_void,
996 logf: PJ_LOG_FUNCTION,
997 );
998}
999unsafe extern "C" {
1000 pub fn proj_factors(P: *mut PJ, lp: PJ_COORD) -> PJ_FACTORS;
1001}
1002unsafe extern "C" {
1003 pub fn proj_info() -> PJ_INFO;
1004}
1005unsafe extern "C" {
1006 pub fn proj_pj_info(P: *mut PJ) -> PJ_PROJ_INFO;
1007}
1008unsafe extern "C" {
1009 pub fn proj_grid_info(gridname: *const ::std::os::raw::c_char) -> PJ_GRID_INFO;
1010}
1011unsafe extern "C" {
1012 pub fn proj_init_info(initname: *const ::std::os::raw::c_char) -> PJ_INIT_INFO;
1013}
1014unsafe extern "C" {
1015 pub fn proj_list_operations() -> *const PJ_OPERATIONS;
1016}
1017unsafe extern "C" {
1018 pub fn proj_list_ellps() -> *const PJ_ELLPS;
1019}
1020unsafe extern "C" {
1021 pub fn proj_list_units() -> *const PJ_UNITS;
1022}
1023unsafe extern "C" {
1024 pub fn proj_list_angular_units() -> *const PJ_UNITS;
1025}
1026unsafe extern "C" {
1027 pub fn proj_list_prime_meridians() -> *const PJ_PRIME_MERIDIANS;
1028}
1029unsafe extern "C" {
1030 pub fn proj_torad(angle_in_degrees: f64) -> f64;
1031}
1032unsafe extern "C" {
1033 pub fn proj_todeg(angle_in_radians: f64) -> f64;
1034}
1035unsafe extern "C" {
1036 pub fn proj_dmstor(
1037 is: *const ::std::os::raw::c_char,
1038 rs: *mut *mut ::std::os::raw::c_char,
1039 ) -> f64;
1040}
1041unsafe extern "C" {
1042 pub fn proj_rtodms(
1043 s: *mut ::std::os::raw::c_char,
1044 r: f64,
1045 pos: ::std::os::raw::c_int,
1046 neg: ::std::os::raw::c_int,
1047 ) -> *mut ::std::os::raw::c_char;
1048}
1049unsafe extern "C" {
1050 pub fn proj_rtodms2(
1051 s: *mut ::std::os::raw::c_char,
1052 sizeof_s: usize,
1053 r: f64,
1054 pos: ::std::os::raw::c_int,
1055 neg: ::std::os::raw::c_int,
1056 ) -> *mut ::std::os::raw::c_char;
1057}
1058unsafe extern "C" {
1059 pub fn proj_cleanup();
1060}
1061#[doc = " \\brief Type representing a NULL terminated list of NULL-terminate strings."]
1062pub type PROJ_STRING_LIST = *mut *mut ::std::os::raw::c_char;
1063#[doc = " \\ref WKT2_2019"]
1064pub const PJ_GUESSED_WKT_DIALECT_PJ_GUESSED_WKT2_2019: PJ_GUESSED_WKT_DIALECT = 0;
1065#[doc = " Deprecated alias for PJ_GUESSED_WKT2_2019"]
1066pub const PJ_GUESSED_WKT_DIALECT_PJ_GUESSED_WKT2_2018: PJ_GUESSED_WKT_DIALECT = 0;
1067#[doc = " \\ref WKT2_2015"]
1068pub const PJ_GUESSED_WKT_DIALECT_PJ_GUESSED_WKT2_2015: PJ_GUESSED_WKT_DIALECT = 1;
1069#[doc = " \\ref WKT1"]
1070pub const PJ_GUESSED_WKT_DIALECT_PJ_GUESSED_WKT1_GDAL: PJ_GUESSED_WKT_DIALECT = 2;
1071#[doc = " ESRI variant of WKT1"]
1072pub const PJ_GUESSED_WKT_DIALECT_PJ_GUESSED_WKT1_ESRI: PJ_GUESSED_WKT_DIALECT = 3;
1073#[doc = " Not WKT / unrecognized"]
1074pub const PJ_GUESSED_WKT_DIALECT_PJ_GUESSED_NOT_WKT: PJ_GUESSED_WKT_DIALECT = 4;
1075#[doc = " \\brief Guessed WKT \"dialect\"."]
1076pub type PJ_GUESSED_WKT_DIALECT = ::std::os::raw::c_uint;
1077pub const PJ_CATEGORY_PJ_CATEGORY_ELLIPSOID: PJ_CATEGORY = 0;
1078pub const PJ_CATEGORY_PJ_CATEGORY_PRIME_MERIDIAN: PJ_CATEGORY = 1;
1079pub const PJ_CATEGORY_PJ_CATEGORY_DATUM: PJ_CATEGORY = 2;
1080pub const PJ_CATEGORY_PJ_CATEGORY_CRS: PJ_CATEGORY = 3;
1081pub const PJ_CATEGORY_PJ_CATEGORY_COORDINATE_OPERATION: PJ_CATEGORY = 4;
1082pub const PJ_CATEGORY_PJ_CATEGORY_DATUM_ENSEMBLE: PJ_CATEGORY = 5;
1083#[doc = " \\brief Object category."]
1084pub type PJ_CATEGORY = ::std::os::raw::c_uint;
1085pub const PJ_TYPE_PJ_TYPE_UNKNOWN: PJ_TYPE = 0;
1086pub const PJ_TYPE_PJ_TYPE_ELLIPSOID: PJ_TYPE = 1;
1087pub const PJ_TYPE_PJ_TYPE_PRIME_MERIDIAN: PJ_TYPE = 2;
1088pub const PJ_TYPE_PJ_TYPE_GEODETIC_REFERENCE_FRAME: PJ_TYPE = 3;
1089pub const PJ_TYPE_PJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME: PJ_TYPE = 4;
1090pub const PJ_TYPE_PJ_TYPE_VERTICAL_REFERENCE_FRAME: PJ_TYPE = 5;
1091pub const PJ_TYPE_PJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME: PJ_TYPE = 6;
1092pub const PJ_TYPE_PJ_TYPE_DATUM_ENSEMBLE: PJ_TYPE = 7;
1093#[doc = " Abstract type, not returned by proj_get_type()"]
1094pub const PJ_TYPE_PJ_TYPE_CRS: PJ_TYPE = 8;
1095#[doc = " Abstract type, not returned by proj_get_type()"]
1096pub const PJ_TYPE_PJ_TYPE_GEODETIC_CRS: PJ_TYPE = 9;
1097#[doc = " Abstract type, not returned by proj_get_type()"]
1098pub const PJ_TYPE_PJ_TYPE_GEOCENTRIC_CRS: PJ_TYPE = 10;
1099#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1100pub const PJ_TYPE_PJ_TYPE_GEOGRAPHIC_CRS: PJ_TYPE = 11;
1101#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1102pub const PJ_TYPE_PJ_TYPE_GEOGRAPHIC_2D_CRS: PJ_TYPE = 12;
1103#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1104pub const PJ_TYPE_PJ_TYPE_GEOGRAPHIC_3D_CRS: PJ_TYPE = 13;
1105#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1106pub const PJ_TYPE_PJ_TYPE_VERTICAL_CRS: PJ_TYPE = 14;
1107#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1108pub const PJ_TYPE_PJ_TYPE_PROJECTED_CRS: PJ_TYPE = 15;
1109#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1110pub const PJ_TYPE_PJ_TYPE_COMPOUND_CRS: PJ_TYPE = 16;
1111#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1112pub const PJ_TYPE_PJ_TYPE_TEMPORAL_CRS: PJ_TYPE = 17;
1113#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1114pub const PJ_TYPE_PJ_TYPE_ENGINEERING_CRS: PJ_TYPE = 18;
1115#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1116pub const PJ_TYPE_PJ_TYPE_BOUND_CRS: PJ_TYPE = 19;
1117#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1118pub const PJ_TYPE_PJ_TYPE_OTHER_CRS: PJ_TYPE = 20;
1119#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1120pub const PJ_TYPE_PJ_TYPE_CONVERSION: PJ_TYPE = 21;
1121#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1122pub const PJ_TYPE_PJ_TYPE_TRANSFORMATION: PJ_TYPE = 22;
1123#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1124pub const PJ_TYPE_PJ_TYPE_CONCATENATED_OPERATION: PJ_TYPE = 23;
1125#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1126pub const PJ_TYPE_PJ_TYPE_OTHER_COORDINATE_OPERATION: PJ_TYPE = 24;
1127#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1128pub const PJ_TYPE_PJ_TYPE_TEMPORAL_DATUM: PJ_TYPE = 25;
1129#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1130pub const PJ_TYPE_PJ_TYPE_ENGINEERING_DATUM: PJ_TYPE = 26;
1131#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1132pub const PJ_TYPE_PJ_TYPE_PARAMETRIC_DATUM: PJ_TYPE = 27;
1133#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1134pub const PJ_TYPE_PJ_TYPE_DERIVED_PROJECTED_CRS: PJ_TYPE = 28;
1135#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1136pub const PJ_TYPE_PJ_TYPE_COORDINATE_METADATA: PJ_TYPE = 29;
1137#[doc = " \\brief Object type."]
1138pub type PJ_TYPE = ::std::os::raw::c_uint;
1139#[doc = " All properties are identical."]
1140pub const PJ_COMPARISON_CRITERION_PJ_COMP_STRICT: PJ_COMPARISON_CRITERION = 0;
1141#[doc = " The objects are equivalent for the purpose of coordinate\n operations. They can differ by the name of their objects,\n identifiers, other metadata.\n Parameters may be expressed in different units, provided that the\n value is (with some tolerance) the same once expressed in a\n common unit."]
1142pub const PJ_COMPARISON_CRITERION_PJ_COMP_EQUIVALENT: PJ_COMPARISON_CRITERION = 1;
1143#[doc = " Same as EQUIVALENT, relaxed with an exception that the axis order\n of the base CRS of a DerivedCRS/ProjectedCRS or the axis order of\n a GeographicCRS is ignored. Only to be used\n with DerivedCRS/ProjectedCRS/GeographicCRS"]
1144pub const PJ_COMPARISON_CRITERION_PJ_COMP_EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS:
1145 PJ_COMPARISON_CRITERION = 2;
1146#[doc = " Comparison criterion."]
1147pub type PJ_COMPARISON_CRITERION = ::std::os::raw::c_uint;
1148#[doc = " cf osgeo::proj::io::WKTFormatter::Convention::WKT2"]
1149pub const PJ_WKT_TYPE_PJ_WKT2_2015: PJ_WKT_TYPE = 0;
1150#[doc = " cf osgeo::proj::io::WKTFormatter::Convention::WKT2_SIMPLIFIED"]
1151pub const PJ_WKT_TYPE_PJ_WKT2_2015_SIMPLIFIED: PJ_WKT_TYPE = 1;
1152#[doc = " cf osgeo::proj::io::WKTFormatter::Convention::WKT2_2019"]
1153pub const PJ_WKT_TYPE_PJ_WKT2_2019: PJ_WKT_TYPE = 2;
1154#[doc = " Deprecated alias for PJ_WKT2_2019"]
1155pub const PJ_WKT_TYPE_PJ_WKT2_2018: PJ_WKT_TYPE = 2;
1156#[doc = " cf osgeo::proj::io::WKTFormatter::Convention::WKT2_2019_SIMPLIFIED"]
1157pub const PJ_WKT_TYPE_PJ_WKT2_2019_SIMPLIFIED: PJ_WKT_TYPE = 3;
1158#[doc = " Deprecated alias for PJ_WKT2_2019"]
1159pub const PJ_WKT_TYPE_PJ_WKT2_2018_SIMPLIFIED: PJ_WKT_TYPE = 3;
1160#[doc = " cf osgeo::proj::io::WKTFormatter::Convention::WKT1_GDAL"]
1161pub const PJ_WKT_TYPE_PJ_WKT1_GDAL: PJ_WKT_TYPE = 4;
1162#[doc = " cf osgeo::proj::io::WKTFormatter::Convention::WKT1_ESRI"]
1163pub const PJ_WKT_TYPE_PJ_WKT1_ESRI: PJ_WKT_TYPE = 5;
1164#[doc = " \\brief WKT version."]
1165pub type PJ_WKT_TYPE = ::std::os::raw::c_uint;
1166#[doc = " Ignore CRS extent"]
1167pub const PROJ_CRS_EXTENT_USE_PJ_CRS_EXTENT_NONE: PROJ_CRS_EXTENT_USE = 0;
1168#[doc = " Test coordinate operation extent against both CRS extent."]
1169pub const PROJ_CRS_EXTENT_USE_PJ_CRS_EXTENT_BOTH: PROJ_CRS_EXTENT_USE = 1;
1170#[doc = " Test coordinate operation extent against the intersection of both\nCRS extent."]
1171pub const PROJ_CRS_EXTENT_USE_PJ_CRS_EXTENT_INTERSECTION: PROJ_CRS_EXTENT_USE = 2;
1172#[doc = " Test coordinate operation against the smallest of both CRS extent."]
1173pub const PROJ_CRS_EXTENT_USE_PJ_CRS_EXTENT_SMALLEST: PROJ_CRS_EXTENT_USE = 3;
1174#[doc = " Specify how source and target CRS extent should be used to restrict\n candidate operations (only taken into account if no explicit area of\n interest is specified."]
1175pub type PROJ_CRS_EXTENT_USE = ::std::os::raw::c_uint;
1176#[doc = " Grid availability is only used for sorting results. Operations\n where some grids are missing will be sorted last."]
1177pub const PROJ_GRID_AVAILABILITY_USE_PROJ_GRID_AVAILABILITY_USED_FOR_SORTING:
1178 PROJ_GRID_AVAILABILITY_USE = 0;
1179#[doc = " Completely discard an operation if a required grid is missing."]
1180pub const PROJ_GRID_AVAILABILITY_USE_PROJ_GRID_AVAILABILITY_DISCARD_OPERATION_IF_MISSING_GRID:
1181 PROJ_GRID_AVAILABILITY_USE = 1;
1182#[doc = " Ignore grid availability at all. Results will be presented as if\n all grids were available."]
1183pub const PROJ_GRID_AVAILABILITY_USE_PROJ_GRID_AVAILABILITY_IGNORED: PROJ_GRID_AVAILABILITY_USE = 2;
1184#[doc = " Results will be presented as if grids known to PROJ (that is\n registered in the grid_alternatives table of its database) were\n available. Used typically when networking is enabled."]
1185pub const PROJ_GRID_AVAILABILITY_USE_PROJ_GRID_AVAILABILITY_KNOWN_AVAILABLE:
1186 PROJ_GRID_AVAILABILITY_USE = 3;
1187#[doc = " Describe how grid availability is used."]
1188pub type PROJ_GRID_AVAILABILITY_USE = ::std::os::raw::c_uint;
1189#[doc = " cf osgeo::proj::io::PROJStringFormatter::Convention::PROJ_5"]
1190pub const PJ_PROJ_STRING_TYPE_PJ_PROJ_5: PJ_PROJ_STRING_TYPE = 0;
1191#[doc = " cf osgeo::proj::io::PROJStringFormatter::Convention::PROJ_4"]
1192pub const PJ_PROJ_STRING_TYPE_PJ_PROJ_4: PJ_PROJ_STRING_TYPE = 1;
1193#[doc = " \\brief PROJ string version."]
1194pub type PJ_PROJ_STRING_TYPE = ::std::os::raw::c_uint;
1195#[doc = " The area of validity of transforms should strictly contain the\n are of interest."]
1196pub const PROJ_SPATIAL_CRITERION_PROJ_SPATIAL_CRITERION_STRICT_CONTAINMENT: PROJ_SPATIAL_CRITERION =
1197 0;
1198#[doc = " The area of validity of transforms should at least intersect the\n area of interest."]
1199pub const PROJ_SPATIAL_CRITERION_PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION:
1200 PROJ_SPATIAL_CRITERION = 1;
1201#[doc = " Spatial criterion to restrict candidate operations."]
1202pub type PROJ_SPATIAL_CRITERION = ::std::os::raw::c_uint;
1203#[doc = " Always search for intermediate CRS."]
1204pub const PROJ_INTERMEDIATE_CRS_USE_PROJ_INTERMEDIATE_CRS_USE_ALWAYS: PROJ_INTERMEDIATE_CRS_USE = 0;
1205#[doc = " Only attempt looking for intermediate CRS if there is no direct\n transformation available."]
1206pub const PROJ_INTERMEDIATE_CRS_USE_PROJ_INTERMEDIATE_CRS_USE_IF_NO_DIRECT_TRANSFORMATION:
1207 PROJ_INTERMEDIATE_CRS_USE = 1;
1208#[doc = " Only attempt looking for intermediate CRS if there is no direct\n transformation available."]
1209pub const PROJ_INTERMEDIATE_CRS_USE_PROJ_INTERMEDIATE_CRS_USE_NEVER: PROJ_INTERMEDIATE_CRS_USE = 2;
1210#[doc = " Describe if and how intermediate CRS should be used"]
1211pub type PROJ_INTERMEDIATE_CRS_USE = ::std::os::raw::c_uint;
1212pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_UNKNOWN: PJ_COORDINATE_SYSTEM_TYPE = 0;
1213pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_CARTESIAN: PJ_COORDINATE_SYSTEM_TYPE = 1;
1214pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_ELLIPSOIDAL: PJ_COORDINATE_SYSTEM_TYPE = 2;
1215pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_VERTICAL: PJ_COORDINATE_SYSTEM_TYPE = 3;
1216pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_SPHERICAL: PJ_COORDINATE_SYSTEM_TYPE = 4;
1217pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_ORDINAL: PJ_COORDINATE_SYSTEM_TYPE = 5;
1218pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_PARAMETRIC: PJ_COORDINATE_SYSTEM_TYPE = 6;
1219pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_DATETIMETEMPORAL: PJ_COORDINATE_SYSTEM_TYPE = 7;
1220pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_TEMPORALCOUNT: PJ_COORDINATE_SYSTEM_TYPE = 8;
1221pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_TEMPORALMEASURE: PJ_COORDINATE_SYSTEM_TYPE = 9;
1222#[doc = " Type of coordinate system."]
1223pub type PJ_COORDINATE_SYSTEM_TYPE = ::std::os::raw::c_uint;
1224#[doc = " \\brief Structure given overall description of a CRS.\n\n This structure may grow over time, and should not be directly allocated by\n client code."]
1225#[repr(C)]
1226#[derive(Debug, Copy, Clone)]
1227pub struct PROJ_CRS_INFO {
1228 #[doc = " Authority name."]
1229 pub auth_name: *mut ::std::os::raw::c_char,
1230 #[doc = " Object code."]
1231 pub code: *mut ::std::os::raw::c_char,
1232 #[doc = " Object name."]
1233 pub name: *mut ::std::os::raw::c_char,
1234 #[doc = " Object type."]
1235 pub type_: PJ_TYPE,
1236 #[doc = " Whether the object is deprecated"]
1237 pub deprecated: ::std::os::raw::c_int,
1238 #[doc = " Whereas the west_lon_degree, south_lat_degree, east_lon_degree and\n north_lat_degree fields are valid."]
1239 pub bbox_valid: ::std::os::raw::c_int,
1240 #[doc = " Western-most longitude of the area of use, in degrees."]
1241 pub west_lon_degree: f64,
1242 #[doc = " Southern-most latitude of the area of use, in degrees."]
1243 pub south_lat_degree: f64,
1244 #[doc = " Eastern-most longitude of the area of use, in degrees."]
1245 pub east_lon_degree: f64,
1246 #[doc = " Northern-most latitude of the area of use, in degrees."]
1247 pub north_lat_degree: f64,
1248 #[doc = " Name of the area of use."]
1249 pub area_name: *mut ::std::os::raw::c_char,
1250 #[doc = " Name of the projection method for a projected CRS. Might be NULL even\nfor projected CRS in some cases."]
1251 pub projection_method_name: *mut ::std::os::raw::c_char,
1252 #[doc = " Name of the celestial body of the CRS (e.g. \"Earth\").\n @since 8.1"]
1253 pub celestial_body_name: *mut ::std::os::raw::c_char,
1254}
1255#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1256const _: () = {
1257 ["Size of PROJ_CRS_INFO"][::std::mem::size_of::<PROJ_CRS_INFO>() - 96usize];
1258 ["Alignment of PROJ_CRS_INFO"][::std::mem::align_of::<PROJ_CRS_INFO>() - 8usize];
1259 ["Offset of field: PROJ_CRS_INFO::auth_name"]
1260 [::std::mem::offset_of!(PROJ_CRS_INFO, auth_name) - 0usize];
1261 ["Offset of field: PROJ_CRS_INFO::code"][::std::mem::offset_of!(PROJ_CRS_INFO, code) - 8usize];
1262 ["Offset of field: PROJ_CRS_INFO::name"][::std::mem::offset_of!(PROJ_CRS_INFO, name) - 16usize];
1263 ["Offset of field: PROJ_CRS_INFO::type_"]
1264 [::std::mem::offset_of!(PROJ_CRS_INFO, type_) - 24usize];
1265 ["Offset of field: PROJ_CRS_INFO::deprecated"]
1266 [::std::mem::offset_of!(PROJ_CRS_INFO, deprecated) - 28usize];
1267 ["Offset of field: PROJ_CRS_INFO::bbox_valid"]
1268 [::std::mem::offset_of!(PROJ_CRS_INFO, bbox_valid) - 32usize];
1269 ["Offset of field: PROJ_CRS_INFO::west_lon_degree"]
1270 [::std::mem::offset_of!(PROJ_CRS_INFO, west_lon_degree) - 40usize];
1271 ["Offset of field: PROJ_CRS_INFO::south_lat_degree"]
1272 [::std::mem::offset_of!(PROJ_CRS_INFO, south_lat_degree) - 48usize];
1273 ["Offset of field: PROJ_CRS_INFO::east_lon_degree"]
1274 [::std::mem::offset_of!(PROJ_CRS_INFO, east_lon_degree) - 56usize];
1275 ["Offset of field: PROJ_CRS_INFO::north_lat_degree"]
1276 [::std::mem::offset_of!(PROJ_CRS_INFO, north_lat_degree) - 64usize];
1277 ["Offset of field: PROJ_CRS_INFO::area_name"]
1278 [::std::mem::offset_of!(PROJ_CRS_INFO, area_name) - 72usize];
1279 ["Offset of field: PROJ_CRS_INFO::projection_method_name"]
1280 [::std::mem::offset_of!(PROJ_CRS_INFO, projection_method_name) - 80usize];
1281 ["Offset of field: PROJ_CRS_INFO::celestial_body_name"]
1282 [::std::mem::offset_of!(PROJ_CRS_INFO, celestial_body_name) - 88usize];
1283};
1284#[doc = " \\brief Structure describing optional parameters for proj_get_crs_list();\n\n This structure may grow over time, and should not be directly allocated by\n client code."]
1285#[repr(C)]
1286#[derive(Debug, Copy, Clone)]
1287pub struct PROJ_CRS_LIST_PARAMETERS {
1288 #[doc = " Array of allowed object types. Should be NULL if all types are allowed"]
1289 pub types: *const PJ_TYPE,
1290 #[doc = " Size of types. Should be 0 if all types are allowed"]
1291 pub typesCount: usize,
1292 #[doc = " If TRUE and bbox_valid == TRUE, then only CRS whose area of use\n entirely contains the specified bounding box will be returned.\n If FALSE and bbox_valid == TRUE, then only CRS whose area of use\n intersects the specified bounding box will be returned."]
1293 pub crs_area_of_use_contains_bbox: ::std::os::raw::c_int,
1294 #[doc = " To set to TRUE so that west_lon_degree, south_lat_degree,\n east_lon_degree and north_lat_degree fields are taken into account."]
1295 pub bbox_valid: ::std::os::raw::c_int,
1296 #[doc = " Western-most longitude of the area of use, in degrees."]
1297 pub west_lon_degree: f64,
1298 #[doc = " Southern-most latitude of the area of use, in degrees."]
1299 pub south_lat_degree: f64,
1300 #[doc = " Eastern-most longitude of the area of use, in degrees."]
1301 pub east_lon_degree: f64,
1302 #[doc = " Northern-most latitude of the area of use, in degrees."]
1303 pub north_lat_degree: f64,
1304 #[doc = " Whether deprecated objects are allowed. Default to FALSE."]
1305 pub allow_deprecated: ::std::os::raw::c_int,
1306 #[doc = " Celestial body of the CRS (e.g. \"Earth\"). The default value, NULL,\n means no restriction\n @since 8.1"]
1307 pub celestial_body_name: *const ::std::os::raw::c_char,
1308}
1309#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1310const _: () = {
1311 ["Size of PROJ_CRS_LIST_PARAMETERS"]
1312 [::std::mem::size_of::<PROJ_CRS_LIST_PARAMETERS>() - 72usize];
1313 ["Alignment of PROJ_CRS_LIST_PARAMETERS"]
1314 [::std::mem::align_of::<PROJ_CRS_LIST_PARAMETERS>() - 8usize];
1315 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::types"]
1316 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, types) - 0usize];
1317 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::typesCount"]
1318 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, typesCount) - 8usize];
1319 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::crs_area_of_use_contains_bbox"]
1320 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, crs_area_of_use_contains_bbox) - 16usize];
1321 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::bbox_valid"]
1322 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, bbox_valid) - 20usize];
1323 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::west_lon_degree"]
1324 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, west_lon_degree) - 24usize];
1325 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::south_lat_degree"]
1326 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, south_lat_degree) - 32usize];
1327 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::east_lon_degree"]
1328 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, east_lon_degree) - 40usize];
1329 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::north_lat_degree"]
1330 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, north_lat_degree) - 48usize];
1331 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::allow_deprecated"]
1332 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, allow_deprecated) - 56usize];
1333 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::celestial_body_name"]
1334 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, celestial_body_name) - 64usize];
1335};
1336#[doc = " \\brief Structure given description of a unit.\n\n This structure may grow over time, and should not be directly allocated by\n client code.\n @since 7.1"]
1337#[repr(C)]
1338#[derive(Debug, Copy, Clone)]
1339pub struct PROJ_UNIT_INFO {
1340 #[doc = " Authority name."]
1341 pub auth_name: *mut ::std::os::raw::c_char,
1342 #[doc = " Object code."]
1343 pub code: *mut ::std::os::raw::c_char,
1344 #[doc = " Object name. For example \"metre\", \"US survey foot\", etc."]
1345 pub name: *mut ::std::os::raw::c_char,
1346 #[doc = " Category of the unit: one of \"linear\", \"linear_per_time\", \"angular\",\n \"angular_per_time\", \"scale\", \"scale_per_time\" or \"time\""]
1347 pub category: *mut ::std::os::raw::c_char,
1348 #[doc = " Conversion factor to apply to transform from that unit to the\n corresponding SI unit (metre for \"linear\", radian for \"angular\", etc.).\n It might be 0 in some cases to indicate no known conversion factor."]
1349 pub conv_factor: f64,
1350 #[doc = " PROJ short name, like \"m\", \"ft\", \"us-ft\", etc... Might be NULL"]
1351 pub proj_short_name: *mut ::std::os::raw::c_char,
1352 #[doc = " Whether the object is deprecated"]
1353 pub deprecated: ::std::os::raw::c_int,
1354}
1355#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1356const _: () = {
1357 ["Size of PROJ_UNIT_INFO"][::std::mem::size_of::<PROJ_UNIT_INFO>() - 56usize];
1358 ["Alignment of PROJ_UNIT_INFO"][::std::mem::align_of::<PROJ_UNIT_INFO>() - 8usize];
1359 ["Offset of field: PROJ_UNIT_INFO::auth_name"]
1360 [::std::mem::offset_of!(PROJ_UNIT_INFO, auth_name) - 0usize];
1361 ["Offset of field: PROJ_UNIT_INFO::code"]
1362 [::std::mem::offset_of!(PROJ_UNIT_INFO, code) - 8usize];
1363 ["Offset of field: PROJ_UNIT_INFO::name"]
1364 [::std::mem::offset_of!(PROJ_UNIT_INFO, name) - 16usize];
1365 ["Offset of field: PROJ_UNIT_INFO::category"]
1366 [::std::mem::offset_of!(PROJ_UNIT_INFO, category) - 24usize];
1367 ["Offset of field: PROJ_UNIT_INFO::conv_factor"]
1368 [::std::mem::offset_of!(PROJ_UNIT_INFO, conv_factor) - 32usize];
1369 ["Offset of field: PROJ_UNIT_INFO::proj_short_name"]
1370 [::std::mem::offset_of!(PROJ_UNIT_INFO, proj_short_name) - 40usize];
1371 ["Offset of field: PROJ_UNIT_INFO::deprecated"]
1372 [::std::mem::offset_of!(PROJ_UNIT_INFO, deprecated) - 48usize];
1373};
1374#[doc = " \\brief Structure given description of a celestial body.\n\n This structure may grow over time, and should not be directly allocated by\n client code.\n @since 8.1"]
1375#[repr(C)]
1376#[derive(Debug, Copy, Clone)]
1377pub struct PROJ_CELESTIAL_BODY_INFO {
1378 #[doc = " Authority name."]
1379 pub auth_name: *mut ::std::os::raw::c_char,
1380 #[doc = " Object name. For example \"Earth\""]
1381 pub name: *mut ::std::os::raw::c_char,
1382}
1383#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1384const _: () = {
1385 ["Size of PROJ_CELESTIAL_BODY_INFO"]
1386 [::std::mem::size_of::<PROJ_CELESTIAL_BODY_INFO>() - 16usize];
1387 ["Alignment of PROJ_CELESTIAL_BODY_INFO"]
1388 [::std::mem::align_of::<PROJ_CELESTIAL_BODY_INFO>() - 8usize];
1389 ["Offset of field: PROJ_CELESTIAL_BODY_INFO::auth_name"]
1390 [::std::mem::offset_of!(PROJ_CELESTIAL_BODY_INFO, auth_name) - 0usize];
1391 ["Offset of field: PROJ_CELESTIAL_BODY_INFO::name"]
1392 [::std::mem::offset_of!(PROJ_CELESTIAL_BODY_INFO, name) - 8usize];
1393};
1394#[repr(C)]
1395#[derive(Debug, Copy, Clone)]
1396pub struct PJ_OBJ_LIST {
1397 _unused: [u8; 0],
1398}
1399unsafe extern "C" {
1400 #[doc = " @endcond"]
1401 pub fn proj_string_list_destroy(list: PROJ_STRING_LIST);
1402}
1403unsafe extern "C" {
1404 pub fn proj_context_set_autoclose_database(
1405 ctx: *mut PJ_CONTEXT,
1406 autoclose: ::std::os::raw::c_int,
1407 );
1408}
1409unsafe extern "C" {
1410 pub fn proj_context_set_database_path(
1411 ctx: *mut PJ_CONTEXT,
1412 dbPath: *const ::std::os::raw::c_char,
1413 auxDbPaths: *const *const ::std::os::raw::c_char,
1414 options: *const *const ::std::os::raw::c_char,
1415 ) -> ::std::os::raw::c_int;
1416}
1417unsafe extern "C" {
1418 pub fn proj_context_get_database_path(ctx: *mut PJ_CONTEXT) -> *const ::std::os::raw::c_char;
1419}
1420unsafe extern "C" {
1421 pub fn proj_context_get_database_metadata(
1422 ctx: *mut PJ_CONTEXT,
1423 key: *const ::std::os::raw::c_char,
1424 ) -> *const ::std::os::raw::c_char;
1425}
1426unsafe extern "C" {
1427 pub fn proj_context_get_database_structure(
1428 ctx: *mut PJ_CONTEXT,
1429 options: *const *const ::std::os::raw::c_char,
1430 ) -> PROJ_STRING_LIST;
1431}
1432unsafe extern "C" {
1433 pub fn proj_context_guess_wkt_dialect(
1434 ctx: *mut PJ_CONTEXT,
1435 wkt: *const ::std::os::raw::c_char,
1436 ) -> PJ_GUESSED_WKT_DIALECT;
1437}
1438unsafe extern "C" {
1439 pub fn proj_create_from_wkt(
1440 ctx: *mut PJ_CONTEXT,
1441 wkt: *const ::std::os::raw::c_char,
1442 options: *const *const ::std::os::raw::c_char,
1443 out_warnings: *mut PROJ_STRING_LIST,
1444 out_grammar_errors: *mut PROJ_STRING_LIST,
1445 ) -> *mut PJ;
1446}
1447unsafe extern "C" {
1448 pub fn proj_create_from_database(
1449 ctx: *mut PJ_CONTEXT,
1450 auth_name: *const ::std::os::raw::c_char,
1451 code: *const ::std::os::raw::c_char,
1452 category: PJ_CATEGORY,
1453 usePROJAlternativeGridNames: ::std::os::raw::c_int,
1454 options: *const *const ::std::os::raw::c_char,
1455 ) -> *mut PJ;
1456}
1457unsafe extern "C" {
1458 pub fn proj_uom_get_info_from_database(
1459 ctx: *mut PJ_CONTEXT,
1460 auth_name: *const ::std::os::raw::c_char,
1461 code: *const ::std::os::raw::c_char,
1462 out_name: *mut *const ::std::os::raw::c_char,
1463 out_conv_factor: *mut f64,
1464 out_category: *mut *const ::std::os::raw::c_char,
1465 ) -> ::std::os::raw::c_int;
1466}
1467unsafe extern "C" {
1468 pub fn proj_grid_get_info_from_database(
1469 ctx: *mut PJ_CONTEXT,
1470 grid_name: *const ::std::os::raw::c_char,
1471 out_full_name: *mut *const ::std::os::raw::c_char,
1472 out_package_name: *mut *const ::std::os::raw::c_char,
1473 out_url: *mut *const ::std::os::raw::c_char,
1474 out_direct_download: *mut ::std::os::raw::c_int,
1475 out_open_license: *mut ::std::os::raw::c_int,
1476 out_available: *mut ::std::os::raw::c_int,
1477 ) -> ::std::os::raw::c_int;
1478}
1479unsafe extern "C" {
1480 pub fn proj_clone(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
1481}
1482unsafe extern "C" {
1483 pub fn proj_create_from_name(
1484 ctx: *mut PJ_CONTEXT,
1485 auth_name: *const ::std::os::raw::c_char,
1486 searchedName: *const ::std::os::raw::c_char,
1487 types: *const PJ_TYPE,
1488 typesCount: usize,
1489 approximateMatch: ::std::os::raw::c_int,
1490 limitResultCount: usize,
1491 options: *const *const ::std::os::raw::c_char,
1492 ) -> *mut PJ_OBJ_LIST;
1493}
1494unsafe extern "C" {
1495 pub fn proj_get_type(obj: *const PJ) -> PJ_TYPE;
1496}
1497unsafe extern "C" {
1498 pub fn proj_is_deprecated(obj: *const PJ) -> ::std::os::raw::c_int;
1499}
1500unsafe extern "C" {
1501 pub fn proj_get_non_deprecated(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ_OBJ_LIST;
1502}
1503unsafe extern "C" {
1504 pub fn proj_is_equivalent_to(
1505 obj: *const PJ,
1506 other: *const PJ,
1507 criterion: PJ_COMPARISON_CRITERION,
1508 ) -> ::std::os::raw::c_int;
1509}
1510unsafe extern "C" {
1511 pub fn proj_is_equivalent_to_with_ctx(
1512 ctx: *mut PJ_CONTEXT,
1513 obj: *const PJ,
1514 other: *const PJ,
1515 criterion: PJ_COMPARISON_CRITERION,
1516 ) -> ::std::os::raw::c_int;
1517}
1518unsafe extern "C" {
1519 pub fn proj_is_crs(obj: *const PJ) -> ::std::os::raw::c_int;
1520}
1521unsafe extern "C" {
1522 pub fn proj_get_name(obj: *const PJ) -> *const ::std::os::raw::c_char;
1523}
1524unsafe extern "C" {
1525 pub fn proj_get_id_auth_name(
1526 obj: *const PJ,
1527 index: ::std::os::raw::c_int,
1528 ) -> *const ::std::os::raw::c_char;
1529}
1530unsafe extern "C" {
1531 pub fn proj_get_id_code(
1532 obj: *const PJ,
1533 index: ::std::os::raw::c_int,
1534 ) -> *const ::std::os::raw::c_char;
1535}
1536unsafe extern "C" {
1537 pub fn proj_get_remarks(obj: *const PJ) -> *const ::std::os::raw::c_char;
1538}
1539unsafe extern "C" {
1540 pub fn proj_get_domain_count(obj: *const PJ) -> ::std::os::raw::c_int;
1541}
1542unsafe extern "C" {
1543 pub fn proj_get_scope(obj: *const PJ) -> *const ::std::os::raw::c_char;
1544}
1545unsafe extern "C" {
1546 pub fn proj_get_scope_ex(
1547 obj: *const PJ,
1548 domainIdx: ::std::os::raw::c_int,
1549 ) -> *const ::std::os::raw::c_char;
1550}
1551unsafe extern "C" {
1552 pub fn proj_get_area_of_use(
1553 ctx: *mut PJ_CONTEXT,
1554 obj: *const PJ,
1555 out_west_lon_degree: *mut f64,
1556 out_south_lat_degree: *mut f64,
1557 out_east_lon_degree: *mut f64,
1558 out_north_lat_degree: *mut f64,
1559 out_area_name: *mut *const ::std::os::raw::c_char,
1560 ) -> ::std::os::raw::c_int;
1561}
1562unsafe extern "C" {
1563 pub fn proj_get_area_of_use_ex(
1564 ctx: *mut PJ_CONTEXT,
1565 obj: *const PJ,
1566 domainIdx: ::std::os::raw::c_int,
1567 out_west_lon_degree: *mut f64,
1568 out_south_lat_degree: *mut f64,
1569 out_east_lon_degree: *mut f64,
1570 out_north_lat_degree: *mut f64,
1571 out_area_name: *mut *const ::std::os::raw::c_char,
1572 ) -> ::std::os::raw::c_int;
1573}
1574unsafe extern "C" {
1575 pub fn proj_as_wkt(
1576 ctx: *mut PJ_CONTEXT,
1577 obj: *const PJ,
1578 type_: PJ_WKT_TYPE,
1579 options: *const *const ::std::os::raw::c_char,
1580 ) -> *const ::std::os::raw::c_char;
1581}
1582unsafe extern "C" {
1583 pub fn proj_as_proj_string(
1584 ctx: *mut PJ_CONTEXT,
1585 obj: *const PJ,
1586 type_: PJ_PROJ_STRING_TYPE,
1587 options: *const *const ::std::os::raw::c_char,
1588 ) -> *const ::std::os::raw::c_char;
1589}
1590unsafe extern "C" {
1591 pub fn proj_as_projjson(
1592 ctx: *mut PJ_CONTEXT,
1593 obj: *const PJ,
1594 options: *const *const ::std::os::raw::c_char,
1595 ) -> *const ::std::os::raw::c_char;
1596}
1597unsafe extern "C" {
1598 pub fn proj_get_source_crs(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
1599}
1600unsafe extern "C" {
1601 pub fn proj_get_target_crs(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
1602}
1603unsafe extern "C" {
1604 pub fn proj_identify(
1605 ctx: *mut PJ_CONTEXT,
1606 obj: *const PJ,
1607 auth_name: *const ::std::os::raw::c_char,
1608 options: *const *const ::std::os::raw::c_char,
1609 out_confidence: *mut *mut ::std::os::raw::c_int,
1610 ) -> *mut PJ_OBJ_LIST;
1611}
1612unsafe extern "C" {
1613 pub fn proj_get_geoid_models_from_database(
1614 ctx: *mut PJ_CONTEXT,
1615 auth_name: *const ::std::os::raw::c_char,
1616 code: *const ::std::os::raw::c_char,
1617 options: *const *const ::std::os::raw::c_char,
1618 ) -> PROJ_STRING_LIST;
1619}
1620unsafe extern "C" {
1621 pub fn proj_int_list_destroy(list: *mut ::std::os::raw::c_int);
1622}
1623unsafe extern "C" {
1624 pub fn proj_get_authorities_from_database(ctx: *mut PJ_CONTEXT) -> PROJ_STRING_LIST;
1625}
1626unsafe extern "C" {
1627 pub fn proj_get_codes_from_database(
1628 ctx: *mut PJ_CONTEXT,
1629 auth_name: *const ::std::os::raw::c_char,
1630 type_: PJ_TYPE,
1631 allow_deprecated: ::std::os::raw::c_int,
1632 ) -> PROJ_STRING_LIST;
1633}
1634unsafe extern "C" {
1635 pub fn proj_get_celestial_body_list_from_database(
1636 ctx: *mut PJ_CONTEXT,
1637 auth_name: *const ::std::os::raw::c_char,
1638 out_result_count: *mut ::std::os::raw::c_int,
1639 ) -> *mut *mut PROJ_CELESTIAL_BODY_INFO;
1640}
1641unsafe extern "C" {
1642 pub fn proj_celestial_body_list_destroy(list: *mut *mut PROJ_CELESTIAL_BODY_INFO);
1643}
1644unsafe extern "C" {
1645 pub fn proj_get_crs_list_parameters_create() -> *mut PROJ_CRS_LIST_PARAMETERS;
1646}
1647unsafe extern "C" {
1648 pub fn proj_get_crs_list_parameters_destroy(params: *mut PROJ_CRS_LIST_PARAMETERS);
1649}
1650unsafe extern "C" {
1651 pub fn proj_get_crs_info_list_from_database(
1652 ctx: *mut PJ_CONTEXT,
1653 auth_name: *const ::std::os::raw::c_char,
1654 params: *const PROJ_CRS_LIST_PARAMETERS,
1655 out_result_count: *mut ::std::os::raw::c_int,
1656 ) -> *mut *mut PROJ_CRS_INFO;
1657}
1658unsafe extern "C" {
1659 pub fn proj_crs_info_list_destroy(list: *mut *mut PROJ_CRS_INFO);
1660}
1661unsafe extern "C" {
1662 pub fn proj_get_units_from_database(
1663 ctx: *mut PJ_CONTEXT,
1664 auth_name: *const ::std::os::raw::c_char,
1665 category: *const ::std::os::raw::c_char,
1666 allow_deprecated: ::std::os::raw::c_int,
1667 out_result_count: *mut ::std::os::raw::c_int,
1668 ) -> *mut *mut PROJ_UNIT_INFO;
1669}
1670unsafe extern "C" {
1671 pub fn proj_unit_list_destroy(list: *mut *mut PROJ_UNIT_INFO);
1672}
1673#[repr(C)]
1674#[derive(Debug, Copy, Clone)]
1675pub struct PJ_INSERT_SESSION {
1676 _unused: [u8; 0],
1677}
1678unsafe extern "C" {
1679 #[doc = " @endcond"]
1680 pub fn proj_insert_object_session_create(ctx: *mut PJ_CONTEXT) -> *mut PJ_INSERT_SESSION;
1681}
1682unsafe extern "C" {
1683 pub fn proj_insert_object_session_destroy(
1684 ctx: *mut PJ_CONTEXT,
1685 session: *mut PJ_INSERT_SESSION,
1686 );
1687}
1688unsafe extern "C" {
1689 pub fn proj_get_insert_statements(
1690 ctx: *mut PJ_CONTEXT,
1691 session: *mut PJ_INSERT_SESSION,
1692 object: *const PJ,
1693 authority: *const ::std::os::raw::c_char,
1694 code: *const ::std::os::raw::c_char,
1695 numeric_codes: ::std::os::raw::c_int,
1696 allowed_authorities: *const *const ::std::os::raw::c_char,
1697 options: *const *const ::std::os::raw::c_char,
1698 ) -> PROJ_STRING_LIST;
1699}
1700unsafe extern "C" {
1701 pub fn proj_suggests_code_for(
1702 ctx: *mut PJ_CONTEXT,
1703 object: *const PJ,
1704 authority: *const ::std::os::raw::c_char,
1705 numeric_code: ::std::os::raw::c_int,
1706 options: *const *const ::std::os::raw::c_char,
1707 ) -> *mut ::std::os::raw::c_char;
1708}
1709unsafe extern "C" {
1710 pub fn proj_string_destroy(str_: *mut ::std::os::raw::c_char);
1711}
1712#[repr(C)]
1713#[derive(Debug, Copy, Clone)]
1714pub struct PJ_OPERATION_FACTORY_CONTEXT {
1715 _unused: [u8; 0],
1716}
1717unsafe extern "C" {
1718 #[doc = " @endcond"]
1719 pub fn proj_create_operation_factory_context(
1720 ctx: *mut PJ_CONTEXT,
1721 authority: *const ::std::os::raw::c_char,
1722 ) -> *mut PJ_OPERATION_FACTORY_CONTEXT;
1723}
1724unsafe extern "C" {
1725 pub fn proj_operation_factory_context_destroy(ctx: *mut PJ_OPERATION_FACTORY_CONTEXT);
1726}
1727unsafe extern "C" {
1728 pub fn proj_operation_factory_context_set_desired_accuracy(
1729 ctx: *mut PJ_CONTEXT,
1730 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1731 accuracy: f64,
1732 );
1733}
1734unsafe extern "C" {
1735 pub fn proj_operation_factory_context_set_area_of_interest(
1736 ctx: *mut PJ_CONTEXT,
1737 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1738 west_lon_degree: f64,
1739 south_lat_degree: f64,
1740 east_lon_degree: f64,
1741 north_lat_degree: f64,
1742 );
1743}
1744unsafe extern "C" {
1745 pub fn proj_operation_factory_context_set_area_of_interest_name(
1746 ctx: *mut PJ_CONTEXT,
1747 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1748 area_name: *const ::std::os::raw::c_char,
1749 );
1750}
1751unsafe extern "C" {
1752 pub fn proj_operation_factory_context_set_crs_extent_use(
1753 ctx: *mut PJ_CONTEXT,
1754 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1755 use_: PROJ_CRS_EXTENT_USE,
1756 );
1757}
1758unsafe extern "C" {
1759 pub fn proj_operation_factory_context_set_spatial_criterion(
1760 ctx: *mut PJ_CONTEXT,
1761 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1762 criterion: PROJ_SPATIAL_CRITERION,
1763 );
1764}
1765unsafe extern "C" {
1766 pub fn proj_operation_factory_context_set_grid_availability_use(
1767 ctx: *mut PJ_CONTEXT,
1768 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1769 use_: PROJ_GRID_AVAILABILITY_USE,
1770 );
1771}
1772unsafe extern "C" {
1773 pub fn proj_operation_factory_context_set_use_proj_alternative_grid_names(
1774 ctx: *mut PJ_CONTEXT,
1775 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1776 usePROJNames: ::std::os::raw::c_int,
1777 );
1778}
1779unsafe extern "C" {
1780 pub fn proj_operation_factory_context_set_allow_use_intermediate_crs(
1781 ctx: *mut PJ_CONTEXT,
1782 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1783 use_: PROJ_INTERMEDIATE_CRS_USE,
1784 );
1785}
1786unsafe extern "C" {
1787 pub fn proj_operation_factory_context_set_allowed_intermediate_crs(
1788 ctx: *mut PJ_CONTEXT,
1789 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1790 list_of_auth_name_codes: *const *const ::std::os::raw::c_char,
1791 );
1792}
1793unsafe extern "C" {
1794 pub fn proj_operation_factory_context_set_discard_superseded(
1795 ctx: *mut PJ_CONTEXT,
1796 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1797 discard: ::std::os::raw::c_int,
1798 );
1799}
1800unsafe extern "C" {
1801 pub fn proj_operation_factory_context_set_allow_ballpark_transformations(
1802 ctx: *mut PJ_CONTEXT,
1803 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1804 allow: ::std::os::raw::c_int,
1805 );
1806}
1807unsafe extern "C" {
1808 pub fn proj_create_operations(
1809 ctx: *mut PJ_CONTEXT,
1810 source_crs: *const PJ,
1811 target_crs: *const PJ,
1812 operationContext: *const PJ_OPERATION_FACTORY_CONTEXT,
1813 ) -> *mut PJ_OBJ_LIST;
1814}
1815unsafe extern "C" {
1816 pub fn proj_list_get_count(result: *const PJ_OBJ_LIST) -> ::std::os::raw::c_int;
1817}
1818unsafe extern "C" {
1819 pub fn proj_list_get(
1820 ctx: *mut PJ_CONTEXT,
1821 result: *const PJ_OBJ_LIST,
1822 index: ::std::os::raw::c_int,
1823 ) -> *mut PJ;
1824}
1825unsafe extern "C" {
1826 pub fn proj_list_destroy(result: *mut PJ_OBJ_LIST);
1827}
1828unsafe extern "C" {
1829 pub fn proj_get_suggested_operation(
1830 ctx: *mut PJ_CONTEXT,
1831 operations: *mut PJ_OBJ_LIST,
1832 direction: PJ_DIRECTION,
1833 coord: PJ_COORD,
1834 ) -> ::std::os::raw::c_int;
1835}
1836unsafe extern "C" {
1837 pub fn proj_crs_is_derived(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> ::std::os::raw::c_int;
1838}
1839unsafe extern "C" {
1840 pub fn proj_crs_get_geodetic_crs(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1841}
1842unsafe extern "C" {
1843 pub fn proj_crs_get_horizontal_datum(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1844}
1845unsafe extern "C" {
1846 pub fn proj_crs_get_sub_crs(
1847 ctx: *mut PJ_CONTEXT,
1848 crs: *const PJ,
1849 index: ::std::os::raw::c_int,
1850 ) -> *mut PJ;
1851}
1852unsafe extern "C" {
1853 pub fn proj_crs_get_datum(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1854}
1855unsafe extern "C" {
1856 pub fn proj_crs_get_datum_ensemble(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1857}
1858unsafe extern "C" {
1859 pub fn proj_crs_get_datum_forced(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1860}
1861unsafe extern "C" {
1862 pub fn proj_crs_has_point_motion_operation(
1863 ctx: *mut PJ_CONTEXT,
1864 crs: *const PJ,
1865 ) -> ::std::os::raw::c_int;
1866}
1867unsafe extern "C" {
1868 pub fn proj_datum_ensemble_get_member_count(
1869 ctx: *mut PJ_CONTEXT,
1870 datum_ensemble: *const PJ,
1871 ) -> ::std::os::raw::c_int;
1872}
1873unsafe extern "C" {
1874 pub fn proj_datum_ensemble_get_accuracy(ctx: *mut PJ_CONTEXT, datum_ensemble: *const PJ)
1875 -> f64;
1876}
1877unsafe extern "C" {
1878 pub fn proj_datum_ensemble_get_member(
1879 ctx: *mut PJ_CONTEXT,
1880 datum_ensemble: *const PJ,
1881 member_index: ::std::os::raw::c_int,
1882 ) -> *mut PJ;
1883}
1884unsafe extern "C" {
1885 pub fn proj_dynamic_datum_get_frame_reference_epoch(
1886 ctx: *mut PJ_CONTEXT,
1887 datum: *const PJ,
1888 ) -> f64;
1889}
1890unsafe extern "C" {
1891 pub fn proj_crs_get_coordinate_system(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1892}
1893unsafe extern "C" {
1894 pub fn proj_cs_get_type(ctx: *mut PJ_CONTEXT, cs: *const PJ) -> PJ_COORDINATE_SYSTEM_TYPE;
1895}
1896unsafe extern "C" {
1897 pub fn proj_cs_get_axis_count(ctx: *mut PJ_CONTEXT, cs: *const PJ) -> ::std::os::raw::c_int;
1898}
1899unsafe extern "C" {
1900 pub fn proj_cs_get_axis_info(
1901 ctx: *mut PJ_CONTEXT,
1902 cs: *const PJ,
1903 index: ::std::os::raw::c_int,
1904 out_name: *mut *const ::std::os::raw::c_char,
1905 out_abbrev: *mut *const ::std::os::raw::c_char,
1906 out_direction: *mut *const ::std::os::raw::c_char,
1907 out_unit_conv_factor: *mut f64,
1908 out_unit_name: *mut *const ::std::os::raw::c_char,
1909 out_unit_auth_name: *mut *const ::std::os::raw::c_char,
1910 out_unit_code: *mut *const ::std::os::raw::c_char,
1911 ) -> ::std::os::raw::c_int;
1912}
1913unsafe extern "C" {
1914 pub fn proj_get_ellipsoid(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
1915}
1916unsafe extern "C" {
1917 pub fn proj_ellipsoid_get_parameters(
1918 ctx: *mut PJ_CONTEXT,
1919 ellipsoid: *const PJ,
1920 out_semi_major_metre: *mut f64,
1921 out_semi_minor_metre: *mut f64,
1922 out_is_semi_minor_computed: *mut ::std::os::raw::c_int,
1923 out_inv_flattening: *mut f64,
1924 ) -> ::std::os::raw::c_int;
1925}
1926unsafe extern "C" {
1927 pub fn proj_get_celestial_body_name(
1928 ctx: *mut PJ_CONTEXT,
1929 obj: *const PJ,
1930 ) -> *const ::std::os::raw::c_char;
1931}
1932unsafe extern "C" {
1933 pub fn proj_get_prime_meridian(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
1934}
1935unsafe extern "C" {
1936 pub fn proj_prime_meridian_get_parameters(
1937 ctx: *mut PJ_CONTEXT,
1938 prime_meridian: *const PJ,
1939 out_longitude: *mut f64,
1940 out_unit_conv_factor: *mut f64,
1941 out_unit_name: *mut *const ::std::os::raw::c_char,
1942 ) -> ::std::os::raw::c_int;
1943}
1944unsafe extern "C" {
1945 pub fn proj_crs_get_coordoperation(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1946}
1947unsafe extern "C" {
1948 pub fn proj_coordoperation_get_method_info(
1949 ctx: *mut PJ_CONTEXT,
1950 coordoperation: *const PJ,
1951 out_method_name: *mut *const ::std::os::raw::c_char,
1952 out_method_auth_name: *mut *const ::std::os::raw::c_char,
1953 out_method_code: *mut *const ::std::os::raw::c_char,
1954 ) -> ::std::os::raw::c_int;
1955}
1956unsafe extern "C" {
1957 pub fn proj_coordoperation_is_instantiable(
1958 ctx: *mut PJ_CONTEXT,
1959 coordoperation: *const PJ,
1960 ) -> ::std::os::raw::c_int;
1961}
1962unsafe extern "C" {
1963 pub fn proj_coordoperation_has_ballpark_transformation(
1964 ctx: *mut PJ_CONTEXT,
1965 coordoperation: *const PJ,
1966 ) -> ::std::os::raw::c_int;
1967}
1968unsafe extern "C" {
1969 pub fn proj_coordoperation_requires_per_coordinate_input_time(
1970 ctx: *mut PJ_CONTEXT,
1971 coordoperation: *const PJ,
1972 ) -> ::std::os::raw::c_int;
1973}
1974unsafe extern "C" {
1975 pub fn proj_coordoperation_get_param_count(
1976 ctx: *mut PJ_CONTEXT,
1977 coordoperation: *const PJ,
1978 ) -> ::std::os::raw::c_int;
1979}
1980unsafe extern "C" {
1981 pub fn proj_coordoperation_get_param_index(
1982 ctx: *mut PJ_CONTEXT,
1983 coordoperation: *const PJ,
1984 name: *const ::std::os::raw::c_char,
1985 ) -> ::std::os::raw::c_int;
1986}
1987unsafe extern "C" {
1988 pub fn proj_coordoperation_get_param(
1989 ctx: *mut PJ_CONTEXT,
1990 coordoperation: *const PJ,
1991 index: ::std::os::raw::c_int,
1992 out_name: *mut *const ::std::os::raw::c_char,
1993 out_auth_name: *mut *const ::std::os::raw::c_char,
1994 out_code: *mut *const ::std::os::raw::c_char,
1995 out_value: *mut f64,
1996 out_value_string: *mut *const ::std::os::raw::c_char,
1997 out_unit_conv_factor: *mut f64,
1998 out_unit_name: *mut *const ::std::os::raw::c_char,
1999 out_unit_auth_name: *mut *const ::std::os::raw::c_char,
2000 out_unit_code: *mut *const ::std::os::raw::c_char,
2001 out_unit_category: *mut *const ::std::os::raw::c_char,
2002 ) -> ::std::os::raw::c_int;
2003}
2004unsafe extern "C" {
2005 pub fn proj_coordoperation_get_grid_used_count(
2006 ctx: *mut PJ_CONTEXT,
2007 coordoperation: *const PJ,
2008 ) -> ::std::os::raw::c_int;
2009}
2010unsafe extern "C" {
2011 pub fn proj_coordoperation_get_grid_used(
2012 ctx: *mut PJ_CONTEXT,
2013 coordoperation: *const PJ,
2014 index: ::std::os::raw::c_int,
2015 out_short_name: *mut *const ::std::os::raw::c_char,
2016 out_full_name: *mut *const ::std::os::raw::c_char,
2017 out_package_name: *mut *const ::std::os::raw::c_char,
2018 out_url: *mut *const ::std::os::raw::c_char,
2019 out_direct_download: *mut ::std::os::raw::c_int,
2020 out_open_license: *mut ::std::os::raw::c_int,
2021 out_available: *mut ::std::os::raw::c_int,
2022 ) -> ::std::os::raw::c_int;
2023}
2024unsafe extern "C" {
2025 pub fn proj_coordoperation_get_accuracy(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> f64;
2026}
2027unsafe extern "C" {
2028 pub fn proj_coordoperation_get_towgs84_values(
2029 ctx: *mut PJ_CONTEXT,
2030 coordoperation: *const PJ,
2031 out_values: *mut f64,
2032 value_count: ::std::os::raw::c_int,
2033 emit_error_if_incompatible: ::std::os::raw::c_int,
2034 ) -> ::std::os::raw::c_int;
2035}
2036unsafe extern "C" {
2037 pub fn proj_coordoperation_create_inverse(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
2038}
2039unsafe extern "C" {
2040 pub fn proj_concatoperation_get_step_count(
2041 ctx: *mut PJ_CONTEXT,
2042 concatoperation: *const PJ,
2043 ) -> ::std::os::raw::c_int;
2044}
2045unsafe extern "C" {
2046 pub fn proj_concatoperation_get_step(
2047 ctx: *mut PJ_CONTEXT,
2048 concatoperation: *const PJ,
2049 i_step: ::std::os::raw::c_int,
2050 ) -> *mut PJ;
2051}
2052unsafe extern "C" {
2053 pub fn proj_coordinate_metadata_create(
2054 ctx: *mut PJ_CONTEXT,
2055 crs: *const PJ,
2056 epoch: f64,
2057 ) -> *mut PJ;
2058}
2059unsafe extern "C" {
2060 pub fn proj_coordinate_metadata_get_epoch(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> f64;
2061}
2062#[doc = " Angular unit of measure"]
2063pub const PJ_UNIT_TYPE_PJ_UT_ANGULAR: PJ_UNIT_TYPE = 0;
2064#[doc = " Linear unit of measure"]
2065pub const PJ_UNIT_TYPE_PJ_UT_LINEAR: PJ_UNIT_TYPE = 1;
2066#[doc = " Scale unit of measure"]
2067pub const PJ_UNIT_TYPE_PJ_UT_SCALE: PJ_UNIT_TYPE = 2;
2068#[doc = " Time unit of measure"]
2069pub const PJ_UNIT_TYPE_PJ_UT_TIME: PJ_UNIT_TYPE = 3;
2070#[doc = " Parametric unit of measure"]
2071pub const PJ_UNIT_TYPE_PJ_UT_PARAMETRIC: PJ_UNIT_TYPE = 4;
2072#[doc = " Type of unit of measure."]
2073pub type PJ_UNIT_TYPE = ::std::os::raw::c_uint;
2074#[doc = " \\brief Axis description."]
2075#[repr(C)]
2076#[derive(Debug, Copy, Clone)]
2077pub struct PJ_AXIS_DESCRIPTION {
2078 #[doc = " Axis name."]
2079 pub name: *mut ::std::os::raw::c_char,
2080 #[doc = " Axis abbreviation."]
2081 pub abbreviation: *mut ::std::os::raw::c_char,
2082 #[doc = " Axis direction."]
2083 pub direction: *mut ::std::os::raw::c_char,
2084 #[doc = " Axis unit name."]
2085 pub unit_name: *mut ::std::os::raw::c_char,
2086 #[doc = " Conversion factor to SI of the unit."]
2087 pub unit_conv_factor: f64,
2088 #[doc = " Type of unit"]
2089 pub unit_type: PJ_UNIT_TYPE,
2090}
2091#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2092const _: () = {
2093 ["Size of PJ_AXIS_DESCRIPTION"][::std::mem::size_of::<PJ_AXIS_DESCRIPTION>() - 48usize];
2094 ["Alignment of PJ_AXIS_DESCRIPTION"][::std::mem::align_of::<PJ_AXIS_DESCRIPTION>() - 8usize];
2095 ["Offset of field: PJ_AXIS_DESCRIPTION::name"]
2096 [::std::mem::offset_of!(PJ_AXIS_DESCRIPTION, name) - 0usize];
2097 ["Offset of field: PJ_AXIS_DESCRIPTION::abbreviation"]
2098 [::std::mem::offset_of!(PJ_AXIS_DESCRIPTION, abbreviation) - 8usize];
2099 ["Offset of field: PJ_AXIS_DESCRIPTION::direction"]
2100 [::std::mem::offset_of!(PJ_AXIS_DESCRIPTION, direction) - 16usize];
2101 ["Offset of field: PJ_AXIS_DESCRIPTION::unit_name"]
2102 [::std::mem::offset_of!(PJ_AXIS_DESCRIPTION, unit_name) - 24usize];
2103 ["Offset of field: PJ_AXIS_DESCRIPTION::unit_conv_factor"]
2104 [::std::mem::offset_of!(PJ_AXIS_DESCRIPTION, unit_conv_factor) - 32usize];
2105 ["Offset of field: PJ_AXIS_DESCRIPTION::unit_type"]
2106 [::std::mem::offset_of!(PJ_AXIS_DESCRIPTION, unit_type) - 40usize];
2107};
2108#[doc = " Easting-Norting"]
2109pub const PJ_CARTESIAN_CS_2D_TYPE_PJ_CART2D_EASTING_NORTHING: PJ_CARTESIAN_CS_2D_TYPE = 0;
2110#[doc = " Northing-Easting"]
2111pub const PJ_CARTESIAN_CS_2D_TYPE_PJ_CART2D_NORTHING_EASTING: PJ_CARTESIAN_CS_2D_TYPE = 1;
2112#[doc = " North Pole Easting/SOUTH-Norting/SOUTH"]
2113pub const PJ_CARTESIAN_CS_2D_TYPE_PJ_CART2D_NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH:
2114 PJ_CARTESIAN_CS_2D_TYPE = 2;
2115#[doc = " South Pole Easting/NORTH-Norting/NORTH"]
2116pub const PJ_CARTESIAN_CS_2D_TYPE_PJ_CART2D_SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH:
2117 PJ_CARTESIAN_CS_2D_TYPE = 3;
2118#[doc = " Westing-southing"]
2119pub const PJ_CARTESIAN_CS_2D_TYPE_PJ_CART2D_WESTING_SOUTHING: PJ_CARTESIAN_CS_2D_TYPE = 4;
2120#[doc = " Type of Cartesian 2D coordinate system."]
2121pub type PJ_CARTESIAN_CS_2D_TYPE = ::std::os::raw::c_uint;
2122#[doc = " Longitude-Latitude"]
2123pub const PJ_ELLIPSOIDAL_CS_2D_TYPE_PJ_ELLPS2D_LONGITUDE_LATITUDE: PJ_ELLIPSOIDAL_CS_2D_TYPE = 0;
2124#[doc = " Latitude-Longitude"]
2125pub const PJ_ELLIPSOIDAL_CS_2D_TYPE_PJ_ELLPS2D_LATITUDE_LONGITUDE: PJ_ELLIPSOIDAL_CS_2D_TYPE = 1;
2126#[doc = " Type of Ellipsoidal 2D coordinate system."]
2127pub type PJ_ELLIPSOIDAL_CS_2D_TYPE = ::std::os::raw::c_uint;
2128#[doc = " Longitude-Latitude-Height(up)"]
2129pub const PJ_ELLIPSOIDAL_CS_3D_TYPE_PJ_ELLPS3D_LONGITUDE_LATITUDE_HEIGHT:
2130 PJ_ELLIPSOIDAL_CS_3D_TYPE = 0;
2131#[doc = " Latitude-Longitude-Height(up)"]
2132pub const PJ_ELLIPSOIDAL_CS_3D_TYPE_PJ_ELLPS3D_LATITUDE_LONGITUDE_HEIGHT:
2133 PJ_ELLIPSOIDAL_CS_3D_TYPE = 1;
2134#[doc = " Type of Ellipsoidal 3D coordinate system."]
2135pub type PJ_ELLIPSOIDAL_CS_3D_TYPE = ::std::os::raw::c_uint;
2136#[doc = " \\brief Description of a parameter value for a Conversion."]
2137#[repr(C)]
2138#[derive(Debug, Copy, Clone)]
2139pub struct PJ_PARAM_DESCRIPTION {
2140 #[doc = " Parameter name."]
2141 pub name: *const ::std::os::raw::c_char,
2142 #[doc = " Parameter authority name."]
2143 pub auth_name: *const ::std::os::raw::c_char,
2144 #[doc = " Parameter code."]
2145 pub code: *const ::std::os::raw::c_char,
2146 #[doc = " Parameter value."]
2147 pub value: f64,
2148 #[doc = " Name of unit in which parameter value is expressed."]
2149 pub unit_name: *const ::std::os::raw::c_char,
2150 #[doc = " Conversion factor to SI of the unit."]
2151 pub unit_conv_factor: f64,
2152 #[doc = " Type of unit"]
2153 pub unit_type: PJ_UNIT_TYPE,
2154}
2155#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2156const _: () = {
2157 ["Size of PJ_PARAM_DESCRIPTION"][::std::mem::size_of::<PJ_PARAM_DESCRIPTION>() - 56usize];
2158 ["Alignment of PJ_PARAM_DESCRIPTION"][::std::mem::align_of::<PJ_PARAM_DESCRIPTION>() - 8usize];
2159 ["Offset of field: PJ_PARAM_DESCRIPTION::name"]
2160 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, name) - 0usize];
2161 ["Offset of field: PJ_PARAM_DESCRIPTION::auth_name"]
2162 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, auth_name) - 8usize];
2163 ["Offset of field: PJ_PARAM_DESCRIPTION::code"]
2164 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, code) - 16usize];
2165 ["Offset of field: PJ_PARAM_DESCRIPTION::value"]
2166 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, value) - 24usize];
2167 ["Offset of field: PJ_PARAM_DESCRIPTION::unit_name"]
2168 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, unit_name) - 32usize];
2169 ["Offset of field: PJ_PARAM_DESCRIPTION::unit_conv_factor"]
2170 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, unit_conv_factor) - 40usize];
2171 ["Offset of field: PJ_PARAM_DESCRIPTION::unit_type"]
2172 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, unit_type) - 48usize];
2173};
2174unsafe extern "C" {
2175 #[doc = " \\defgroup iso19111_advanced_functions Binding in C of advanced methods from\n the C++ API\n @{"]
2176 pub fn proj_create_cs(
2177 ctx: *mut PJ_CONTEXT,
2178 type_: PJ_COORDINATE_SYSTEM_TYPE,
2179 axis_count: ::std::os::raw::c_int,
2180 axis: *const PJ_AXIS_DESCRIPTION,
2181 ) -> *mut PJ;
2182}
2183unsafe extern "C" {
2184 pub fn proj_create_cartesian_2D_cs(
2185 ctx: *mut PJ_CONTEXT,
2186 type_: PJ_CARTESIAN_CS_2D_TYPE,
2187 unit_name: *const ::std::os::raw::c_char,
2188 unit_conv_factor: f64,
2189 ) -> *mut PJ;
2190}
2191unsafe extern "C" {
2192 pub fn proj_create_ellipsoidal_2D_cs(
2193 ctx: *mut PJ_CONTEXT,
2194 type_: PJ_ELLIPSOIDAL_CS_2D_TYPE,
2195 unit_name: *const ::std::os::raw::c_char,
2196 unit_conv_factor: f64,
2197 ) -> *mut PJ;
2198}
2199unsafe extern "C" {
2200 pub fn proj_create_ellipsoidal_3D_cs(
2201 ctx: *mut PJ_CONTEXT,
2202 type_: PJ_ELLIPSOIDAL_CS_3D_TYPE,
2203 horizontal_angular_unit_name: *const ::std::os::raw::c_char,
2204 horizontal_angular_unit_conv_factor: f64,
2205 vertical_linear_unit_name: *const ::std::os::raw::c_char,
2206 vertical_linear_unit_conv_factor: f64,
2207 ) -> *mut PJ;
2208}
2209unsafe extern "C" {
2210 pub fn proj_query_geodetic_crs_from_datum(
2211 ctx: *mut PJ_CONTEXT,
2212 crs_auth_name: *const ::std::os::raw::c_char,
2213 datum_auth_name: *const ::std::os::raw::c_char,
2214 datum_code: *const ::std::os::raw::c_char,
2215 crs_type: *const ::std::os::raw::c_char,
2216 ) -> *mut PJ_OBJ_LIST;
2217}
2218unsafe extern "C" {
2219 pub fn proj_create_geographic_crs(
2220 ctx: *mut PJ_CONTEXT,
2221 crs_name: *const ::std::os::raw::c_char,
2222 datum_name: *const ::std::os::raw::c_char,
2223 ellps_name: *const ::std::os::raw::c_char,
2224 semi_major_metre: f64,
2225 inv_flattening: f64,
2226 prime_meridian_name: *const ::std::os::raw::c_char,
2227 prime_meridian_offset: f64,
2228 pm_angular_units: *const ::std::os::raw::c_char,
2229 pm_units_conv: f64,
2230 ellipsoidal_cs: *const PJ,
2231 ) -> *mut PJ;
2232}
2233unsafe extern "C" {
2234 pub fn proj_create_geographic_crs_from_datum(
2235 ctx: *mut PJ_CONTEXT,
2236 crs_name: *const ::std::os::raw::c_char,
2237 datum_or_datum_ensemble: *const PJ,
2238 ellipsoidal_cs: *const PJ,
2239 ) -> *mut PJ;
2240}
2241unsafe extern "C" {
2242 pub fn proj_create_geocentric_crs(
2243 ctx: *mut PJ_CONTEXT,
2244 crs_name: *const ::std::os::raw::c_char,
2245 datum_name: *const ::std::os::raw::c_char,
2246 ellps_name: *const ::std::os::raw::c_char,
2247 semi_major_metre: f64,
2248 inv_flattening: f64,
2249 prime_meridian_name: *const ::std::os::raw::c_char,
2250 prime_meridian_offset: f64,
2251 angular_units: *const ::std::os::raw::c_char,
2252 angular_units_conv: f64,
2253 linear_units: *const ::std::os::raw::c_char,
2254 linear_units_conv: f64,
2255 ) -> *mut PJ;
2256}
2257unsafe extern "C" {
2258 pub fn proj_create_geocentric_crs_from_datum(
2259 ctx: *mut PJ_CONTEXT,
2260 crs_name: *const ::std::os::raw::c_char,
2261 datum_or_datum_ensemble: *const PJ,
2262 linear_units: *const ::std::os::raw::c_char,
2263 linear_units_conv: f64,
2264 ) -> *mut PJ;
2265}
2266unsafe extern "C" {
2267 pub fn proj_create_derived_geographic_crs(
2268 ctx: *mut PJ_CONTEXT,
2269 crs_name: *const ::std::os::raw::c_char,
2270 base_geographic_crs: *const PJ,
2271 conversion: *const PJ,
2272 ellipsoidal_cs: *const PJ,
2273 ) -> *mut PJ;
2274}
2275unsafe extern "C" {
2276 pub fn proj_is_derived_crs(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> ::std::os::raw::c_int;
2277}
2278unsafe extern "C" {
2279 pub fn proj_alter_name(
2280 ctx: *mut PJ_CONTEXT,
2281 obj: *const PJ,
2282 name: *const ::std::os::raw::c_char,
2283 ) -> *mut PJ;
2284}
2285unsafe extern "C" {
2286 pub fn proj_alter_id(
2287 ctx: *mut PJ_CONTEXT,
2288 obj: *const PJ,
2289 auth_name: *const ::std::os::raw::c_char,
2290 code: *const ::std::os::raw::c_char,
2291 ) -> *mut PJ;
2292}
2293unsafe extern "C" {
2294 pub fn proj_crs_alter_geodetic_crs(
2295 ctx: *mut PJ_CONTEXT,
2296 obj: *const PJ,
2297 new_geod_crs: *const PJ,
2298 ) -> *mut PJ;
2299}
2300unsafe extern "C" {
2301 pub fn proj_crs_alter_cs_angular_unit(
2302 ctx: *mut PJ_CONTEXT,
2303 obj: *const PJ,
2304 angular_units: *const ::std::os::raw::c_char,
2305 angular_units_conv: f64,
2306 unit_auth_name: *const ::std::os::raw::c_char,
2307 unit_code: *const ::std::os::raw::c_char,
2308 ) -> *mut PJ;
2309}
2310unsafe extern "C" {
2311 pub fn proj_crs_alter_cs_linear_unit(
2312 ctx: *mut PJ_CONTEXT,
2313 obj: *const PJ,
2314 linear_units: *const ::std::os::raw::c_char,
2315 linear_units_conv: f64,
2316 unit_auth_name: *const ::std::os::raw::c_char,
2317 unit_code: *const ::std::os::raw::c_char,
2318 ) -> *mut PJ;
2319}
2320unsafe extern "C" {
2321 pub fn proj_crs_alter_parameters_linear_unit(
2322 ctx: *mut PJ_CONTEXT,
2323 obj: *const PJ,
2324 linear_units: *const ::std::os::raw::c_char,
2325 linear_units_conv: f64,
2326 unit_auth_name: *const ::std::os::raw::c_char,
2327 unit_code: *const ::std::os::raw::c_char,
2328 convert_to_new_unit: ::std::os::raw::c_int,
2329 ) -> *mut PJ;
2330}
2331unsafe extern "C" {
2332 pub fn proj_crs_promote_to_3D(
2333 ctx: *mut PJ_CONTEXT,
2334 crs_3D_name: *const ::std::os::raw::c_char,
2335 crs_2D: *const PJ,
2336 ) -> *mut PJ;
2337}
2338unsafe extern "C" {
2339 pub fn proj_crs_create_projected_3D_crs_from_2D(
2340 ctx: *mut PJ_CONTEXT,
2341 crs_name: *const ::std::os::raw::c_char,
2342 projected_2D_crs: *const PJ,
2343 geog_3D_crs: *const PJ,
2344 ) -> *mut PJ;
2345}
2346unsafe extern "C" {
2347 pub fn proj_crs_demote_to_2D(
2348 ctx: *mut PJ_CONTEXT,
2349 crs_2D_name: *const ::std::os::raw::c_char,
2350 crs_3D: *const PJ,
2351 ) -> *mut PJ;
2352}
2353unsafe extern "C" {
2354 pub fn proj_create_engineering_crs(
2355 ctx: *mut PJ_CONTEXT,
2356 crsName: *const ::std::os::raw::c_char,
2357 ) -> *mut PJ;
2358}
2359unsafe extern "C" {
2360 pub fn proj_create_vertical_crs(
2361 ctx: *mut PJ_CONTEXT,
2362 crs_name: *const ::std::os::raw::c_char,
2363 datum_name: *const ::std::os::raw::c_char,
2364 linear_units: *const ::std::os::raw::c_char,
2365 linear_units_conv: f64,
2366 ) -> *mut PJ;
2367}
2368unsafe extern "C" {
2369 pub fn proj_create_vertical_crs_ex(
2370 ctx: *mut PJ_CONTEXT,
2371 crs_name: *const ::std::os::raw::c_char,
2372 datum_name: *const ::std::os::raw::c_char,
2373 datum_auth_name: *const ::std::os::raw::c_char,
2374 datum_code: *const ::std::os::raw::c_char,
2375 linear_units: *const ::std::os::raw::c_char,
2376 linear_units_conv: f64,
2377 geoid_model_name: *const ::std::os::raw::c_char,
2378 geoid_model_auth_name: *const ::std::os::raw::c_char,
2379 geoid_model_code: *const ::std::os::raw::c_char,
2380 geoid_geog_crs: *const PJ,
2381 options: *const *const ::std::os::raw::c_char,
2382 ) -> *mut PJ;
2383}
2384unsafe extern "C" {
2385 pub fn proj_create_compound_crs(
2386 ctx: *mut PJ_CONTEXT,
2387 crs_name: *const ::std::os::raw::c_char,
2388 horiz_crs: *const PJ,
2389 vert_crs: *const PJ,
2390 ) -> *mut PJ;
2391}
2392unsafe extern "C" {
2393 pub fn proj_create_conversion(
2394 ctx: *mut PJ_CONTEXT,
2395 name: *const ::std::os::raw::c_char,
2396 auth_name: *const ::std::os::raw::c_char,
2397 code: *const ::std::os::raw::c_char,
2398 method_name: *const ::std::os::raw::c_char,
2399 method_auth_name: *const ::std::os::raw::c_char,
2400 method_code: *const ::std::os::raw::c_char,
2401 param_count: ::std::os::raw::c_int,
2402 params: *const PJ_PARAM_DESCRIPTION,
2403 ) -> *mut PJ;
2404}
2405unsafe extern "C" {
2406 pub fn proj_create_transformation(
2407 ctx: *mut PJ_CONTEXT,
2408 name: *const ::std::os::raw::c_char,
2409 auth_name: *const ::std::os::raw::c_char,
2410 code: *const ::std::os::raw::c_char,
2411 source_crs: *const PJ,
2412 target_crs: *const PJ,
2413 interpolation_crs: *const PJ,
2414 method_name: *const ::std::os::raw::c_char,
2415 method_auth_name: *const ::std::os::raw::c_char,
2416 method_code: *const ::std::os::raw::c_char,
2417 param_count: ::std::os::raw::c_int,
2418 params: *const PJ_PARAM_DESCRIPTION,
2419 accuracy: f64,
2420 ) -> *mut PJ;
2421}
2422unsafe extern "C" {
2423 pub fn proj_convert_conversion_to_other_method(
2424 ctx: *mut PJ_CONTEXT,
2425 conversion: *const PJ,
2426 new_method_epsg_code: ::std::os::raw::c_int,
2427 new_method_name: *const ::std::os::raw::c_char,
2428 ) -> *mut PJ;
2429}
2430unsafe extern "C" {
2431 pub fn proj_create_projected_crs(
2432 ctx: *mut PJ_CONTEXT,
2433 crs_name: *const ::std::os::raw::c_char,
2434 geodetic_crs: *const PJ,
2435 conversion: *const PJ,
2436 coordinate_system: *const PJ,
2437 ) -> *mut PJ;
2438}
2439unsafe extern "C" {
2440 pub fn proj_crs_create_bound_crs(
2441 ctx: *mut PJ_CONTEXT,
2442 base_crs: *const PJ,
2443 hub_crs: *const PJ,
2444 transformation: *const PJ,
2445 ) -> *mut PJ;
2446}
2447unsafe extern "C" {
2448 pub fn proj_crs_create_bound_crs_to_WGS84(
2449 ctx: *mut PJ_CONTEXT,
2450 crs: *const PJ,
2451 options: *const *const ::std::os::raw::c_char,
2452 ) -> *mut PJ;
2453}
2454unsafe extern "C" {
2455 pub fn proj_crs_create_bound_vertical_crs(
2456 ctx: *mut PJ_CONTEXT,
2457 vert_crs: *const PJ,
2458 hub_geographic_3D_crs: *const PJ,
2459 grid_name: *const ::std::os::raw::c_char,
2460 ) -> *mut PJ;
2461}
2462unsafe extern "C" {
2463 pub fn proj_create_conversion_utm(
2464 ctx: *mut PJ_CONTEXT,
2465 zone: ::std::os::raw::c_int,
2466 north: ::std::os::raw::c_int,
2467 ) -> *mut PJ;
2468}
2469unsafe extern "C" {
2470 pub fn proj_create_conversion_transverse_mercator(
2471 ctx: *mut PJ_CONTEXT,
2472 center_lat: f64,
2473 center_long: f64,
2474 scale: f64,
2475 false_easting: f64,
2476 false_northing: f64,
2477 ang_unit_name: *const ::std::os::raw::c_char,
2478 ang_unit_conv_factor: f64,
2479 linear_unit_name: *const ::std::os::raw::c_char,
2480 linear_unit_conv_factor: f64,
2481 ) -> *mut PJ;
2482}
2483unsafe extern "C" {
2484 pub fn proj_create_conversion_gauss_schreiber_transverse_mercator(
2485 ctx: *mut PJ_CONTEXT,
2486 center_lat: f64,
2487 center_long: f64,
2488 scale: f64,
2489 false_easting: f64,
2490 false_northing: f64,
2491 ang_unit_name: *const ::std::os::raw::c_char,
2492 ang_unit_conv_factor: f64,
2493 linear_unit_name: *const ::std::os::raw::c_char,
2494 linear_unit_conv_factor: f64,
2495 ) -> *mut PJ;
2496}
2497unsafe extern "C" {
2498 pub fn proj_create_conversion_transverse_mercator_south_oriented(
2499 ctx: *mut PJ_CONTEXT,
2500 center_lat: f64,
2501 center_long: f64,
2502 scale: f64,
2503 false_easting: f64,
2504 false_northing: f64,
2505 ang_unit_name: *const ::std::os::raw::c_char,
2506 ang_unit_conv_factor: f64,
2507 linear_unit_name: *const ::std::os::raw::c_char,
2508 linear_unit_conv_factor: f64,
2509 ) -> *mut PJ;
2510}
2511unsafe extern "C" {
2512 pub fn proj_create_conversion_two_point_equidistant(
2513 ctx: *mut PJ_CONTEXT,
2514 latitude_first_point: f64,
2515 longitude_first_point: f64,
2516 latitude_second_point: f64,
2517 longitude_secon_point: f64,
2518 false_easting: f64,
2519 false_northing: f64,
2520 ang_unit_name: *const ::std::os::raw::c_char,
2521 ang_unit_conv_factor: f64,
2522 linear_unit_name: *const ::std::os::raw::c_char,
2523 linear_unit_conv_factor: f64,
2524 ) -> *mut PJ;
2525}
2526unsafe extern "C" {
2527 pub fn proj_create_conversion_tunisia_mapping_grid(
2528 ctx: *mut PJ_CONTEXT,
2529 center_lat: f64,
2530 center_long: f64,
2531 false_easting: f64,
2532 false_northing: f64,
2533 ang_unit_name: *const ::std::os::raw::c_char,
2534 ang_unit_conv_factor: f64,
2535 linear_unit_name: *const ::std::os::raw::c_char,
2536 linear_unit_conv_factor: f64,
2537 ) -> *mut PJ;
2538}
2539unsafe extern "C" {
2540 pub fn proj_create_conversion_tunisia_mining_grid(
2541 ctx: *mut PJ_CONTEXT,
2542 center_lat: f64,
2543 center_long: f64,
2544 false_easting: f64,
2545 false_northing: f64,
2546 ang_unit_name: *const ::std::os::raw::c_char,
2547 ang_unit_conv_factor: f64,
2548 linear_unit_name: *const ::std::os::raw::c_char,
2549 linear_unit_conv_factor: f64,
2550 ) -> *mut PJ;
2551}
2552unsafe extern "C" {
2553 pub fn proj_create_conversion_albers_equal_area(
2554 ctx: *mut PJ_CONTEXT,
2555 latitude_false_origin: f64,
2556 longitude_false_origin: f64,
2557 latitude_first_parallel: f64,
2558 latitude_second_parallel: f64,
2559 easting_false_origin: f64,
2560 northing_false_origin: f64,
2561 ang_unit_name: *const ::std::os::raw::c_char,
2562 ang_unit_conv_factor: f64,
2563 linear_unit_name: *const ::std::os::raw::c_char,
2564 linear_unit_conv_factor: f64,
2565 ) -> *mut PJ;
2566}
2567unsafe extern "C" {
2568 pub fn proj_create_conversion_lambert_conic_conformal_1sp(
2569 ctx: *mut PJ_CONTEXT,
2570 center_lat: f64,
2571 center_long: f64,
2572 scale: f64,
2573 false_easting: f64,
2574 false_northing: f64,
2575 ang_unit_name: *const ::std::os::raw::c_char,
2576 ang_unit_conv_factor: f64,
2577 linear_unit_name: *const ::std::os::raw::c_char,
2578 linear_unit_conv_factor: f64,
2579 ) -> *mut PJ;
2580}
2581unsafe extern "C" {
2582 pub fn proj_create_conversion_lambert_conic_conformal_1sp_variant_b(
2583 ctx: *mut PJ_CONTEXT,
2584 latitude_nat_origin: f64,
2585 scale: f64,
2586 latitude_false_origin: f64,
2587 longitude_false_origin: f64,
2588 easting_false_origin: f64,
2589 northing_false_origin: f64,
2590 ang_unit_name: *const ::std::os::raw::c_char,
2591 ang_unit_conv_factor: f64,
2592 linear_unit_name: *const ::std::os::raw::c_char,
2593 linear_unit_conv_factor: f64,
2594 ) -> *mut PJ;
2595}
2596unsafe extern "C" {
2597 pub fn proj_create_conversion_lambert_conic_conformal_2sp(
2598 ctx: *mut PJ_CONTEXT,
2599 latitude_false_origin: f64,
2600 longitude_false_origin: f64,
2601 latitude_first_parallel: f64,
2602 latitude_second_parallel: f64,
2603 easting_false_origin: f64,
2604 northing_false_origin: f64,
2605 ang_unit_name: *const ::std::os::raw::c_char,
2606 ang_unit_conv_factor: f64,
2607 linear_unit_name: *const ::std::os::raw::c_char,
2608 linear_unit_conv_factor: f64,
2609 ) -> *mut PJ;
2610}
2611unsafe extern "C" {
2612 pub fn proj_create_conversion_lambert_conic_conformal_2sp_michigan(
2613 ctx: *mut PJ_CONTEXT,
2614 latitude_false_origin: f64,
2615 longitude_false_origin: f64,
2616 latitude_first_parallel: f64,
2617 latitude_second_parallel: f64,
2618 easting_false_origin: f64,
2619 northing_false_origin: f64,
2620 ellipsoid_scaling_factor: f64,
2621 ang_unit_name: *const ::std::os::raw::c_char,
2622 ang_unit_conv_factor: f64,
2623 linear_unit_name: *const ::std::os::raw::c_char,
2624 linear_unit_conv_factor: f64,
2625 ) -> *mut PJ;
2626}
2627unsafe extern "C" {
2628 pub fn proj_create_conversion_lambert_conic_conformal_2sp_belgium(
2629 ctx: *mut PJ_CONTEXT,
2630 latitude_false_origin: f64,
2631 longitude_false_origin: f64,
2632 latitude_first_parallel: f64,
2633 latitude_second_parallel: f64,
2634 easting_false_origin: f64,
2635 northing_false_origin: f64,
2636 ang_unit_name: *const ::std::os::raw::c_char,
2637 ang_unit_conv_factor: f64,
2638 linear_unit_name: *const ::std::os::raw::c_char,
2639 linear_unit_conv_factor: f64,
2640 ) -> *mut PJ;
2641}
2642unsafe extern "C" {
2643 pub fn proj_create_conversion_azimuthal_equidistant(
2644 ctx: *mut PJ_CONTEXT,
2645 latitude_nat_origin: f64,
2646 longitude_nat_origin: f64,
2647 false_easting: f64,
2648 false_northing: f64,
2649 ang_unit_name: *const ::std::os::raw::c_char,
2650 ang_unit_conv_factor: f64,
2651 linear_unit_name: *const ::std::os::raw::c_char,
2652 linear_unit_conv_factor: f64,
2653 ) -> *mut PJ;
2654}
2655unsafe extern "C" {
2656 pub fn proj_create_conversion_guam_projection(
2657 ctx: *mut PJ_CONTEXT,
2658 latitude_nat_origin: f64,
2659 longitude_nat_origin: f64,
2660 false_easting: f64,
2661 false_northing: f64,
2662 ang_unit_name: *const ::std::os::raw::c_char,
2663 ang_unit_conv_factor: f64,
2664 linear_unit_name: *const ::std::os::raw::c_char,
2665 linear_unit_conv_factor: f64,
2666 ) -> *mut PJ;
2667}
2668unsafe extern "C" {
2669 pub fn proj_create_conversion_bonne(
2670 ctx: *mut PJ_CONTEXT,
2671 latitude_nat_origin: f64,
2672 longitude_nat_origin: f64,
2673 false_easting: f64,
2674 false_northing: f64,
2675 ang_unit_name: *const ::std::os::raw::c_char,
2676 ang_unit_conv_factor: f64,
2677 linear_unit_name: *const ::std::os::raw::c_char,
2678 linear_unit_conv_factor: f64,
2679 ) -> *mut PJ;
2680}
2681unsafe extern "C" {
2682 pub fn proj_create_conversion_lambert_cylindrical_equal_area_spherical(
2683 ctx: *mut PJ_CONTEXT,
2684 latitude_first_parallel: f64,
2685 longitude_nat_origin: f64,
2686 false_easting: f64,
2687 false_northing: f64,
2688 ang_unit_name: *const ::std::os::raw::c_char,
2689 ang_unit_conv_factor: f64,
2690 linear_unit_name: *const ::std::os::raw::c_char,
2691 linear_unit_conv_factor: f64,
2692 ) -> *mut PJ;
2693}
2694unsafe extern "C" {
2695 pub fn proj_create_conversion_lambert_cylindrical_equal_area(
2696 ctx: *mut PJ_CONTEXT,
2697 latitude_first_parallel: f64,
2698 longitude_nat_origin: f64,
2699 false_easting: f64,
2700 false_northing: f64,
2701 ang_unit_name: *const ::std::os::raw::c_char,
2702 ang_unit_conv_factor: f64,
2703 linear_unit_name: *const ::std::os::raw::c_char,
2704 linear_unit_conv_factor: f64,
2705 ) -> *mut PJ;
2706}
2707unsafe extern "C" {
2708 pub fn proj_create_conversion_cassini_soldner(
2709 ctx: *mut PJ_CONTEXT,
2710 center_lat: f64,
2711 center_long: f64,
2712 false_easting: f64,
2713 false_northing: f64,
2714 ang_unit_name: *const ::std::os::raw::c_char,
2715 ang_unit_conv_factor: f64,
2716 linear_unit_name: *const ::std::os::raw::c_char,
2717 linear_unit_conv_factor: f64,
2718 ) -> *mut PJ;
2719}
2720unsafe extern "C" {
2721 pub fn proj_create_conversion_equidistant_conic(
2722 ctx: *mut PJ_CONTEXT,
2723 center_lat: f64,
2724 center_long: f64,
2725 latitude_first_parallel: f64,
2726 latitude_second_parallel: f64,
2727 false_easting: f64,
2728 false_northing: f64,
2729 ang_unit_name: *const ::std::os::raw::c_char,
2730 ang_unit_conv_factor: f64,
2731 linear_unit_name: *const ::std::os::raw::c_char,
2732 linear_unit_conv_factor: f64,
2733 ) -> *mut PJ;
2734}
2735unsafe extern "C" {
2736 pub fn proj_create_conversion_eckert_i(
2737 ctx: *mut PJ_CONTEXT,
2738 center_long: f64,
2739 false_easting: f64,
2740 false_northing: f64,
2741 ang_unit_name: *const ::std::os::raw::c_char,
2742 ang_unit_conv_factor: f64,
2743 linear_unit_name: *const ::std::os::raw::c_char,
2744 linear_unit_conv_factor: f64,
2745 ) -> *mut PJ;
2746}
2747unsafe extern "C" {
2748 pub fn proj_create_conversion_eckert_ii(
2749 ctx: *mut PJ_CONTEXT,
2750 center_long: f64,
2751 false_easting: f64,
2752 false_northing: f64,
2753 ang_unit_name: *const ::std::os::raw::c_char,
2754 ang_unit_conv_factor: f64,
2755 linear_unit_name: *const ::std::os::raw::c_char,
2756 linear_unit_conv_factor: f64,
2757 ) -> *mut PJ;
2758}
2759unsafe extern "C" {
2760 pub fn proj_create_conversion_eckert_iii(
2761 ctx: *mut PJ_CONTEXT,
2762 center_long: f64,
2763 false_easting: f64,
2764 false_northing: f64,
2765 ang_unit_name: *const ::std::os::raw::c_char,
2766 ang_unit_conv_factor: f64,
2767 linear_unit_name: *const ::std::os::raw::c_char,
2768 linear_unit_conv_factor: f64,
2769 ) -> *mut PJ;
2770}
2771unsafe extern "C" {
2772 pub fn proj_create_conversion_eckert_iv(
2773 ctx: *mut PJ_CONTEXT,
2774 center_long: f64,
2775 false_easting: f64,
2776 false_northing: f64,
2777 ang_unit_name: *const ::std::os::raw::c_char,
2778 ang_unit_conv_factor: f64,
2779 linear_unit_name: *const ::std::os::raw::c_char,
2780 linear_unit_conv_factor: f64,
2781 ) -> *mut PJ;
2782}
2783unsafe extern "C" {
2784 pub fn proj_create_conversion_eckert_v(
2785 ctx: *mut PJ_CONTEXT,
2786 center_long: f64,
2787 false_easting: f64,
2788 false_northing: f64,
2789 ang_unit_name: *const ::std::os::raw::c_char,
2790 ang_unit_conv_factor: f64,
2791 linear_unit_name: *const ::std::os::raw::c_char,
2792 linear_unit_conv_factor: f64,
2793 ) -> *mut PJ;
2794}
2795unsafe extern "C" {
2796 pub fn proj_create_conversion_eckert_vi(
2797 ctx: *mut PJ_CONTEXT,
2798 center_long: f64,
2799 false_easting: f64,
2800 false_northing: f64,
2801 ang_unit_name: *const ::std::os::raw::c_char,
2802 ang_unit_conv_factor: f64,
2803 linear_unit_name: *const ::std::os::raw::c_char,
2804 linear_unit_conv_factor: f64,
2805 ) -> *mut PJ;
2806}
2807unsafe extern "C" {
2808 pub fn proj_create_conversion_equidistant_cylindrical(
2809 ctx: *mut PJ_CONTEXT,
2810 latitude_first_parallel: f64,
2811 longitude_nat_origin: f64,
2812 false_easting: f64,
2813 false_northing: f64,
2814 ang_unit_name: *const ::std::os::raw::c_char,
2815 ang_unit_conv_factor: f64,
2816 linear_unit_name: *const ::std::os::raw::c_char,
2817 linear_unit_conv_factor: f64,
2818 ) -> *mut PJ;
2819}
2820unsafe extern "C" {
2821 pub fn proj_create_conversion_equidistant_cylindrical_spherical(
2822 ctx: *mut PJ_CONTEXT,
2823 latitude_first_parallel: f64,
2824 longitude_nat_origin: f64,
2825 false_easting: f64,
2826 false_northing: f64,
2827 ang_unit_name: *const ::std::os::raw::c_char,
2828 ang_unit_conv_factor: f64,
2829 linear_unit_name: *const ::std::os::raw::c_char,
2830 linear_unit_conv_factor: f64,
2831 ) -> *mut PJ;
2832}
2833unsafe extern "C" {
2834 pub fn proj_create_conversion_gall(
2835 ctx: *mut PJ_CONTEXT,
2836 center_long: f64,
2837 false_easting: f64,
2838 false_northing: f64,
2839 ang_unit_name: *const ::std::os::raw::c_char,
2840 ang_unit_conv_factor: f64,
2841 linear_unit_name: *const ::std::os::raw::c_char,
2842 linear_unit_conv_factor: f64,
2843 ) -> *mut PJ;
2844}
2845unsafe extern "C" {
2846 pub fn proj_create_conversion_goode_homolosine(
2847 ctx: *mut PJ_CONTEXT,
2848 center_long: f64,
2849 false_easting: f64,
2850 false_northing: f64,
2851 ang_unit_name: *const ::std::os::raw::c_char,
2852 ang_unit_conv_factor: f64,
2853 linear_unit_name: *const ::std::os::raw::c_char,
2854 linear_unit_conv_factor: f64,
2855 ) -> *mut PJ;
2856}
2857unsafe extern "C" {
2858 pub fn proj_create_conversion_interrupted_goode_homolosine(
2859 ctx: *mut PJ_CONTEXT,
2860 center_long: f64,
2861 false_easting: f64,
2862 false_northing: f64,
2863 ang_unit_name: *const ::std::os::raw::c_char,
2864 ang_unit_conv_factor: f64,
2865 linear_unit_name: *const ::std::os::raw::c_char,
2866 linear_unit_conv_factor: f64,
2867 ) -> *mut PJ;
2868}
2869unsafe extern "C" {
2870 pub fn proj_create_conversion_geostationary_satellite_sweep_x(
2871 ctx: *mut PJ_CONTEXT,
2872 center_long: f64,
2873 height: f64,
2874 false_easting: f64,
2875 false_northing: f64,
2876 ang_unit_name: *const ::std::os::raw::c_char,
2877 ang_unit_conv_factor: f64,
2878 linear_unit_name: *const ::std::os::raw::c_char,
2879 linear_unit_conv_factor: f64,
2880 ) -> *mut PJ;
2881}
2882unsafe extern "C" {
2883 pub fn proj_create_conversion_geostationary_satellite_sweep_y(
2884 ctx: *mut PJ_CONTEXT,
2885 center_long: f64,
2886 height: f64,
2887 false_easting: f64,
2888 false_northing: f64,
2889 ang_unit_name: *const ::std::os::raw::c_char,
2890 ang_unit_conv_factor: f64,
2891 linear_unit_name: *const ::std::os::raw::c_char,
2892 linear_unit_conv_factor: f64,
2893 ) -> *mut PJ;
2894}
2895unsafe extern "C" {
2896 pub fn proj_create_conversion_gnomonic(
2897 ctx: *mut PJ_CONTEXT,
2898 center_lat: f64,
2899 center_long: f64,
2900 false_easting: f64,
2901 false_northing: f64,
2902 ang_unit_name: *const ::std::os::raw::c_char,
2903 ang_unit_conv_factor: f64,
2904 linear_unit_name: *const ::std::os::raw::c_char,
2905 linear_unit_conv_factor: f64,
2906 ) -> *mut PJ;
2907}
2908unsafe extern "C" {
2909 pub fn proj_create_conversion_hotine_oblique_mercator_variant_a(
2910 ctx: *mut PJ_CONTEXT,
2911 latitude_projection_centre: f64,
2912 longitude_projection_centre: f64,
2913 azimuth_initial_line: f64,
2914 angle_from_rectified_to_skrew_grid: f64,
2915 scale: f64,
2916 false_easting: f64,
2917 false_northing: f64,
2918 ang_unit_name: *const ::std::os::raw::c_char,
2919 ang_unit_conv_factor: f64,
2920 linear_unit_name: *const ::std::os::raw::c_char,
2921 linear_unit_conv_factor: f64,
2922 ) -> *mut PJ;
2923}
2924unsafe extern "C" {
2925 pub fn proj_create_conversion_hotine_oblique_mercator_variant_b(
2926 ctx: *mut PJ_CONTEXT,
2927 latitude_projection_centre: f64,
2928 longitude_projection_centre: f64,
2929 azimuth_initial_line: f64,
2930 angle_from_rectified_to_skrew_grid: f64,
2931 scale: f64,
2932 easting_projection_centre: f64,
2933 northing_projection_centre: f64,
2934 ang_unit_name: *const ::std::os::raw::c_char,
2935 ang_unit_conv_factor: f64,
2936 linear_unit_name: *const ::std::os::raw::c_char,
2937 linear_unit_conv_factor: f64,
2938 ) -> *mut PJ;
2939}
2940unsafe extern "C" {
2941 pub fn proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin(
2942 ctx: *mut PJ_CONTEXT,
2943 latitude_projection_centre: f64,
2944 latitude_point1: f64,
2945 longitude_point1: f64,
2946 latitude_point2: f64,
2947 longitude_point2: f64,
2948 scale: f64,
2949 easting_projection_centre: f64,
2950 northing_projection_centre: f64,
2951 ang_unit_name: *const ::std::os::raw::c_char,
2952 ang_unit_conv_factor: f64,
2953 linear_unit_name: *const ::std::os::raw::c_char,
2954 linear_unit_conv_factor: f64,
2955 ) -> *mut PJ;
2956}
2957unsafe extern "C" {
2958 pub fn proj_create_conversion_laborde_oblique_mercator(
2959 ctx: *mut PJ_CONTEXT,
2960 latitude_projection_centre: f64,
2961 longitude_projection_centre: f64,
2962 azimuth_initial_line: f64,
2963 scale: f64,
2964 false_easting: f64,
2965 false_northing: f64,
2966 ang_unit_name: *const ::std::os::raw::c_char,
2967 ang_unit_conv_factor: f64,
2968 linear_unit_name: *const ::std::os::raw::c_char,
2969 linear_unit_conv_factor: f64,
2970 ) -> *mut PJ;
2971}
2972unsafe extern "C" {
2973 pub fn proj_create_conversion_international_map_world_polyconic(
2974 ctx: *mut PJ_CONTEXT,
2975 center_long: f64,
2976 latitude_first_parallel: f64,
2977 latitude_second_parallel: f64,
2978 false_easting: f64,
2979 false_northing: f64,
2980 ang_unit_name: *const ::std::os::raw::c_char,
2981 ang_unit_conv_factor: f64,
2982 linear_unit_name: *const ::std::os::raw::c_char,
2983 linear_unit_conv_factor: f64,
2984 ) -> *mut PJ;
2985}
2986unsafe extern "C" {
2987 pub fn proj_create_conversion_krovak_north_oriented(
2988 ctx: *mut PJ_CONTEXT,
2989 latitude_projection_centre: f64,
2990 longitude_of_origin: f64,
2991 colatitude_cone_axis: f64,
2992 latitude_pseudo_standard_parallel: f64,
2993 scale_factor_pseudo_standard_parallel: f64,
2994 false_easting: f64,
2995 false_northing: f64,
2996 ang_unit_name: *const ::std::os::raw::c_char,
2997 ang_unit_conv_factor: f64,
2998 linear_unit_name: *const ::std::os::raw::c_char,
2999 linear_unit_conv_factor: f64,
3000 ) -> *mut PJ;
3001}
3002unsafe extern "C" {
3003 pub fn proj_create_conversion_krovak(
3004 ctx: *mut PJ_CONTEXT,
3005 latitude_projection_centre: f64,
3006 longitude_of_origin: f64,
3007 colatitude_cone_axis: f64,
3008 latitude_pseudo_standard_parallel: f64,
3009 scale_factor_pseudo_standard_parallel: f64,
3010 false_easting: f64,
3011 false_northing: f64,
3012 ang_unit_name: *const ::std::os::raw::c_char,
3013 ang_unit_conv_factor: f64,
3014 linear_unit_name: *const ::std::os::raw::c_char,
3015 linear_unit_conv_factor: f64,
3016 ) -> *mut PJ;
3017}
3018unsafe extern "C" {
3019 pub fn proj_create_conversion_lambert_azimuthal_equal_area(
3020 ctx: *mut PJ_CONTEXT,
3021 latitude_nat_origin: f64,
3022 longitude_nat_origin: f64,
3023 false_easting: f64,
3024 false_northing: f64,
3025 ang_unit_name: *const ::std::os::raw::c_char,
3026 ang_unit_conv_factor: f64,
3027 linear_unit_name: *const ::std::os::raw::c_char,
3028 linear_unit_conv_factor: f64,
3029 ) -> *mut PJ;
3030}
3031unsafe extern "C" {
3032 pub fn proj_create_conversion_miller_cylindrical(
3033 ctx: *mut PJ_CONTEXT,
3034 center_long: f64,
3035 false_easting: f64,
3036 false_northing: f64,
3037 ang_unit_name: *const ::std::os::raw::c_char,
3038 ang_unit_conv_factor: f64,
3039 linear_unit_name: *const ::std::os::raw::c_char,
3040 linear_unit_conv_factor: f64,
3041 ) -> *mut PJ;
3042}
3043unsafe extern "C" {
3044 pub fn proj_create_conversion_mercator_variant_a(
3045 ctx: *mut PJ_CONTEXT,
3046 center_lat: f64,
3047 center_long: f64,
3048 scale: f64,
3049 false_easting: f64,
3050 false_northing: f64,
3051 ang_unit_name: *const ::std::os::raw::c_char,
3052 ang_unit_conv_factor: f64,
3053 linear_unit_name: *const ::std::os::raw::c_char,
3054 linear_unit_conv_factor: f64,
3055 ) -> *mut PJ;
3056}
3057unsafe extern "C" {
3058 pub fn proj_create_conversion_mercator_variant_b(
3059 ctx: *mut PJ_CONTEXT,
3060 latitude_first_parallel: f64,
3061 center_long: f64,
3062 false_easting: f64,
3063 false_northing: f64,
3064 ang_unit_name: *const ::std::os::raw::c_char,
3065 ang_unit_conv_factor: f64,
3066 linear_unit_name: *const ::std::os::raw::c_char,
3067 linear_unit_conv_factor: f64,
3068 ) -> *mut PJ;
3069}
3070unsafe extern "C" {
3071 pub fn proj_create_conversion_popular_visualisation_pseudo_mercator(
3072 ctx: *mut PJ_CONTEXT,
3073 center_lat: f64,
3074 center_long: f64,
3075 false_easting: f64,
3076 false_northing: f64,
3077 ang_unit_name: *const ::std::os::raw::c_char,
3078 ang_unit_conv_factor: f64,
3079 linear_unit_name: *const ::std::os::raw::c_char,
3080 linear_unit_conv_factor: f64,
3081 ) -> *mut PJ;
3082}
3083unsafe extern "C" {
3084 pub fn proj_create_conversion_mollweide(
3085 ctx: *mut PJ_CONTEXT,
3086 center_long: f64,
3087 false_easting: f64,
3088 false_northing: f64,
3089 ang_unit_name: *const ::std::os::raw::c_char,
3090 ang_unit_conv_factor: f64,
3091 linear_unit_name: *const ::std::os::raw::c_char,
3092 linear_unit_conv_factor: f64,
3093 ) -> *mut PJ;
3094}
3095unsafe extern "C" {
3096 pub fn proj_create_conversion_new_zealand_mapping_grid(
3097 ctx: *mut PJ_CONTEXT,
3098 center_lat: f64,
3099 center_long: f64,
3100 false_easting: f64,
3101 false_northing: f64,
3102 ang_unit_name: *const ::std::os::raw::c_char,
3103 ang_unit_conv_factor: f64,
3104 linear_unit_name: *const ::std::os::raw::c_char,
3105 linear_unit_conv_factor: f64,
3106 ) -> *mut PJ;
3107}
3108unsafe extern "C" {
3109 pub fn proj_create_conversion_oblique_stereographic(
3110 ctx: *mut PJ_CONTEXT,
3111 center_lat: f64,
3112 center_long: f64,
3113 scale: f64,
3114 false_easting: f64,
3115 false_northing: f64,
3116 ang_unit_name: *const ::std::os::raw::c_char,
3117 ang_unit_conv_factor: f64,
3118 linear_unit_name: *const ::std::os::raw::c_char,
3119 linear_unit_conv_factor: f64,
3120 ) -> *mut PJ;
3121}
3122unsafe extern "C" {
3123 pub fn proj_create_conversion_orthographic(
3124 ctx: *mut PJ_CONTEXT,
3125 center_lat: f64,
3126 center_long: f64,
3127 false_easting: f64,
3128 false_northing: f64,
3129 ang_unit_name: *const ::std::os::raw::c_char,
3130 ang_unit_conv_factor: f64,
3131 linear_unit_name: *const ::std::os::raw::c_char,
3132 linear_unit_conv_factor: f64,
3133 ) -> *mut PJ;
3134}
3135unsafe extern "C" {
3136 pub fn proj_create_conversion_local_orthographic(
3137 ctx: *mut PJ_CONTEXT,
3138 center_lat: f64,
3139 center_long: f64,
3140 azimuth: f64,
3141 scale: f64,
3142 false_easting: f64,
3143 false_northing: f64,
3144 ang_unit_name: *const ::std::os::raw::c_char,
3145 ang_unit_conv_factor: f64,
3146 linear_unit_name: *const ::std::os::raw::c_char,
3147 linear_unit_conv_factor: f64,
3148 ) -> *mut PJ;
3149}
3150unsafe extern "C" {
3151 pub fn proj_create_conversion_american_polyconic(
3152 ctx: *mut PJ_CONTEXT,
3153 center_lat: f64,
3154 center_long: f64,
3155 false_easting: f64,
3156 false_northing: f64,
3157 ang_unit_name: *const ::std::os::raw::c_char,
3158 ang_unit_conv_factor: f64,
3159 linear_unit_name: *const ::std::os::raw::c_char,
3160 linear_unit_conv_factor: f64,
3161 ) -> *mut PJ;
3162}
3163unsafe extern "C" {
3164 pub fn proj_create_conversion_polar_stereographic_variant_a(
3165 ctx: *mut PJ_CONTEXT,
3166 center_lat: f64,
3167 center_long: f64,
3168 scale: f64,
3169 false_easting: f64,
3170 false_northing: f64,
3171 ang_unit_name: *const ::std::os::raw::c_char,
3172 ang_unit_conv_factor: f64,
3173 linear_unit_name: *const ::std::os::raw::c_char,
3174 linear_unit_conv_factor: f64,
3175 ) -> *mut PJ;
3176}
3177unsafe extern "C" {
3178 pub fn proj_create_conversion_polar_stereographic_variant_b(
3179 ctx: *mut PJ_CONTEXT,
3180 latitude_standard_parallel: f64,
3181 longitude_of_origin: f64,
3182 false_easting: f64,
3183 false_northing: f64,
3184 ang_unit_name: *const ::std::os::raw::c_char,
3185 ang_unit_conv_factor: f64,
3186 linear_unit_name: *const ::std::os::raw::c_char,
3187 linear_unit_conv_factor: f64,
3188 ) -> *mut PJ;
3189}
3190unsafe extern "C" {
3191 pub fn proj_create_conversion_robinson(
3192 ctx: *mut PJ_CONTEXT,
3193 center_long: f64,
3194 false_easting: f64,
3195 false_northing: f64,
3196 ang_unit_name: *const ::std::os::raw::c_char,
3197 ang_unit_conv_factor: f64,
3198 linear_unit_name: *const ::std::os::raw::c_char,
3199 linear_unit_conv_factor: f64,
3200 ) -> *mut PJ;
3201}
3202unsafe extern "C" {
3203 pub fn proj_create_conversion_sinusoidal(
3204 ctx: *mut PJ_CONTEXT,
3205 center_long: f64,
3206 false_easting: f64,
3207 false_northing: f64,
3208 ang_unit_name: *const ::std::os::raw::c_char,
3209 ang_unit_conv_factor: f64,
3210 linear_unit_name: *const ::std::os::raw::c_char,
3211 linear_unit_conv_factor: f64,
3212 ) -> *mut PJ;
3213}
3214unsafe extern "C" {
3215 pub fn proj_create_conversion_stereographic(
3216 ctx: *mut PJ_CONTEXT,
3217 center_lat: f64,
3218 center_long: f64,
3219 scale: f64,
3220 false_easting: f64,
3221 false_northing: f64,
3222 ang_unit_name: *const ::std::os::raw::c_char,
3223 ang_unit_conv_factor: f64,
3224 linear_unit_name: *const ::std::os::raw::c_char,
3225 linear_unit_conv_factor: f64,
3226 ) -> *mut PJ;
3227}
3228unsafe extern "C" {
3229 pub fn proj_create_conversion_van_der_grinten(
3230 ctx: *mut PJ_CONTEXT,
3231 center_long: f64,
3232 false_easting: f64,
3233 false_northing: f64,
3234 ang_unit_name: *const ::std::os::raw::c_char,
3235 ang_unit_conv_factor: f64,
3236 linear_unit_name: *const ::std::os::raw::c_char,
3237 linear_unit_conv_factor: f64,
3238 ) -> *mut PJ;
3239}
3240unsafe extern "C" {
3241 pub fn proj_create_conversion_wagner_i(
3242 ctx: *mut PJ_CONTEXT,
3243 center_long: f64,
3244 false_easting: f64,
3245 false_northing: f64,
3246 ang_unit_name: *const ::std::os::raw::c_char,
3247 ang_unit_conv_factor: f64,
3248 linear_unit_name: *const ::std::os::raw::c_char,
3249 linear_unit_conv_factor: f64,
3250 ) -> *mut PJ;
3251}
3252unsafe extern "C" {
3253 pub fn proj_create_conversion_wagner_ii(
3254 ctx: *mut PJ_CONTEXT,
3255 center_long: f64,
3256 false_easting: f64,
3257 false_northing: f64,
3258 ang_unit_name: *const ::std::os::raw::c_char,
3259 ang_unit_conv_factor: f64,
3260 linear_unit_name: *const ::std::os::raw::c_char,
3261 linear_unit_conv_factor: f64,
3262 ) -> *mut PJ;
3263}
3264unsafe extern "C" {
3265 pub fn proj_create_conversion_wagner_iii(
3266 ctx: *mut PJ_CONTEXT,
3267 latitude_true_scale: f64,
3268 center_long: f64,
3269 false_easting: f64,
3270 false_northing: f64,
3271 ang_unit_name: *const ::std::os::raw::c_char,
3272 ang_unit_conv_factor: f64,
3273 linear_unit_name: *const ::std::os::raw::c_char,
3274 linear_unit_conv_factor: f64,
3275 ) -> *mut PJ;
3276}
3277unsafe extern "C" {
3278 pub fn proj_create_conversion_wagner_iv(
3279 ctx: *mut PJ_CONTEXT,
3280 center_long: f64,
3281 false_easting: f64,
3282 false_northing: f64,
3283 ang_unit_name: *const ::std::os::raw::c_char,
3284 ang_unit_conv_factor: f64,
3285 linear_unit_name: *const ::std::os::raw::c_char,
3286 linear_unit_conv_factor: f64,
3287 ) -> *mut PJ;
3288}
3289unsafe extern "C" {
3290 pub fn proj_create_conversion_wagner_v(
3291 ctx: *mut PJ_CONTEXT,
3292 center_long: f64,
3293 false_easting: f64,
3294 false_northing: f64,
3295 ang_unit_name: *const ::std::os::raw::c_char,
3296 ang_unit_conv_factor: f64,
3297 linear_unit_name: *const ::std::os::raw::c_char,
3298 linear_unit_conv_factor: f64,
3299 ) -> *mut PJ;
3300}
3301unsafe extern "C" {
3302 pub fn proj_create_conversion_wagner_vi(
3303 ctx: *mut PJ_CONTEXT,
3304 center_long: f64,
3305 false_easting: f64,
3306 false_northing: f64,
3307 ang_unit_name: *const ::std::os::raw::c_char,
3308 ang_unit_conv_factor: f64,
3309 linear_unit_name: *const ::std::os::raw::c_char,
3310 linear_unit_conv_factor: f64,
3311 ) -> *mut PJ;
3312}
3313unsafe extern "C" {
3314 pub fn proj_create_conversion_wagner_vii(
3315 ctx: *mut PJ_CONTEXT,
3316 center_long: f64,
3317 false_easting: f64,
3318 false_northing: f64,
3319 ang_unit_name: *const ::std::os::raw::c_char,
3320 ang_unit_conv_factor: f64,
3321 linear_unit_name: *const ::std::os::raw::c_char,
3322 linear_unit_conv_factor: f64,
3323 ) -> *mut PJ;
3324}
3325unsafe extern "C" {
3326 pub fn proj_create_conversion_quadrilateralized_spherical_cube(
3327 ctx: *mut PJ_CONTEXT,
3328 center_lat: f64,
3329 center_long: f64,
3330 false_easting: f64,
3331 false_northing: f64,
3332 ang_unit_name: *const ::std::os::raw::c_char,
3333 ang_unit_conv_factor: f64,
3334 linear_unit_name: *const ::std::os::raw::c_char,
3335 linear_unit_conv_factor: f64,
3336 ) -> *mut PJ;
3337}
3338unsafe extern "C" {
3339 pub fn proj_create_conversion_spherical_cross_track_height(
3340 ctx: *mut PJ_CONTEXT,
3341 peg_point_lat: f64,
3342 peg_point_long: f64,
3343 peg_point_heading: f64,
3344 peg_point_height: f64,
3345 ang_unit_name: *const ::std::os::raw::c_char,
3346 ang_unit_conv_factor: f64,
3347 linear_unit_name: *const ::std::os::raw::c_char,
3348 linear_unit_conv_factor: f64,
3349 ) -> *mut PJ;
3350}
3351unsafe extern "C" {
3352 pub fn proj_create_conversion_equal_earth(
3353 ctx: *mut PJ_CONTEXT,
3354 center_long: f64,
3355 false_easting: f64,
3356 false_northing: f64,
3357 ang_unit_name: *const ::std::os::raw::c_char,
3358 ang_unit_conv_factor: f64,
3359 linear_unit_name: *const ::std::os::raw::c_char,
3360 linear_unit_conv_factor: f64,
3361 ) -> *mut PJ;
3362}
3363unsafe extern "C" {
3364 pub fn proj_create_conversion_vertical_perspective(
3365 ctx: *mut PJ_CONTEXT,
3366 topo_origin_lat: f64,
3367 topo_origin_long: f64,
3368 topo_origin_height: f64,
3369 view_point_height: f64,
3370 false_easting: f64,
3371 false_northing: f64,
3372 ang_unit_name: *const ::std::os::raw::c_char,
3373 ang_unit_conv_factor: f64,
3374 linear_unit_name: *const ::std::os::raw::c_char,
3375 linear_unit_conv_factor: f64,
3376 ) -> *mut PJ;
3377}
3378unsafe extern "C" {
3379 pub fn proj_create_conversion_pole_rotation_grib_convention(
3380 ctx: *mut PJ_CONTEXT,
3381 south_pole_lat_in_unrotated_crs: f64,
3382 south_pole_long_in_unrotated_crs: f64,
3383 axis_rotation: f64,
3384 ang_unit_name: *const ::std::os::raw::c_char,
3385 ang_unit_conv_factor: f64,
3386 ) -> *mut PJ;
3387}
3388unsafe extern "C" {
3389 pub fn proj_create_conversion_pole_rotation_netcdf_cf_convention(
3390 ctx: *mut PJ_CONTEXT,
3391 grid_north_pole_latitude: f64,
3392 grid_north_pole_longitude: f64,
3393 north_pole_grid_longitude: f64,
3394 ang_unit_name: *const ::std::os::raw::c_char,
3395 ang_unit_conv_factor: f64,
3396 ) -> *mut PJ;
3397}