1pub const PROJ_VERSION_MAJOR: u32 = 9;
7pub const PROJ_VERSION_MINOR: u32 = 6;
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 pub fn proj_trans_bounds_3D(
940 context: *mut PJ_CONTEXT,
941 P: *mut PJ,
942 direction: PJ_DIRECTION,
943 xmin: f64,
944 ymin: f64,
945 zmin: f64,
946 xmax: f64,
947 ymax: f64,
948 zmax: f64,
949 out_xmin: *mut f64,
950 out_ymin: *mut f64,
951 out_zmin: *mut f64,
952 out_xmax: *mut f64,
953 out_ymax: *mut f64,
954 out_zmax: *mut f64,
955 densify_pts: ::std::os::raw::c_int,
956 ) -> ::std::os::raw::c_int;
957}
958unsafe extern "C" {
959 #[doc = " @cond Doxygen_Suppress"]
960 pub fn proj_coord(x: f64, y: f64, z: f64, t: f64) -> PJ_COORD;
961}
962unsafe extern "C" {
963 pub fn proj_roundtrip(
964 P: *mut PJ,
965 direction: PJ_DIRECTION,
966 n: ::std::os::raw::c_int,
967 coord: *mut PJ_COORD,
968 ) -> f64;
969}
970unsafe extern "C" {
971 pub fn proj_lp_dist(P: *const PJ, a: PJ_COORD, b: PJ_COORD) -> f64;
972}
973unsafe extern "C" {
974 pub fn proj_lpz_dist(P: *const PJ, a: PJ_COORD, b: PJ_COORD) -> f64;
975}
976unsafe extern "C" {
977 pub fn proj_xy_dist(a: PJ_COORD, b: PJ_COORD) -> f64;
978}
979unsafe extern "C" {
980 pub fn proj_xyz_dist(a: PJ_COORD, b: PJ_COORD) -> f64;
981}
982unsafe extern "C" {
983 pub fn proj_geod(P: *const PJ, a: PJ_COORD, b: PJ_COORD) -> PJ_COORD;
984}
985unsafe extern "C" {
986 pub fn proj_context_errno(ctx: *mut PJ_CONTEXT) -> ::std::os::raw::c_int;
987}
988unsafe extern "C" {
989 pub fn proj_errno(P: *const PJ) -> ::std::os::raw::c_int;
990}
991unsafe extern "C" {
992 pub fn proj_errno_set(P: *const PJ, err: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
993}
994unsafe extern "C" {
995 pub fn proj_errno_reset(P: *const PJ) -> ::std::os::raw::c_int;
996}
997unsafe extern "C" {
998 pub fn proj_errno_restore(P: *const PJ, err: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
999}
1000unsafe extern "C" {
1001 pub fn proj_errno_string(err: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
1002}
1003unsafe extern "C" {
1004 pub fn proj_context_errno_string(
1005 ctx: *mut PJ_CONTEXT,
1006 err: ::std::os::raw::c_int,
1007 ) -> *const ::std::os::raw::c_char;
1008}
1009unsafe extern "C" {
1010 pub fn proj_log_level(ctx: *mut PJ_CONTEXT, log_level: PJ_LOG_LEVEL) -> PJ_LOG_LEVEL;
1011}
1012unsafe extern "C" {
1013 pub fn proj_log_func(
1014 ctx: *mut PJ_CONTEXT,
1015 app_data: *mut ::std::os::raw::c_void,
1016 logf: PJ_LOG_FUNCTION,
1017 );
1018}
1019unsafe extern "C" {
1020 pub fn proj_factors(P: *mut PJ, lp: PJ_COORD) -> PJ_FACTORS;
1021}
1022unsafe extern "C" {
1023 pub fn proj_info() -> PJ_INFO;
1024}
1025unsafe extern "C" {
1026 pub fn proj_pj_info(P: *mut PJ) -> PJ_PROJ_INFO;
1027}
1028unsafe extern "C" {
1029 pub fn proj_grid_info(gridname: *const ::std::os::raw::c_char) -> PJ_GRID_INFO;
1030}
1031unsafe extern "C" {
1032 pub fn proj_init_info(initname: *const ::std::os::raw::c_char) -> PJ_INIT_INFO;
1033}
1034unsafe extern "C" {
1035 pub fn proj_list_operations() -> *const PJ_OPERATIONS;
1036}
1037unsafe extern "C" {
1038 pub fn proj_list_ellps() -> *const PJ_ELLPS;
1039}
1040unsafe extern "C" {
1041 pub fn proj_list_units() -> *const PJ_UNITS;
1042}
1043unsafe extern "C" {
1044 pub fn proj_list_angular_units() -> *const PJ_UNITS;
1045}
1046unsafe extern "C" {
1047 pub fn proj_list_prime_meridians() -> *const PJ_PRIME_MERIDIANS;
1048}
1049unsafe extern "C" {
1050 pub fn proj_torad(angle_in_degrees: f64) -> f64;
1051}
1052unsafe extern "C" {
1053 pub fn proj_todeg(angle_in_radians: f64) -> f64;
1054}
1055unsafe extern "C" {
1056 pub fn proj_dmstor(
1057 is: *const ::std::os::raw::c_char,
1058 rs: *mut *mut ::std::os::raw::c_char,
1059 ) -> f64;
1060}
1061unsafe extern "C" {
1062 pub fn proj_rtodms(
1063 s: *mut ::std::os::raw::c_char,
1064 r: f64,
1065 pos: ::std::os::raw::c_int,
1066 neg: ::std::os::raw::c_int,
1067 ) -> *mut ::std::os::raw::c_char;
1068}
1069unsafe extern "C" {
1070 pub fn proj_rtodms2(
1071 s: *mut ::std::os::raw::c_char,
1072 sizeof_s: usize,
1073 r: f64,
1074 pos: ::std::os::raw::c_int,
1075 neg: ::std::os::raw::c_int,
1076 ) -> *mut ::std::os::raw::c_char;
1077}
1078unsafe extern "C" {
1079 pub fn proj_cleanup();
1080}
1081#[doc = " \\brief Type representing a NULL terminated list of NULL-terminate strings."]
1082pub type PROJ_STRING_LIST = *mut *mut ::std::os::raw::c_char;
1083#[doc = " \\ref WKT2_2019"]
1084pub const PJ_GUESSED_WKT_DIALECT_PJ_GUESSED_WKT2_2019: PJ_GUESSED_WKT_DIALECT = 0;
1085#[doc = " Deprecated alias for PJ_GUESSED_WKT2_2019"]
1086pub const PJ_GUESSED_WKT_DIALECT_PJ_GUESSED_WKT2_2018: PJ_GUESSED_WKT_DIALECT = 0;
1087#[doc = " \\ref WKT2_2015"]
1088pub const PJ_GUESSED_WKT_DIALECT_PJ_GUESSED_WKT2_2015: PJ_GUESSED_WKT_DIALECT = 1;
1089#[doc = " \\ref WKT1"]
1090pub const PJ_GUESSED_WKT_DIALECT_PJ_GUESSED_WKT1_GDAL: PJ_GUESSED_WKT_DIALECT = 2;
1091#[doc = " ESRI variant of WKT1"]
1092pub const PJ_GUESSED_WKT_DIALECT_PJ_GUESSED_WKT1_ESRI: PJ_GUESSED_WKT_DIALECT = 3;
1093#[doc = " Not WKT / unrecognized"]
1094pub const PJ_GUESSED_WKT_DIALECT_PJ_GUESSED_NOT_WKT: PJ_GUESSED_WKT_DIALECT = 4;
1095#[doc = " \\brief Guessed WKT \"dialect\"."]
1096pub type PJ_GUESSED_WKT_DIALECT = ::std::os::raw::c_uint;
1097pub const PJ_CATEGORY_PJ_CATEGORY_ELLIPSOID: PJ_CATEGORY = 0;
1098pub const PJ_CATEGORY_PJ_CATEGORY_PRIME_MERIDIAN: PJ_CATEGORY = 1;
1099pub const PJ_CATEGORY_PJ_CATEGORY_DATUM: PJ_CATEGORY = 2;
1100pub const PJ_CATEGORY_PJ_CATEGORY_CRS: PJ_CATEGORY = 3;
1101pub const PJ_CATEGORY_PJ_CATEGORY_COORDINATE_OPERATION: PJ_CATEGORY = 4;
1102pub const PJ_CATEGORY_PJ_CATEGORY_DATUM_ENSEMBLE: PJ_CATEGORY = 5;
1103#[doc = " \\brief Object category."]
1104pub type PJ_CATEGORY = ::std::os::raw::c_uint;
1105pub const PJ_TYPE_PJ_TYPE_UNKNOWN: PJ_TYPE = 0;
1106pub const PJ_TYPE_PJ_TYPE_ELLIPSOID: PJ_TYPE = 1;
1107pub const PJ_TYPE_PJ_TYPE_PRIME_MERIDIAN: PJ_TYPE = 2;
1108pub const PJ_TYPE_PJ_TYPE_GEODETIC_REFERENCE_FRAME: PJ_TYPE = 3;
1109pub const PJ_TYPE_PJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME: PJ_TYPE = 4;
1110pub const PJ_TYPE_PJ_TYPE_VERTICAL_REFERENCE_FRAME: PJ_TYPE = 5;
1111pub const PJ_TYPE_PJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME: PJ_TYPE = 6;
1112pub const PJ_TYPE_PJ_TYPE_DATUM_ENSEMBLE: PJ_TYPE = 7;
1113#[doc = " Abstract type, not returned by proj_get_type()"]
1114pub const PJ_TYPE_PJ_TYPE_CRS: PJ_TYPE = 8;
1115#[doc = " Abstract type, not returned by proj_get_type()"]
1116pub const PJ_TYPE_PJ_TYPE_GEODETIC_CRS: PJ_TYPE = 9;
1117#[doc = " Abstract type, not returned by proj_get_type()"]
1118pub const PJ_TYPE_PJ_TYPE_GEOCENTRIC_CRS: PJ_TYPE = 10;
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_GEOGRAPHIC_CRS: PJ_TYPE = 11;
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_GEOGRAPHIC_2D_CRS: PJ_TYPE = 12;
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_GEOGRAPHIC_3D_CRS: PJ_TYPE = 13;
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_VERTICAL_CRS: PJ_TYPE = 14;
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_PROJECTED_CRS: PJ_TYPE = 15;
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_COMPOUND_CRS: PJ_TYPE = 16;
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_TEMPORAL_CRS: PJ_TYPE = 17;
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_ENGINEERING_CRS: PJ_TYPE = 18;
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_BOUND_CRS: PJ_TYPE = 19;
1137#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1138pub const PJ_TYPE_PJ_TYPE_OTHER_CRS: PJ_TYPE = 20;
1139#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1140pub const PJ_TYPE_PJ_TYPE_CONVERSION: PJ_TYPE = 21;
1141#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1142pub const PJ_TYPE_PJ_TYPE_TRANSFORMATION: PJ_TYPE = 22;
1143#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1144pub const PJ_TYPE_PJ_TYPE_CONCATENATED_OPERATION: PJ_TYPE = 23;
1145#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1146pub const PJ_TYPE_PJ_TYPE_OTHER_COORDINATE_OPERATION: PJ_TYPE = 24;
1147#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1148pub const PJ_TYPE_PJ_TYPE_TEMPORAL_DATUM: PJ_TYPE = 25;
1149#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1150pub const PJ_TYPE_PJ_TYPE_ENGINEERING_DATUM: PJ_TYPE = 26;
1151#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1152pub const PJ_TYPE_PJ_TYPE_PARAMETRIC_DATUM: PJ_TYPE = 27;
1153#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1154pub const PJ_TYPE_PJ_TYPE_DERIVED_PROJECTED_CRS: PJ_TYPE = 28;
1155#[doc = " proj_get_type() will never return that type, but\n PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS."]
1156pub const PJ_TYPE_PJ_TYPE_COORDINATE_METADATA: PJ_TYPE = 29;
1157#[doc = " \\brief Object type."]
1158pub type PJ_TYPE = ::std::os::raw::c_uint;
1159#[doc = " All properties are identical."]
1160pub const PJ_COMPARISON_CRITERION_PJ_COMP_STRICT: PJ_COMPARISON_CRITERION = 0;
1161#[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."]
1162pub const PJ_COMPARISON_CRITERION_PJ_COMP_EQUIVALENT: PJ_COMPARISON_CRITERION = 1;
1163#[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"]
1164pub const PJ_COMPARISON_CRITERION_PJ_COMP_EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS:
1165 PJ_COMPARISON_CRITERION = 2;
1166#[doc = " Comparison criterion."]
1167pub type PJ_COMPARISON_CRITERION = ::std::os::raw::c_uint;
1168#[doc = " cf osgeo::proj::io::WKTFormatter::Convention::WKT2"]
1169pub const PJ_WKT_TYPE_PJ_WKT2_2015: PJ_WKT_TYPE = 0;
1170#[doc = " cf osgeo::proj::io::WKTFormatter::Convention::WKT2_SIMPLIFIED"]
1171pub const PJ_WKT_TYPE_PJ_WKT2_2015_SIMPLIFIED: PJ_WKT_TYPE = 1;
1172#[doc = " cf osgeo::proj::io::WKTFormatter::Convention::WKT2_2019"]
1173pub const PJ_WKT_TYPE_PJ_WKT2_2019: PJ_WKT_TYPE = 2;
1174#[doc = " Deprecated alias for PJ_WKT2_2019"]
1175pub const PJ_WKT_TYPE_PJ_WKT2_2018: PJ_WKT_TYPE = 2;
1176#[doc = " cf osgeo::proj::io::WKTFormatter::Convention::WKT2_2019_SIMPLIFIED"]
1177pub const PJ_WKT_TYPE_PJ_WKT2_2019_SIMPLIFIED: PJ_WKT_TYPE = 3;
1178#[doc = " Deprecated alias for PJ_WKT2_2019"]
1179pub const PJ_WKT_TYPE_PJ_WKT2_2018_SIMPLIFIED: PJ_WKT_TYPE = 3;
1180#[doc = " cf osgeo::proj::io::WKTFormatter::Convention::WKT1_GDAL"]
1181pub const PJ_WKT_TYPE_PJ_WKT1_GDAL: PJ_WKT_TYPE = 4;
1182#[doc = " cf osgeo::proj::io::WKTFormatter::Convention::WKT1_ESRI"]
1183pub const PJ_WKT_TYPE_PJ_WKT1_ESRI: PJ_WKT_TYPE = 5;
1184#[doc = " \\brief WKT version."]
1185pub type PJ_WKT_TYPE = ::std::os::raw::c_uint;
1186#[doc = " Ignore CRS extent"]
1187pub const PROJ_CRS_EXTENT_USE_PJ_CRS_EXTENT_NONE: PROJ_CRS_EXTENT_USE = 0;
1188#[doc = " Test coordinate operation extent against both CRS extent."]
1189pub const PROJ_CRS_EXTENT_USE_PJ_CRS_EXTENT_BOTH: PROJ_CRS_EXTENT_USE = 1;
1190#[doc = " Test coordinate operation extent against the intersection of both\nCRS extent."]
1191pub const PROJ_CRS_EXTENT_USE_PJ_CRS_EXTENT_INTERSECTION: PROJ_CRS_EXTENT_USE = 2;
1192#[doc = " Test coordinate operation against the smallest of both CRS extent."]
1193pub const PROJ_CRS_EXTENT_USE_PJ_CRS_EXTENT_SMALLEST: PROJ_CRS_EXTENT_USE = 3;
1194#[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."]
1195pub type PROJ_CRS_EXTENT_USE = ::std::os::raw::c_uint;
1196#[doc = " Grid availability is only used for sorting results. Operations\n where some grids are missing will be sorted last."]
1197pub const PROJ_GRID_AVAILABILITY_USE_PROJ_GRID_AVAILABILITY_USED_FOR_SORTING:
1198 PROJ_GRID_AVAILABILITY_USE = 0;
1199#[doc = " Completely discard an operation if a required grid is missing."]
1200pub const PROJ_GRID_AVAILABILITY_USE_PROJ_GRID_AVAILABILITY_DISCARD_OPERATION_IF_MISSING_GRID:
1201 PROJ_GRID_AVAILABILITY_USE = 1;
1202#[doc = " Ignore grid availability at all. Results will be presented as if\n all grids were available."]
1203pub const PROJ_GRID_AVAILABILITY_USE_PROJ_GRID_AVAILABILITY_IGNORED: PROJ_GRID_AVAILABILITY_USE = 2;
1204#[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."]
1205pub const PROJ_GRID_AVAILABILITY_USE_PROJ_GRID_AVAILABILITY_KNOWN_AVAILABLE:
1206 PROJ_GRID_AVAILABILITY_USE = 3;
1207#[doc = " Describe how grid availability is used."]
1208pub type PROJ_GRID_AVAILABILITY_USE = ::std::os::raw::c_uint;
1209#[doc = " cf osgeo::proj::io::PROJStringFormatter::Convention::PROJ_5"]
1210pub const PJ_PROJ_STRING_TYPE_PJ_PROJ_5: PJ_PROJ_STRING_TYPE = 0;
1211#[doc = " cf osgeo::proj::io::PROJStringFormatter::Convention::PROJ_4"]
1212pub const PJ_PROJ_STRING_TYPE_PJ_PROJ_4: PJ_PROJ_STRING_TYPE = 1;
1213#[doc = " \\brief PROJ string version."]
1214pub type PJ_PROJ_STRING_TYPE = ::std::os::raw::c_uint;
1215#[doc = " The area of validity of transforms should strictly contain the\n are of interest."]
1216pub const PROJ_SPATIAL_CRITERION_PROJ_SPATIAL_CRITERION_STRICT_CONTAINMENT: PROJ_SPATIAL_CRITERION =
1217 0;
1218#[doc = " The area of validity of transforms should at least intersect the\n area of interest."]
1219pub const PROJ_SPATIAL_CRITERION_PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION:
1220 PROJ_SPATIAL_CRITERION = 1;
1221#[doc = " Spatial criterion to restrict candidate operations."]
1222pub type PROJ_SPATIAL_CRITERION = ::std::os::raw::c_uint;
1223#[doc = " Always search for intermediate CRS."]
1224pub const PROJ_INTERMEDIATE_CRS_USE_PROJ_INTERMEDIATE_CRS_USE_ALWAYS: PROJ_INTERMEDIATE_CRS_USE = 0;
1225#[doc = " Only attempt looking for intermediate CRS if there is no direct\n transformation available."]
1226pub const PROJ_INTERMEDIATE_CRS_USE_PROJ_INTERMEDIATE_CRS_USE_IF_NO_DIRECT_TRANSFORMATION:
1227 PROJ_INTERMEDIATE_CRS_USE = 1;
1228#[doc = " Only attempt looking for intermediate CRS if there is no direct\n transformation available."]
1229pub const PROJ_INTERMEDIATE_CRS_USE_PROJ_INTERMEDIATE_CRS_USE_NEVER: PROJ_INTERMEDIATE_CRS_USE = 2;
1230#[doc = " Describe if and how intermediate CRS should be used"]
1231pub type PROJ_INTERMEDIATE_CRS_USE = ::std::os::raw::c_uint;
1232pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_UNKNOWN: PJ_COORDINATE_SYSTEM_TYPE = 0;
1233pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_CARTESIAN: PJ_COORDINATE_SYSTEM_TYPE = 1;
1234pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_ELLIPSOIDAL: PJ_COORDINATE_SYSTEM_TYPE = 2;
1235pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_VERTICAL: PJ_COORDINATE_SYSTEM_TYPE = 3;
1236pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_SPHERICAL: PJ_COORDINATE_SYSTEM_TYPE = 4;
1237pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_ORDINAL: PJ_COORDINATE_SYSTEM_TYPE = 5;
1238pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_PARAMETRIC: PJ_COORDINATE_SYSTEM_TYPE = 6;
1239pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_DATETIMETEMPORAL: PJ_COORDINATE_SYSTEM_TYPE = 7;
1240pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_TEMPORALCOUNT: PJ_COORDINATE_SYSTEM_TYPE = 8;
1241pub const PJ_COORDINATE_SYSTEM_TYPE_PJ_CS_TYPE_TEMPORALMEASURE: PJ_COORDINATE_SYSTEM_TYPE = 9;
1242#[doc = " Type of coordinate system."]
1243pub type PJ_COORDINATE_SYSTEM_TYPE = ::std::os::raw::c_uint;
1244#[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."]
1245#[repr(C)]
1246#[derive(Debug, Copy, Clone)]
1247pub struct PROJ_CRS_INFO {
1248 #[doc = " Authority name."]
1249 pub auth_name: *mut ::std::os::raw::c_char,
1250 #[doc = " Object code."]
1251 pub code: *mut ::std::os::raw::c_char,
1252 #[doc = " Object name."]
1253 pub name: *mut ::std::os::raw::c_char,
1254 #[doc = " Object type."]
1255 pub type_: PJ_TYPE,
1256 #[doc = " Whether the object is deprecated"]
1257 pub deprecated: ::std::os::raw::c_int,
1258 #[doc = " Whereas the west_lon_degree, south_lat_degree, east_lon_degree and\n north_lat_degree fields are valid."]
1259 pub bbox_valid: ::std::os::raw::c_int,
1260 #[doc = " Western-most longitude of the area of use, in degrees."]
1261 pub west_lon_degree: f64,
1262 #[doc = " Southern-most latitude of the area of use, in degrees."]
1263 pub south_lat_degree: f64,
1264 #[doc = " Eastern-most longitude of the area of use, in degrees."]
1265 pub east_lon_degree: f64,
1266 #[doc = " Northern-most latitude of the area of use, in degrees."]
1267 pub north_lat_degree: f64,
1268 #[doc = " Name of the area of use."]
1269 pub area_name: *mut ::std::os::raw::c_char,
1270 #[doc = " Name of the projection method for a projected CRS. Might be NULL even\nfor projected CRS in some cases."]
1271 pub projection_method_name: *mut ::std::os::raw::c_char,
1272 #[doc = " Name of the celestial body of the CRS (e.g. \"Earth\").\n @since 8.1"]
1273 pub celestial_body_name: *mut ::std::os::raw::c_char,
1274}
1275#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1276const _: () = {
1277 ["Size of PROJ_CRS_INFO"][::std::mem::size_of::<PROJ_CRS_INFO>() - 96usize];
1278 ["Alignment of PROJ_CRS_INFO"][::std::mem::align_of::<PROJ_CRS_INFO>() - 8usize];
1279 ["Offset of field: PROJ_CRS_INFO::auth_name"]
1280 [::std::mem::offset_of!(PROJ_CRS_INFO, auth_name) - 0usize];
1281 ["Offset of field: PROJ_CRS_INFO::code"][::std::mem::offset_of!(PROJ_CRS_INFO, code) - 8usize];
1282 ["Offset of field: PROJ_CRS_INFO::name"][::std::mem::offset_of!(PROJ_CRS_INFO, name) - 16usize];
1283 ["Offset of field: PROJ_CRS_INFO::type_"]
1284 [::std::mem::offset_of!(PROJ_CRS_INFO, type_) - 24usize];
1285 ["Offset of field: PROJ_CRS_INFO::deprecated"]
1286 [::std::mem::offset_of!(PROJ_CRS_INFO, deprecated) - 28usize];
1287 ["Offset of field: PROJ_CRS_INFO::bbox_valid"]
1288 [::std::mem::offset_of!(PROJ_CRS_INFO, bbox_valid) - 32usize];
1289 ["Offset of field: PROJ_CRS_INFO::west_lon_degree"]
1290 [::std::mem::offset_of!(PROJ_CRS_INFO, west_lon_degree) - 40usize];
1291 ["Offset of field: PROJ_CRS_INFO::south_lat_degree"]
1292 [::std::mem::offset_of!(PROJ_CRS_INFO, south_lat_degree) - 48usize];
1293 ["Offset of field: PROJ_CRS_INFO::east_lon_degree"]
1294 [::std::mem::offset_of!(PROJ_CRS_INFO, east_lon_degree) - 56usize];
1295 ["Offset of field: PROJ_CRS_INFO::north_lat_degree"]
1296 [::std::mem::offset_of!(PROJ_CRS_INFO, north_lat_degree) - 64usize];
1297 ["Offset of field: PROJ_CRS_INFO::area_name"]
1298 [::std::mem::offset_of!(PROJ_CRS_INFO, area_name) - 72usize];
1299 ["Offset of field: PROJ_CRS_INFO::projection_method_name"]
1300 [::std::mem::offset_of!(PROJ_CRS_INFO, projection_method_name) - 80usize];
1301 ["Offset of field: PROJ_CRS_INFO::celestial_body_name"]
1302 [::std::mem::offset_of!(PROJ_CRS_INFO, celestial_body_name) - 88usize];
1303};
1304#[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."]
1305#[repr(C)]
1306#[derive(Debug, Copy, Clone)]
1307pub struct PROJ_CRS_LIST_PARAMETERS {
1308 #[doc = " Array of allowed object types. Should be NULL if all types are allowed"]
1309 pub types: *const PJ_TYPE,
1310 #[doc = " Size of types. Should be 0 if all types are allowed"]
1311 pub typesCount: usize,
1312 #[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."]
1313 pub crs_area_of_use_contains_bbox: ::std::os::raw::c_int,
1314 #[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."]
1315 pub bbox_valid: ::std::os::raw::c_int,
1316 #[doc = " Western-most longitude of the area of use, in degrees."]
1317 pub west_lon_degree: f64,
1318 #[doc = " Southern-most latitude of the area of use, in degrees."]
1319 pub south_lat_degree: f64,
1320 #[doc = " Eastern-most longitude of the area of use, in degrees."]
1321 pub east_lon_degree: f64,
1322 #[doc = " Northern-most latitude of the area of use, in degrees."]
1323 pub north_lat_degree: f64,
1324 #[doc = " Whether deprecated objects are allowed. Default to FALSE."]
1325 pub allow_deprecated: ::std::os::raw::c_int,
1326 #[doc = " Celestial body of the CRS (e.g. \"Earth\"). The default value, NULL,\n means no restriction\n @since 8.1"]
1327 pub celestial_body_name: *const ::std::os::raw::c_char,
1328}
1329#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1330const _: () = {
1331 ["Size of PROJ_CRS_LIST_PARAMETERS"]
1332 [::std::mem::size_of::<PROJ_CRS_LIST_PARAMETERS>() - 72usize];
1333 ["Alignment of PROJ_CRS_LIST_PARAMETERS"]
1334 [::std::mem::align_of::<PROJ_CRS_LIST_PARAMETERS>() - 8usize];
1335 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::types"]
1336 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, types) - 0usize];
1337 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::typesCount"]
1338 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, typesCount) - 8usize];
1339 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::crs_area_of_use_contains_bbox"]
1340 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, crs_area_of_use_contains_bbox) - 16usize];
1341 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::bbox_valid"]
1342 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, bbox_valid) - 20usize];
1343 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::west_lon_degree"]
1344 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, west_lon_degree) - 24usize];
1345 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::south_lat_degree"]
1346 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, south_lat_degree) - 32usize];
1347 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::east_lon_degree"]
1348 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, east_lon_degree) - 40usize];
1349 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::north_lat_degree"]
1350 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, north_lat_degree) - 48usize];
1351 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::allow_deprecated"]
1352 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, allow_deprecated) - 56usize];
1353 ["Offset of field: PROJ_CRS_LIST_PARAMETERS::celestial_body_name"]
1354 [::std::mem::offset_of!(PROJ_CRS_LIST_PARAMETERS, celestial_body_name) - 64usize];
1355};
1356#[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"]
1357#[repr(C)]
1358#[derive(Debug, Copy, Clone)]
1359pub struct PROJ_UNIT_INFO {
1360 #[doc = " Authority name."]
1361 pub auth_name: *mut ::std::os::raw::c_char,
1362 #[doc = " Object code."]
1363 pub code: *mut ::std::os::raw::c_char,
1364 #[doc = " Object name. For example \"metre\", \"US survey foot\", etc."]
1365 pub name: *mut ::std::os::raw::c_char,
1366 #[doc = " Category of the unit: one of \"linear\", \"linear_per_time\", \"angular\",\n \"angular_per_time\", \"scale\", \"scale_per_time\" or \"time\""]
1367 pub category: *mut ::std::os::raw::c_char,
1368 #[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."]
1369 pub conv_factor: f64,
1370 #[doc = " PROJ short name, like \"m\", \"ft\", \"us-ft\", etc... Might be NULL"]
1371 pub proj_short_name: *mut ::std::os::raw::c_char,
1372 #[doc = " Whether the object is deprecated"]
1373 pub deprecated: ::std::os::raw::c_int,
1374}
1375#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1376const _: () = {
1377 ["Size of PROJ_UNIT_INFO"][::std::mem::size_of::<PROJ_UNIT_INFO>() - 56usize];
1378 ["Alignment of PROJ_UNIT_INFO"][::std::mem::align_of::<PROJ_UNIT_INFO>() - 8usize];
1379 ["Offset of field: PROJ_UNIT_INFO::auth_name"]
1380 [::std::mem::offset_of!(PROJ_UNIT_INFO, auth_name) - 0usize];
1381 ["Offset of field: PROJ_UNIT_INFO::code"]
1382 [::std::mem::offset_of!(PROJ_UNIT_INFO, code) - 8usize];
1383 ["Offset of field: PROJ_UNIT_INFO::name"]
1384 [::std::mem::offset_of!(PROJ_UNIT_INFO, name) - 16usize];
1385 ["Offset of field: PROJ_UNIT_INFO::category"]
1386 [::std::mem::offset_of!(PROJ_UNIT_INFO, category) - 24usize];
1387 ["Offset of field: PROJ_UNIT_INFO::conv_factor"]
1388 [::std::mem::offset_of!(PROJ_UNIT_INFO, conv_factor) - 32usize];
1389 ["Offset of field: PROJ_UNIT_INFO::proj_short_name"]
1390 [::std::mem::offset_of!(PROJ_UNIT_INFO, proj_short_name) - 40usize];
1391 ["Offset of field: PROJ_UNIT_INFO::deprecated"]
1392 [::std::mem::offset_of!(PROJ_UNIT_INFO, deprecated) - 48usize];
1393};
1394#[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"]
1395#[repr(C)]
1396#[derive(Debug, Copy, Clone)]
1397pub struct PROJ_CELESTIAL_BODY_INFO {
1398 #[doc = " Authority name."]
1399 pub auth_name: *mut ::std::os::raw::c_char,
1400 #[doc = " Object name. For example \"Earth\""]
1401 pub name: *mut ::std::os::raw::c_char,
1402}
1403#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1404const _: () = {
1405 ["Size of PROJ_CELESTIAL_BODY_INFO"]
1406 [::std::mem::size_of::<PROJ_CELESTIAL_BODY_INFO>() - 16usize];
1407 ["Alignment of PROJ_CELESTIAL_BODY_INFO"]
1408 [::std::mem::align_of::<PROJ_CELESTIAL_BODY_INFO>() - 8usize];
1409 ["Offset of field: PROJ_CELESTIAL_BODY_INFO::auth_name"]
1410 [::std::mem::offset_of!(PROJ_CELESTIAL_BODY_INFO, auth_name) - 0usize];
1411 ["Offset of field: PROJ_CELESTIAL_BODY_INFO::name"]
1412 [::std::mem::offset_of!(PROJ_CELESTIAL_BODY_INFO, name) - 8usize];
1413};
1414#[repr(C)]
1415#[derive(Debug, Copy, Clone)]
1416pub struct PJ_OBJ_LIST {
1417 _unused: [u8; 0],
1418}
1419unsafe extern "C" {
1420 #[doc = " @endcond"]
1421 pub fn proj_string_list_destroy(list: PROJ_STRING_LIST);
1422}
1423unsafe extern "C" {
1424 pub fn proj_context_set_autoclose_database(
1425 ctx: *mut PJ_CONTEXT,
1426 autoclose: ::std::os::raw::c_int,
1427 );
1428}
1429unsafe extern "C" {
1430 pub fn proj_context_set_database_path(
1431 ctx: *mut PJ_CONTEXT,
1432 dbPath: *const ::std::os::raw::c_char,
1433 auxDbPaths: *const *const ::std::os::raw::c_char,
1434 options: *const *const ::std::os::raw::c_char,
1435 ) -> ::std::os::raw::c_int;
1436}
1437unsafe extern "C" {
1438 pub fn proj_context_get_database_path(ctx: *mut PJ_CONTEXT) -> *const ::std::os::raw::c_char;
1439}
1440unsafe extern "C" {
1441 pub fn proj_context_get_database_metadata(
1442 ctx: *mut PJ_CONTEXT,
1443 key: *const ::std::os::raw::c_char,
1444 ) -> *const ::std::os::raw::c_char;
1445}
1446unsafe extern "C" {
1447 pub fn proj_context_get_database_structure(
1448 ctx: *mut PJ_CONTEXT,
1449 options: *const *const ::std::os::raw::c_char,
1450 ) -> PROJ_STRING_LIST;
1451}
1452unsafe extern "C" {
1453 pub fn proj_context_guess_wkt_dialect(
1454 ctx: *mut PJ_CONTEXT,
1455 wkt: *const ::std::os::raw::c_char,
1456 ) -> PJ_GUESSED_WKT_DIALECT;
1457}
1458unsafe extern "C" {
1459 pub fn proj_create_from_wkt(
1460 ctx: *mut PJ_CONTEXT,
1461 wkt: *const ::std::os::raw::c_char,
1462 options: *const *const ::std::os::raw::c_char,
1463 out_warnings: *mut PROJ_STRING_LIST,
1464 out_grammar_errors: *mut PROJ_STRING_LIST,
1465 ) -> *mut PJ;
1466}
1467unsafe extern "C" {
1468 pub fn proj_create_from_database(
1469 ctx: *mut PJ_CONTEXT,
1470 auth_name: *const ::std::os::raw::c_char,
1471 code: *const ::std::os::raw::c_char,
1472 category: PJ_CATEGORY,
1473 usePROJAlternativeGridNames: ::std::os::raw::c_int,
1474 options: *const *const ::std::os::raw::c_char,
1475 ) -> *mut PJ;
1476}
1477unsafe extern "C" {
1478 pub fn proj_uom_get_info_from_database(
1479 ctx: *mut PJ_CONTEXT,
1480 auth_name: *const ::std::os::raw::c_char,
1481 code: *const ::std::os::raw::c_char,
1482 out_name: *mut *const ::std::os::raw::c_char,
1483 out_conv_factor: *mut f64,
1484 out_category: *mut *const ::std::os::raw::c_char,
1485 ) -> ::std::os::raw::c_int;
1486}
1487unsafe extern "C" {
1488 pub fn proj_grid_get_info_from_database(
1489 ctx: *mut PJ_CONTEXT,
1490 grid_name: *const ::std::os::raw::c_char,
1491 out_full_name: *mut *const ::std::os::raw::c_char,
1492 out_package_name: *mut *const ::std::os::raw::c_char,
1493 out_url: *mut *const ::std::os::raw::c_char,
1494 out_direct_download: *mut ::std::os::raw::c_int,
1495 out_open_license: *mut ::std::os::raw::c_int,
1496 out_available: *mut ::std::os::raw::c_int,
1497 ) -> ::std::os::raw::c_int;
1498}
1499unsafe extern "C" {
1500 pub fn proj_clone(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
1501}
1502unsafe extern "C" {
1503 pub fn proj_create_from_name(
1504 ctx: *mut PJ_CONTEXT,
1505 auth_name: *const ::std::os::raw::c_char,
1506 searchedName: *const ::std::os::raw::c_char,
1507 types: *const PJ_TYPE,
1508 typesCount: usize,
1509 approximateMatch: ::std::os::raw::c_int,
1510 limitResultCount: usize,
1511 options: *const *const ::std::os::raw::c_char,
1512 ) -> *mut PJ_OBJ_LIST;
1513}
1514unsafe extern "C" {
1515 pub fn proj_get_type(obj: *const PJ) -> PJ_TYPE;
1516}
1517unsafe extern "C" {
1518 pub fn proj_is_deprecated(obj: *const PJ) -> ::std::os::raw::c_int;
1519}
1520unsafe extern "C" {
1521 pub fn proj_get_non_deprecated(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ_OBJ_LIST;
1522}
1523unsafe extern "C" {
1524 pub fn proj_is_equivalent_to(
1525 obj: *const PJ,
1526 other: *const PJ,
1527 criterion: PJ_COMPARISON_CRITERION,
1528 ) -> ::std::os::raw::c_int;
1529}
1530unsafe extern "C" {
1531 pub fn proj_is_equivalent_to_with_ctx(
1532 ctx: *mut PJ_CONTEXT,
1533 obj: *const PJ,
1534 other: *const PJ,
1535 criterion: PJ_COMPARISON_CRITERION,
1536 ) -> ::std::os::raw::c_int;
1537}
1538unsafe extern "C" {
1539 pub fn proj_is_crs(obj: *const PJ) -> ::std::os::raw::c_int;
1540}
1541unsafe extern "C" {
1542 pub fn proj_get_name(obj: *const PJ) -> *const ::std::os::raw::c_char;
1543}
1544unsafe extern "C" {
1545 pub fn proj_get_id_auth_name(
1546 obj: *const PJ,
1547 index: ::std::os::raw::c_int,
1548 ) -> *const ::std::os::raw::c_char;
1549}
1550unsafe extern "C" {
1551 pub fn proj_get_id_code(
1552 obj: *const PJ,
1553 index: ::std::os::raw::c_int,
1554 ) -> *const ::std::os::raw::c_char;
1555}
1556unsafe extern "C" {
1557 pub fn proj_get_remarks(obj: *const PJ) -> *const ::std::os::raw::c_char;
1558}
1559unsafe extern "C" {
1560 pub fn proj_get_domain_count(obj: *const PJ) -> ::std::os::raw::c_int;
1561}
1562unsafe extern "C" {
1563 pub fn proj_get_scope(obj: *const PJ) -> *const ::std::os::raw::c_char;
1564}
1565unsafe extern "C" {
1566 pub fn proj_get_scope_ex(
1567 obj: *const PJ,
1568 domainIdx: ::std::os::raw::c_int,
1569 ) -> *const ::std::os::raw::c_char;
1570}
1571unsafe extern "C" {
1572 pub fn proj_get_area_of_use(
1573 ctx: *mut PJ_CONTEXT,
1574 obj: *const PJ,
1575 out_west_lon_degree: *mut f64,
1576 out_south_lat_degree: *mut f64,
1577 out_east_lon_degree: *mut f64,
1578 out_north_lat_degree: *mut f64,
1579 out_area_name: *mut *const ::std::os::raw::c_char,
1580 ) -> ::std::os::raw::c_int;
1581}
1582unsafe extern "C" {
1583 pub fn proj_get_area_of_use_ex(
1584 ctx: *mut PJ_CONTEXT,
1585 obj: *const PJ,
1586 domainIdx: ::std::os::raw::c_int,
1587 out_west_lon_degree: *mut f64,
1588 out_south_lat_degree: *mut f64,
1589 out_east_lon_degree: *mut f64,
1590 out_north_lat_degree: *mut f64,
1591 out_area_name: *mut *const ::std::os::raw::c_char,
1592 ) -> ::std::os::raw::c_int;
1593}
1594unsafe extern "C" {
1595 pub fn proj_as_wkt(
1596 ctx: *mut PJ_CONTEXT,
1597 obj: *const PJ,
1598 type_: PJ_WKT_TYPE,
1599 options: *const *const ::std::os::raw::c_char,
1600 ) -> *const ::std::os::raw::c_char;
1601}
1602unsafe extern "C" {
1603 pub fn proj_as_proj_string(
1604 ctx: *mut PJ_CONTEXT,
1605 obj: *const PJ,
1606 type_: PJ_PROJ_STRING_TYPE,
1607 options: *const *const ::std::os::raw::c_char,
1608 ) -> *const ::std::os::raw::c_char;
1609}
1610unsafe extern "C" {
1611 pub fn proj_as_projjson(
1612 ctx: *mut PJ_CONTEXT,
1613 obj: *const PJ,
1614 options: *const *const ::std::os::raw::c_char,
1615 ) -> *const ::std::os::raw::c_char;
1616}
1617unsafe extern "C" {
1618 pub fn proj_get_source_crs(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
1619}
1620unsafe extern "C" {
1621 pub fn proj_get_target_crs(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
1622}
1623unsafe extern "C" {
1624 pub fn proj_identify(
1625 ctx: *mut PJ_CONTEXT,
1626 obj: *const PJ,
1627 auth_name: *const ::std::os::raw::c_char,
1628 options: *const *const ::std::os::raw::c_char,
1629 out_confidence: *mut *mut ::std::os::raw::c_int,
1630 ) -> *mut PJ_OBJ_LIST;
1631}
1632unsafe extern "C" {
1633 pub fn proj_get_geoid_models_from_database(
1634 ctx: *mut PJ_CONTEXT,
1635 auth_name: *const ::std::os::raw::c_char,
1636 code: *const ::std::os::raw::c_char,
1637 options: *const *const ::std::os::raw::c_char,
1638 ) -> PROJ_STRING_LIST;
1639}
1640unsafe extern "C" {
1641 pub fn proj_int_list_destroy(list: *mut ::std::os::raw::c_int);
1642}
1643unsafe extern "C" {
1644 pub fn proj_get_authorities_from_database(ctx: *mut PJ_CONTEXT) -> PROJ_STRING_LIST;
1645}
1646unsafe extern "C" {
1647 pub fn proj_get_codes_from_database(
1648 ctx: *mut PJ_CONTEXT,
1649 auth_name: *const ::std::os::raw::c_char,
1650 type_: PJ_TYPE,
1651 allow_deprecated: ::std::os::raw::c_int,
1652 ) -> PROJ_STRING_LIST;
1653}
1654unsafe extern "C" {
1655 pub fn proj_get_celestial_body_list_from_database(
1656 ctx: *mut PJ_CONTEXT,
1657 auth_name: *const ::std::os::raw::c_char,
1658 out_result_count: *mut ::std::os::raw::c_int,
1659 ) -> *mut *mut PROJ_CELESTIAL_BODY_INFO;
1660}
1661unsafe extern "C" {
1662 pub fn proj_celestial_body_list_destroy(list: *mut *mut PROJ_CELESTIAL_BODY_INFO);
1663}
1664unsafe extern "C" {
1665 pub fn proj_get_crs_list_parameters_create() -> *mut PROJ_CRS_LIST_PARAMETERS;
1666}
1667unsafe extern "C" {
1668 pub fn proj_get_crs_list_parameters_destroy(params: *mut PROJ_CRS_LIST_PARAMETERS);
1669}
1670unsafe extern "C" {
1671 pub fn proj_get_crs_info_list_from_database(
1672 ctx: *mut PJ_CONTEXT,
1673 auth_name: *const ::std::os::raw::c_char,
1674 params: *const PROJ_CRS_LIST_PARAMETERS,
1675 out_result_count: *mut ::std::os::raw::c_int,
1676 ) -> *mut *mut PROJ_CRS_INFO;
1677}
1678unsafe extern "C" {
1679 pub fn proj_crs_info_list_destroy(list: *mut *mut PROJ_CRS_INFO);
1680}
1681unsafe extern "C" {
1682 pub fn proj_get_units_from_database(
1683 ctx: *mut PJ_CONTEXT,
1684 auth_name: *const ::std::os::raw::c_char,
1685 category: *const ::std::os::raw::c_char,
1686 allow_deprecated: ::std::os::raw::c_int,
1687 out_result_count: *mut ::std::os::raw::c_int,
1688 ) -> *mut *mut PROJ_UNIT_INFO;
1689}
1690unsafe extern "C" {
1691 pub fn proj_unit_list_destroy(list: *mut *mut PROJ_UNIT_INFO);
1692}
1693#[repr(C)]
1694#[derive(Debug, Copy, Clone)]
1695pub struct PJ_INSERT_SESSION {
1696 _unused: [u8; 0],
1697}
1698unsafe extern "C" {
1699 #[doc = " @endcond"]
1700 pub fn proj_insert_object_session_create(ctx: *mut PJ_CONTEXT) -> *mut PJ_INSERT_SESSION;
1701}
1702unsafe extern "C" {
1703 pub fn proj_insert_object_session_destroy(
1704 ctx: *mut PJ_CONTEXT,
1705 session: *mut PJ_INSERT_SESSION,
1706 );
1707}
1708unsafe extern "C" {
1709 pub fn proj_get_insert_statements(
1710 ctx: *mut PJ_CONTEXT,
1711 session: *mut PJ_INSERT_SESSION,
1712 object: *const PJ,
1713 authority: *const ::std::os::raw::c_char,
1714 code: *const ::std::os::raw::c_char,
1715 numeric_codes: ::std::os::raw::c_int,
1716 allowed_authorities: *const *const ::std::os::raw::c_char,
1717 options: *const *const ::std::os::raw::c_char,
1718 ) -> PROJ_STRING_LIST;
1719}
1720unsafe extern "C" {
1721 pub fn proj_suggests_code_for(
1722 ctx: *mut PJ_CONTEXT,
1723 object: *const PJ,
1724 authority: *const ::std::os::raw::c_char,
1725 numeric_code: ::std::os::raw::c_int,
1726 options: *const *const ::std::os::raw::c_char,
1727 ) -> *mut ::std::os::raw::c_char;
1728}
1729unsafe extern "C" {
1730 pub fn proj_string_destroy(str_: *mut ::std::os::raw::c_char);
1731}
1732#[repr(C)]
1733#[derive(Debug, Copy, Clone)]
1734pub struct PJ_OPERATION_FACTORY_CONTEXT {
1735 _unused: [u8; 0],
1736}
1737unsafe extern "C" {
1738 #[doc = " @endcond"]
1739 pub fn proj_create_operation_factory_context(
1740 ctx: *mut PJ_CONTEXT,
1741 authority: *const ::std::os::raw::c_char,
1742 ) -> *mut PJ_OPERATION_FACTORY_CONTEXT;
1743}
1744unsafe extern "C" {
1745 pub fn proj_operation_factory_context_destroy(ctx: *mut PJ_OPERATION_FACTORY_CONTEXT);
1746}
1747unsafe extern "C" {
1748 pub fn proj_operation_factory_context_set_desired_accuracy(
1749 ctx: *mut PJ_CONTEXT,
1750 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1751 accuracy: f64,
1752 );
1753}
1754unsafe extern "C" {
1755 pub fn proj_operation_factory_context_set_area_of_interest(
1756 ctx: *mut PJ_CONTEXT,
1757 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1758 west_lon_degree: f64,
1759 south_lat_degree: f64,
1760 east_lon_degree: f64,
1761 north_lat_degree: f64,
1762 );
1763}
1764unsafe extern "C" {
1765 pub fn proj_operation_factory_context_set_area_of_interest_name(
1766 ctx: *mut PJ_CONTEXT,
1767 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1768 area_name: *const ::std::os::raw::c_char,
1769 );
1770}
1771unsafe extern "C" {
1772 pub fn proj_operation_factory_context_set_crs_extent_use(
1773 ctx: *mut PJ_CONTEXT,
1774 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1775 use_: PROJ_CRS_EXTENT_USE,
1776 );
1777}
1778unsafe extern "C" {
1779 pub fn proj_operation_factory_context_set_spatial_criterion(
1780 ctx: *mut PJ_CONTEXT,
1781 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1782 criterion: PROJ_SPATIAL_CRITERION,
1783 );
1784}
1785unsafe extern "C" {
1786 pub fn proj_operation_factory_context_set_grid_availability_use(
1787 ctx: *mut PJ_CONTEXT,
1788 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1789 use_: PROJ_GRID_AVAILABILITY_USE,
1790 );
1791}
1792unsafe extern "C" {
1793 pub fn proj_operation_factory_context_set_use_proj_alternative_grid_names(
1794 ctx: *mut PJ_CONTEXT,
1795 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1796 usePROJNames: ::std::os::raw::c_int,
1797 );
1798}
1799unsafe extern "C" {
1800 pub fn proj_operation_factory_context_set_allow_use_intermediate_crs(
1801 ctx: *mut PJ_CONTEXT,
1802 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1803 use_: PROJ_INTERMEDIATE_CRS_USE,
1804 );
1805}
1806unsafe extern "C" {
1807 pub fn proj_operation_factory_context_set_allowed_intermediate_crs(
1808 ctx: *mut PJ_CONTEXT,
1809 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1810 list_of_auth_name_codes: *const *const ::std::os::raw::c_char,
1811 );
1812}
1813unsafe extern "C" {
1814 pub fn proj_operation_factory_context_set_discard_superseded(
1815 ctx: *mut PJ_CONTEXT,
1816 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1817 discard: ::std::os::raw::c_int,
1818 );
1819}
1820unsafe extern "C" {
1821 pub fn proj_operation_factory_context_set_allow_ballpark_transformations(
1822 ctx: *mut PJ_CONTEXT,
1823 factory_ctx: *mut PJ_OPERATION_FACTORY_CONTEXT,
1824 allow: ::std::os::raw::c_int,
1825 );
1826}
1827unsafe extern "C" {
1828 pub fn proj_create_operations(
1829 ctx: *mut PJ_CONTEXT,
1830 source_crs: *const PJ,
1831 target_crs: *const PJ,
1832 operationContext: *const PJ_OPERATION_FACTORY_CONTEXT,
1833 ) -> *mut PJ_OBJ_LIST;
1834}
1835unsafe extern "C" {
1836 pub fn proj_list_get_count(result: *const PJ_OBJ_LIST) -> ::std::os::raw::c_int;
1837}
1838unsafe extern "C" {
1839 pub fn proj_list_get(
1840 ctx: *mut PJ_CONTEXT,
1841 result: *const PJ_OBJ_LIST,
1842 index: ::std::os::raw::c_int,
1843 ) -> *mut PJ;
1844}
1845unsafe extern "C" {
1846 pub fn proj_list_destroy(result: *mut PJ_OBJ_LIST);
1847}
1848unsafe extern "C" {
1849 pub fn proj_get_suggested_operation(
1850 ctx: *mut PJ_CONTEXT,
1851 operations: *mut PJ_OBJ_LIST,
1852 direction: PJ_DIRECTION,
1853 coord: PJ_COORD,
1854 ) -> ::std::os::raw::c_int;
1855}
1856unsafe extern "C" {
1857 pub fn proj_crs_is_derived(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> ::std::os::raw::c_int;
1858}
1859unsafe extern "C" {
1860 pub fn proj_crs_get_geodetic_crs(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1861}
1862unsafe extern "C" {
1863 pub fn proj_crs_get_horizontal_datum(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1864}
1865unsafe extern "C" {
1866 pub fn proj_crs_get_sub_crs(
1867 ctx: *mut PJ_CONTEXT,
1868 crs: *const PJ,
1869 index: ::std::os::raw::c_int,
1870 ) -> *mut PJ;
1871}
1872unsafe extern "C" {
1873 pub fn proj_crs_get_datum(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1874}
1875unsafe extern "C" {
1876 pub fn proj_crs_get_datum_ensemble(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1877}
1878unsafe extern "C" {
1879 pub fn proj_crs_get_datum_forced(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1880}
1881unsafe extern "C" {
1882 pub fn proj_crs_has_point_motion_operation(
1883 ctx: *mut PJ_CONTEXT,
1884 crs: *const PJ,
1885 ) -> ::std::os::raw::c_int;
1886}
1887unsafe extern "C" {
1888 pub fn proj_datum_ensemble_get_member_count(
1889 ctx: *mut PJ_CONTEXT,
1890 datum_ensemble: *const PJ,
1891 ) -> ::std::os::raw::c_int;
1892}
1893unsafe extern "C" {
1894 pub fn proj_datum_ensemble_get_accuracy(ctx: *mut PJ_CONTEXT, datum_ensemble: *const PJ)
1895 -> f64;
1896}
1897unsafe extern "C" {
1898 pub fn proj_datum_ensemble_get_member(
1899 ctx: *mut PJ_CONTEXT,
1900 datum_ensemble: *const PJ,
1901 member_index: ::std::os::raw::c_int,
1902 ) -> *mut PJ;
1903}
1904unsafe extern "C" {
1905 pub fn proj_dynamic_datum_get_frame_reference_epoch(
1906 ctx: *mut PJ_CONTEXT,
1907 datum: *const PJ,
1908 ) -> f64;
1909}
1910unsafe extern "C" {
1911 pub fn proj_crs_get_coordinate_system(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1912}
1913unsafe extern "C" {
1914 pub fn proj_cs_get_type(ctx: *mut PJ_CONTEXT, cs: *const PJ) -> PJ_COORDINATE_SYSTEM_TYPE;
1915}
1916unsafe extern "C" {
1917 pub fn proj_cs_get_axis_count(ctx: *mut PJ_CONTEXT, cs: *const PJ) -> ::std::os::raw::c_int;
1918}
1919unsafe extern "C" {
1920 pub fn proj_cs_get_axis_info(
1921 ctx: *mut PJ_CONTEXT,
1922 cs: *const PJ,
1923 index: ::std::os::raw::c_int,
1924 out_name: *mut *const ::std::os::raw::c_char,
1925 out_abbrev: *mut *const ::std::os::raw::c_char,
1926 out_direction: *mut *const ::std::os::raw::c_char,
1927 out_unit_conv_factor: *mut f64,
1928 out_unit_name: *mut *const ::std::os::raw::c_char,
1929 out_unit_auth_name: *mut *const ::std::os::raw::c_char,
1930 out_unit_code: *mut *const ::std::os::raw::c_char,
1931 ) -> ::std::os::raw::c_int;
1932}
1933unsafe extern "C" {
1934 pub fn proj_get_ellipsoid(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
1935}
1936unsafe extern "C" {
1937 pub fn proj_ellipsoid_get_parameters(
1938 ctx: *mut PJ_CONTEXT,
1939 ellipsoid: *const PJ,
1940 out_semi_major_metre: *mut f64,
1941 out_semi_minor_metre: *mut f64,
1942 out_is_semi_minor_computed: *mut ::std::os::raw::c_int,
1943 out_inv_flattening: *mut f64,
1944 ) -> ::std::os::raw::c_int;
1945}
1946unsafe extern "C" {
1947 pub fn proj_get_celestial_body_name(
1948 ctx: *mut PJ_CONTEXT,
1949 obj: *const PJ,
1950 ) -> *const ::std::os::raw::c_char;
1951}
1952unsafe extern "C" {
1953 pub fn proj_get_prime_meridian(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
1954}
1955unsafe extern "C" {
1956 pub fn proj_prime_meridian_get_parameters(
1957 ctx: *mut PJ_CONTEXT,
1958 prime_meridian: *const PJ,
1959 out_longitude: *mut f64,
1960 out_unit_conv_factor: *mut f64,
1961 out_unit_name: *mut *const ::std::os::raw::c_char,
1962 ) -> ::std::os::raw::c_int;
1963}
1964unsafe extern "C" {
1965 pub fn proj_crs_get_coordoperation(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> *mut PJ;
1966}
1967unsafe extern "C" {
1968 pub fn proj_coordoperation_get_method_info(
1969 ctx: *mut PJ_CONTEXT,
1970 coordoperation: *const PJ,
1971 out_method_name: *mut *const ::std::os::raw::c_char,
1972 out_method_auth_name: *mut *const ::std::os::raw::c_char,
1973 out_method_code: *mut *const ::std::os::raw::c_char,
1974 ) -> ::std::os::raw::c_int;
1975}
1976unsafe extern "C" {
1977 pub fn proj_coordoperation_is_instantiable(
1978 ctx: *mut PJ_CONTEXT,
1979 coordoperation: *const PJ,
1980 ) -> ::std::os::raw::c_int;
1981}
1982unsafe extern "C" {
1983 pub fn proj_coordoperation_has_ballpark_transformation(
1984 ctx: *mut PJ_CONTEXT,
1985 coordoperation: *const PJ,
1986 ) -> ::std::os::raw::c_int;
1987}
1988unsafe extern "C" {
1989 pub fn proj_coordoperation_requires_per_coordinate_input_time(
1990 ctx: *mut PJ_CONTEXT,
1991 coordoperation: *const PJ,
1992 ) -> ::std::os::raw::c_int;
1993}
1994unsafe extern "C" {
1995 pub fn proj_coordoperation_get_param_count(
1996 ctx: *mut PJ_CONTEXT,
1997 coordoperation: *const PJ,
1998 ) -> ::std::os::raw::c_int;
1999}
2000unsafe extern "C" {
2001 pub fn proj_coordoperation_get_param_index(
2002 ctx: *mut PJ_CONTEXT,
2003 coordoperation: *const PJ,
2004 name: *const ::std::os::raw::c_char,
2005 ) -> ::std::os::raw::c_int;
2006}
2007unsafe extern "C" {
2008 pub fn proj_coordoperation_get_param(
2009 ctx: *mut PJ_CONTEXT,
2010 coordoperation: *const PJ,
2011 index: ::std::os::raw::c_int,
2012 out_name: *mut *const ::std::os::raw::c_char,
2013 out_auth_name: *mut *const ::std::os::raw::c_char,
2014 out_code: *mut *const ::std::os::raw::c_char,
2015 out_value: *mut f64,
2016 out_value_string: *mut *const ::std::os::raw::c_char,
2017 out_unit_conv_factor: *mut f64,
2018 out_unit_name: *mut *const ::std::os::raw::c_char,
2019 out_unit_auth_name: *mut *const ::std::os::raw::c_char,
2020 out_unit_code: *mut *const ::std::os::raw::c_char,
2021 out_unit_category: *mut *const ::std::os::raw::c_char,
2022 ) -> ::std::os::raw::c_int;
2023}
2024unsafe extern "C" {
2025 pub fn proj_coordoperation_get_grid_used_count(
2026 ctx: *mut PJ_CONTEXT,
2027 coordoperation: *const PJ,
2028 ) -> ::std::os::raw::c_int;
2029}
2030unsafe extern "C" {
2031 pub fn proj_coordoperation_get_grid_used(
2032 ctx: *mut PJ_CONTEXT,
2033 coordoperation: *const PJ,
2034 index: ::std::os::raw::c_int,
2035 out_short_name: *mut *const ::std::os::raw::c_char,
2036 out_full_name: *mut *const ::std::os::raw::c_char,
2037 out_package_name: *mut *const ::std::os::raw::c_char,
2038 out_url: *mut *const ::std::os::raw::c_char,
2039 out_direct_download: *mut ::std::os::raw::c_int,
2040 out_open_license: *mut ::std::os::raw::c_int,
2041 out_available: *mut ::std::os::raw::c_int,
2042 ) -> ::std::os::raw::c_int;
2043}
2044unsafe extern "C" {
2045 pub fn proj_coordoperation_get_accuracy(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> f64;
2046}
2047unsafe extern "C" {
2048 pub fn proj_coordoperation_get_towgs84_values(
2049 ctx: *mut PJ_CONTEXT,
2050 coordoperation: *const PJ,
2051 out_values: *mut f64,
2052 value_count: ::std::os::raw::c_int,
2053 emit_error_if_incompatible: ::std::os::raw::c_int,
2054 ) -> ::std::os::raw::c_int;
2055}
2056unsafe extern "C" {
2057 pub fn proj_coordoperation_create_inverse(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> *mut PJ;
2058}
2059unsafe extern "C" {
2060 pub fn proj_concatoperation_get_step_count(
2061 ctx: *mut PJ_CONTEXT,
2062 concatoperation: *const PJ,
2063 ) -> ::std::os::raw::c_int;
2064}
2065unsafe extern "C" {
2066 pub fn proj_concatoperation_get_step(
2067 ctx: *mut PJ_CONTEXT,
2068 concatoperation: *const PJ,
2069 i_step: ::std::os::raw::c_int,
2070 ) -> *mut PJ;
2071}
2072unsafe extern "C" {
2073 pub fn proj_coordinate_metadata_create(
2074 ctx: *mut PJ_CONTEXT,
2075 crs: *const PJ,
2076 epoch: f64,
2077 ) -> *mut PJ;
2078}
2079unsafe extern "C" {
2080 pub fn proj_coordinate_metadata_get_epoch(ctx: *mut PJ_CONTEXT, obj: *const PJ) -> f64;
2081}
2082#[doc = " Angular unit of measure"]
2083pub const PJ_UNIT_TYPE_PJ_UT_ANGULAR: PJ_UNIT_TYPE = 0;
2084#[doc = " Linear unit of measure"]
2085pub const PJ_UNIT_TYPE_PJ_UT_LINEAR: PJ_UNIT_TYPE = 1;
2086#[doc = " Scale unit of measure"]
2087pub const PJ_UNIT_TYPE_PJ_UT_SCALE: PJ_UNIT_TYPE = 2;
2088#[doc = " Time unit of measure"]
2089pub const PJ_UNIT_TYPE_PJ_UT_TIME: PJ_UNIT_TYPE = 3;
2090#[doc = " Parametric unit of measure"]
2091pub const PJ_UNIT_TYPE_PJ_UT_PARAMETRIC: PJ_UNIT_TYPE = 4;
2092#[doc = " Type of unit of measure."]
2093pub type PJ_UNIT_TYPE = ::std::os::raw::c_uint;
2094#[doc = " \\brief Axis description."]
2095#[repr(C)]
2096#[derive(Debug, Copy, Clone)]
2097pub struct PJ_AXIS_DESCRIPTION {
2098 #[doc = " Axis name."]
2099 pub name: *mut ::std::os::raw::c_char,
2100 #[doc = " Axis abbreviation."]
2101 pub abbreviation: *mut ::std::os::raw::c_char,
2102 #[doc = " Axis direction."]
2103 pub direction: *mut ::std::os::raw::c_char,
2104 #[doc = " Axis unit name."]
2105 pub unit_name: *mut ::std::os::raw::c_char,
2106 #[doc = " Conversion factor to SI of the unit."]
2107 pub unit_conv_factor: f64,
2108 #[doc = " Type of unit"]
2109 pub unit_type: PJ_UNIT_TYPE,
2110}
2111#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2112const _: () = {
2113 ["Size of PJ_AXIS_DESCRIPTION"][::std::mem::size_of::<PJ_AXIS_DESCRIPTION>() - 48usize];
2114 ["Alignment of PJ_AXIS_DESCRIPTION"][::std::mem::align_of::<PJ_AXIS_DESCRIPTION>() - 8usize];
2115 ["Offset of field: PJ_AXIS_DESCRIPTION::name"]
2116 [::std::mem::offset_of!(PJ_AXIS_DESCRIPTION, name) - 0usize];
2117 ["Offset of field: PJ_AXIS_DESCRIPTION::abbreviation"]
2118 [::std::mem::offset_of!(PJ_AXIS_DESCRIPTION, abbreviation) - 8usize];
2119 ["Offset of field: PJ_AXIS_DESCRIPTION::direction"]
2120 [::std::mem::offset_of!(PJ_AXIS_DESCRIPTION, direction) - 16usize];
2121 ["Offset of field: PJ_AXIS_DESCRIPTION::unit_name"]
2122 [::std::mem::offset_of!(PJ_AXIS_DESCRIPTION, unit_name) - 24usize];
2123 ["Offset of field: PJ_AXIS_DESCRIPTION::unit_conv_factor"]
2124 [::std::mem::offset_of!(PJ_AXIS_DESCRIPTION, unit_conv_factor) - 32usize];
2125 ["Offset of field: PJ_AXIS_DESCRIPTION::unit_type"]
2126 [::std::mem::offset_of!(PJ_AXIS_DESCRIPTION, unit_type) - 40usize];
2127};
2128#[doc = " Easting-Norting"]
2129pub const PJ_CARTESIAN_CS_2D_TYPE_PJ_CART2D_EASTING_NORTHING: PJ_CARTESIAN_CS_2D_TYPE = 0;
2130#[doc = " Northing-Easting"]
2131pub const PJ_CARTESIAN_CS_2D_TYPE_PJ_CART2D_NORTHING_EASTING: PJ_CARTESIAN_CS_2D_TYPE = 1;
2132#[doc = " North Pole Easting/SOUTH-Norting/SOUTH"]
2133pub const PJ_CARTESIAN_CS_2D_TYPE_PJ_CART2D_NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH:
2134 PJ_CARTESIAN_CS_2D_TYPE = 2;
2135#[doc = " South Pole Easting/NORTH-Norting/NORTH"]
2136pub const PJ_CARTESIAN_CS_2D_TYPE_PJ_CART2D_SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH:
2137 PJ_CARTESIAN_CS_2D_TYPE = 3;
2138#[doc = " Westing-southing"]
2139pub const PJ_CARTESIAN_CS_2D_TYPE_PJ_CART2D_WESTING_SOUTHING: PJ_CARTESIAN_CS_2D_TYPE = 4;
2140#[doc = " Type of Cartesian 2D coordinate system."]
2141pub type PJ_CARTESIAN_CS_2D_TYPE = ::std::os::raw::c_uint;
2142#[doc = " Longitude-Latitude"]
2143pub const PJ_ELLIPSOIDAL_CS_2D_TYPE_PJ_ELLPS2D_LONGITUDE_LATITUDE: PJ_ELLIPSOIDAL_CS_2D_TYPE = 0;
2144#[doc = " Latitude-Longitude"]
2145pub const PJ_ELLIPSOIDAL_CS_2D_TYPE_PJ_ELLPS2D_LATITUDE_LONGITUDE: PJ_ELLIPSOIDAL_CS_2D_TYPE = 1;
2146#[doc = " Type of Ellipsoidal 2D coordinate system."]
2147pub type PJ_ELLIPSOIDAL_CS_2D_TYPE = ::std::os::raw::c_uint;
2148#[doc = " Longitude-Latitude-Height(up)"]
2149pub const PJ_ELLIPSOIDAL_CS_3D_TYPE_PJ_ELLPS3D_LONGITUDE_LATITUDE_HEIGHT:
2150 PJ_ELLIPSOIDAL_CS_3D_TYPE = 0;
2151#[doc = " Latitude-Longitude-Height(up)"]
2152pub const PJ_ELLIPSOIDAL_CS_3D_TYPE_PJ_ELLPS3D_LATITUDE_LONGITUDE_HEIGHT:
2153 PJ_ELLIPSOIDAL_CS_3D_TYPE = 1;
2154#[doc = " Type of Ellipsoidal 3D coordinate system."]
2155pub type PJ_ELLIPSOIDAL_CS_3D_TYPE = ::std::os::raw::c_uint;
2156#[doc = " \\brief Description of a parameter value for a Conversion."]
2157#[repr(C)]
2158#[derive(Debug, Copy, Clone)]
2159pub struct PJ_PARAM_DESCRIPTION {
2160 #[doc = " Parameter name."]
2161 pub name: *const ::std::os::raw::c_char,
2162 #[doc = " Parameter authority name."]
2163 pub auth_name: *const ::std::os::raw::c_char,
2164 #[doc = " Parameter code."]
2165 pub code: *const ::std::os::raw::c_char,
2166 #[doc = " Parameter value."]
2167 pub value: f64,
2168 #[doc = " Name of unit in which parameter value is expressed."]
2169 pub unit_name: *const ::std::os::raw::c_char,
2170 #[doc = " Conversion factor to SI of the unit."]
2171 pub unit_conv_factor: f64,
2172 #[doc = " Type of unit"]
2173 pub unit_type: PJ_UNIT_TYPE,
2174}
2175#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2176const _: () = {
2177 ["Size of PJ_PARAM_DESCRIPTION"][::std::mem::size_of::<PJ_PARAM_DESCRIPTION>() - 56usize];
2178 ["Alignment of PJ_PARAM_DESCRIPTION"][::std::mem::align_of::<PJ_PARAM_DESCRIPTION>() - 8usize];
2179 ["Offset of field: PJ_PARAM_DESCRIPTION::name"]
2180 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, name) - 0usize];
2181 ["Offset of field: PJ_PARAM_DESCRIPTION::auth_name"]
2182 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, auth_name) - 8usize];
2183 ["Offset of field: PJ_PARAM_DESCRIPTION::code"]
2184 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, code) - 16usize];
2185 ["Offset of field: PJ_PARAM_DESCRIPTION::value"]
2186 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, value) - 24usize];
2187 ["Offset of field: PJ_PARAM_DESCRIPTION::unit_name"]
2188 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, unit_name) - 32usize];
2189 ["Offset of field: PJ_PARAM_DESCRIPTION::unit_conv_factor"]
2190 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, unit_conv_factor) - 40usize];
2191 ["Offset of field: PJ_PARAM_DESCRIPTION::unit_type"]
2192 [::std::mem::offset_of!(PJ_PARAM_DESCRIPTION, unit_type) - 48usize];
2193};
2194unsafe extern "C" {
2195 #[doc = " \\defgroup iso19111_advanced_functions Binding in C of advanced methods from\n the C++ API\n @{"]
2196 pub fn proj_create_cs(
2197 ctx: *mut PJ_CONTEXT,
2198 type_: PJ_COORDINATE_SYSTEM_TYPE,
2199 axis_count: ::std::os::raw::c_int,
2200 axis: *const PJ_AXIS_DESCRIPTION,
2201 ) -> *mut PJ;
2202}
2203unsafe extern "C" {
2204 pub fn proj_create_cartesian_2D_cs(
2205 ctx: *mut PJ_CONTEXT,
2206 type_: PJ_CARTESIAN_CS_2D_TYPE,
2207 unit_name: *const ::std::os::raw::c_char,
2208 unit_conv_factor: f64,
2209 ) -> *mut PJ;
2210}
2211unsafe extern "C" {
2212 pub fn proj_create_ellipsoidal_2D_cs(
2213 ctx: *mut PJ_CONTEXT,
2214 type_: PJ_ELLIPSOIDAL_CS_2D_TYPE,
2215 unit_name: *const ::std::os::raw::c_char,
2216 unit_conv_factor: f64,
2217 ) -> *mut PJ;
2218}
2219unsafe extern "C" {
2220 pub fn proj_create_ellipsoidal_3D_cs(
2221 ctx: *mut PJ_CONTEXT,
2222 type_: PJ_ELLIPSOIDAL_CS_3D_TYPE,
2223 horizontal_angular_unit_name: *const ::std::os::raw::c_char,
2224 horizontal_angular_unit_conv_factor: f64,
2225 vertical_linear_unit_name: *const ::std::os::raw::c_char,
2226 vertical_linear_unit_conv_factor: f64,
2227 ) -> *mut PJ;
2228}
2229unsafe extern "C" {
2230 pub fn proj_query_geodetic_crs_from_datum(
2231 ctx: *mut PJ_CONTEXT,
2232 crs_auth_name: *const ::std::os::raw::c_char,
2233 datum_auth_name: *const ::std::os::raw::c_char,
2234 datum_code: *const ::std::os::raw::c_char,
2235 crs_type: *const ::std::os::raw::c_char,
2236 ) -> *mut PJ_OBJ_LIST;
2237}
2238unsafe extern "C" {
2239 pub fn proj_create_geographic_crs(
2240 ctx: *mut PJ_CONTEXT,
2241 crs_name: *const ::std::os::raw::c_char,
2242 datum_name: *const ::std::os::raw::c_char,
2243 ellps_name: *const ::std::os::raw::c_char,
2244 semi_major_metre: f64,
2245 inv_flattening: f64,
2246 prime_meridian_name: *const ::std::os::raw::c_char,
2247 prime_meridian_offset: f64,
2248 pm_angular_units: *const ::std::os::raw::c_char,
2249 pm_units_conv: f64,
2250 ellipsoidal_cs: *const PJ,
2251 ) -> *mut PJ;
2252}
2253unsafe extern "C" {
2254 pub fn proj_create_geographic_crs_from_datum(
2255 ctx: *mut PJ_CONTEXT,
2256 crs_name: *const ::std::os::raw::c_char,
2257 datum_or_datum_ensemble: *const PJ,
2258 ellipsoidal_cs: *const PJ,
2259 ) -> *mut PJ;
2260}
2261unsafe extern "C" {
2262 pub fn proj_create_geocentric_crs(
2263 ctx: *mut PJ_CONTEXT,
2264 crs_name: *const ::std::os::raw::c_char,
2265 datum_name: *const ::std::os::raw::c_char,
2266 ellps_name: *const ::std::os::raw::c_char,
2267 semi_major_metre: f64,
2268 inv_flattening: f64,
2269 prime_meridian_name: *const ::std::os::raw::c_char,
2270 prime_meridian_offset: f64,
2271 angular_units: *const ::std::os::raw::c_char,
2272 angular_units_conv: f64,
2273 linear_units: *const ::std::os::raw::c_char,
2274 linear_units_conv: f64,
2275 ) -> *mut PJ;
2276}
2277unsafe extern "C" {
2278 pub fn proj_create_geocentric_crs_from_datum(
2279 ctx: *mut PJ_CONTEXT,
2280 crs_name: *const ::std::os::raw::c_char,
2281 datum_or_datum_ensemble: *const PJ,
2282 linear_units: *const ::std::os::raw::c_char,
2283 linear_units_conv: f64,
2284 ) -> *mut PJ;
2285}
2286unsafe extern "C" {
2287 pub fn proj_create_derived_geographic_crs(
2288 ctx: *mut PJ_CONTEXT,
2289 crs_name: *const ::std::os::raw::c_char,
2290 base_geographic_crs: *const PJ,
2291 conversion: *const PJ,
2292 ellipsoidal_cs: *const PJ,
2293 ) -> *mut PJ;
2294}
2295unsafe extern "C" {
2296 pub fn proj_is_derived_crs(ctx: *mut PJ_CONTEXT, crs: *const PJ) -> ::std::os::raw::c_int;
2297}
2298unsafe extern "C" {
2299 pub fn proj_alter_name(
2300 ctx: *mut PJ_CONTEXT,
2301 obj: *const PJ,
2302 name: *const ::std::os::raw::c_char,
2303 ) -> *mut PJ;
2304}
2305unsafe extern "C" {
2306 pub fn proj_alter_id(
2307 ctx: *mut PJ_CONTEXT,
2308 obj: *const PJ,
2309 auth_name: *const ::std::os::raw::c_char,
2310 code: *const ::std::os::raw::c_char,
2311 ) -> *mut PJ;
2312}
2313unsafe extern "C" {
2314 pub fn proj_crs_alter_geodetic_crs(
2315 ctx: *mut PJ_CONTEXT,
2316 obj: *const PJ,
2317 new_geod_crs: *const PJ,
2318 ) -> *mut PJ;
2319}
2320unsafe extern "C" {
2321 pub fn proj_crs_alter_cs_angular_unit(
2322 ctx: *mut PJ_CONTEXT,
2323 obj: *const PJ,
2324 angular_units: *const ::std::os::raw::c_char,
2325 angular_units_conv: f64,
2326 unit_auth_name: *const ::std::os::raw::c_char,
2327 unit_code: *const ::std::os::raw::c_char,
2328 ) -> *mut PJ;
2329}
2330unsafe extern "C" {
2331 pub fn proj_crs_alter_cs_linear_unit(
2332 ctx: *mut PJ_CONTEXT,
2333 obj: *const PJ,
2334 linear_units: *const ::std::os::raw::c_char,
2335 linear_units_conv: f64,
2336 unit_auth_name: *const ::std::os::raw::c_char,
2337 unit_code: *const ::std::os::raw::c_char,
2338 ) -> *mut PJ;
2339}
2340unsafe extern "C" {
2341 pub fn proj_crs_alter_parameters_linear_unit(
2342 ctx: *mut PJ_CONTEXT,
2343 obj: *const PJ,
2344 linear_units: *const ::std::os::raw::c_char,
2345 linear_units_conv: f64,
2346 unit_auth_name: *const ::std::os::raw::c_char,
2347 unit_code: *const ::std::os::raw::c_char,
2348 convert_to_new_unit: ::std::os::raw::c_int,
2349 ) -> *mut PJ;
2350}
2351unsafe extern "C" {
2352 pub fn proj_crs_promote_to_3D(
2353 ctx: *mut PJ_CONTEXT,
2354 crs_3D_name: *const ::std::os::raw::c_char,
2355 crs_2D: *const PJ,
2356 ) -> *mut PJ;
2357}
2358unsafe extern "C" {
2359 pub fn proj_crs_create_projected_3D_crs_from_2D(
2360 ctx: *mut PJ_CONTEXT,
2361 crs_name: *const ::std::os::raw::c_char,
2362 projected_2D_crs: *const PJ,
2363 geog_3D_crs: *const PJ,
2364 ) -> *mut PJ;
2365}
2366unsafe extern "C" {
2367 pub fn proj_crs_demote_to_2D(
2368 ctx: *mut PJ_CONTEXT,
2369 crs_2D_name: *const ::std::os::raw::c_char,
2370 crs_3D: *const PJ,
2371 ) -> *mut PJ;
2372}
2373unsafe extern "C" {
2374 pub fn proj_create_engineering_crs(
2375 ctx: *mut PJ_CONTEXT,
2376 crsName: *const ::std::os::raw::c_char,
2377 ) -> *mut PJ;
2378}
2379unsafe extern "C" {
2380 pub fn proj_create_vertical_crs(
2381 ctx: *mut PJ_CONTEXT,
2382 crs_name: *const ::std::os::raw::c_char,
2383 datum_name: *const ::std::os::raw::c_char,
2384 linear_units: *const ::std::os::raw::c_char,
2385 linear_units_conv: f64,
2386 ) -> *mut PJ;
2387}
2388unsafe extern "C" {
2389 pub fn proj_create_vertical_crs_ex(
2390 ctx: *mut PJ_CONTEXT,
2391 crs_name: *const ::std::os::raw::c_char,
2392 datum_name: *const ::std::os::raw::c_char,
2393 datum_auth_name: *const ::std::os::raw::c_char,
2394 datum_code: *const ::std::os::raw::c_char,
2395 linear_units: *const ::std::os::raw::c_char,
2396 linear_units_conv: f64,
2397 geoid_model_name: *const ::std::os::raw::c_char,
2398 geoid_model_auth_name: *const ::std::os::raw::c_char,
2399 geoid_model_code: *const ::std::os::raw::c_char,
2400 geoid_geog_crs: *const PJ,
2401 options: *const *const ::std::os::raw::c_char,
2402 ) -> *mut PJ;
2403}
2404unsafe extern "C" {
2405 pub fn proj_create_compound_crs(
2406 ctx: *mut PJ_CONTEXT,
2407 crs_name: *const ::std::os::raw::c_char,
2408 horiz_crs: *const PJ,
2409 vert_crs: *const PJ,
2410 ) -> *mut PJ;
2411}
2412unsafe extern "C" {
2413 pub fn proj_create_conversion(
2414 ctx: *mut PJ_CONTEXT,
2415 name: *const ::std::os::raw::c_char,
2416 auth_name: *const ::std::os::raw::c_char,
2417 code: *const ::std::os::raw::c_char,
2418 method_name: *const ::std::os::raw::c_char,
2419 method_auth_name: *const ::std::os::raw::c_char,
2420 method_code: *const ::std::os::raw::c_char,
2421 param_count: ::std::os::raw::c_int,
2422 params: *const PJ_PARAM_DESCRIPTION,
2423 ) -> *mut PJ;
2424}
2425unsafe extern "C" {
2426 pub fn proj_create_transformation(
2427 ctx: *mut PJ_CONTEXT,
2428 name: *const ::std::os::raw::c_char,
2429 auth_name: *const ::std::os::raw::c_char,
2430 code: *const ::std::os::raw::c_char,
2431 source_crs: *const PJ,
2432 target_crs: *const PJ,
2433 interpolation_crs: *const PJ,
2434 method_name: *const ::std::os::raw::c_char,
2435 method_auth_name: *const ::std::os::raw::c_char,
2436 method_code: *const ::std::os::raw::c_char,
2437 param_count: ::std::os::raw::c_int,
2438 params: *const PJ_PARAM_DESCRIPTION,
2439 accuracy: f64,
2440 ) -> *mut PJ;
2441}
2442unsafe extern "C" {
2443 pub fn proj_convert_conversion_to_other_method(
2444 ctx: *mut PJ_CONTEXT,
2445 conversion: *const PJ,
2446 new_method_epsg_code: ::std::os::raw::c_int,
2447 new_method_name: *const ::std::os::raw::c_char,
2448 ) -> *mut PJ;
2449}
2450unsafe extern "C" {
2451 pub fn proj_create_projected_crs(
2452 ctx: *mut PJ_CONTEXT,
2453 crs_name: *const ::std::os::raw::c_char,
2454 geodetic_crs: *const PJ,
2455 conversion: *const PJ,
2456 coordinate_system: *const PJ,
2457 ) -> *mut PJ;
2458}
2459unsafe extern "C" {
2460 pub fn proj_crs_create_bound_crs(
2461 ctx: *mut PJ_CONTEXT,
2462 base_crs: *const PJ,
2463 hub_crs: *const PJ,
2464 transformation: *const PJ,
2465 ) -> *mut PJ;
2466}
2467unsafe extern "C" {
2468 pub fn proj_crs_create_bound_crs_to_WGS84(
2469 ctx: *mut PJ_CONTEXT,
2470 crs: *const PJ,
2471 options: *const *const ::std::os::raw::c_char,
2472 ) -> *mut PJ;
2473}
2474unsafe extern "C" {
2475 pub fn proj_crs_create_bound_vertical_crs(
2476 ctx: *mut PJ_CONTEXT,
2477 vert_crs: *const PJ,
2478 hub_geographic_3D_crs: *const PJ,
2479 grid_name: *const ::std::os::raw::c_char,
2480 ) -> *mut PJ;
2481}
2482unsafe extern "C" {
2483 pub fn proj_create_conversion_utm(
2484 ctx: *mut PJ_CONTEXT,
2485 zone: ::std::os::raw::c_int,
2486 north: ::std::os::raw::c_int,
2487 ) -> *mut PJ;
2488}
2489unsafe extern "C" {
2490 pub fn proj_create_conversion_transverse_mercator(
2491 ctx: *mut PJ_CONTEXT,
2492 center_lat: f64,
2493 center_long: f64,
2494 scale: f64,
2495 false_easting: f64,
2496 false_northing: f64,
2497 ang_unit_name: *const ::std::os::raw::c_char,
2498 ang_unit_conv_factor: f64,
2499 linear_unit_name: *const ::std::os::raw::c_char,
2500 linear_unit_conv_factor: f64,
2501 ) -> *mut PJ;
2502}
2503unsafe extern "C" {
2504 pub fn proj_create_conversion_gauss_schreiber_transverse_mercator(
2505 ctx: *mut PJ_CONTEXT,
2506 center_lat: f64,
2507 center_long: f64,
2508 scale: f64,
2509 false_easting: f64,
2510 false_northing: f64,
2511 ang_unit_name: *const ::std::os::raw::c_char,
2512 ang_unit_conv_factor: f64,
2513 linear_unit_name: *const ::std::os::raw::c_char,
2514 linear_unit_conv_factor: f64,
2515 ) -> *mut PJ;
2516}
2517unsafe extern "C" {
2518 pub fn proj_create_conversion_transverse_mercator_south_oriented(
2519 ctx: *mut PJ_CONTEXT,
2520 center_lat: f64,
2521 center_long: f64,
2522 scale: f64,
2523 false_easting: f64,
2524 false_northing: f64,
2525 ang_unit_name: *const ::std::os::raw::c_char,
2526 ang_unit_conv_factor: f64,
2527 linear_unit_name: *const ::std::os::raw::c_char,
2528 linear_unit_conv_factor: f64,
2529 ) -> *mut PJ;
2530}
2531unsafe extern "C" {
2532 pub fn proj_create_conversion_two_point_equidistant(
2533 ctx: *mut PJ_CONTEXT,
2534 latitude_first_point: f64,
2535 longitude_first_point: f64,
2536 latitude_second_point: f64,
2537 longitude_secon_point: f64,
2538 false_easting: f64,
2539 false_northing: f64,
2540 ang_unit_name: *const ::std::os::raw::c_char,
2541 ang_unit_conv_factor: f64,
2542 linear_unit_name: *const ::std::os::raw::c_char,
2543 linear_unit_conv_factor: f64,
2544 ) -> *mut PJ;
2545}
2546unsafe extern "C" {
2547 pub fn proj_create_conversion_tunisia_mapping_grid(
2548 ctx: *mut PJ_CONTEXT,
2549 center_lat: f64,
2550 center_long: f64,
2551 false_easting: f64,
2552 false_northing: f64,
2553 ang_unit_name: *const ::std::os::raw::c_char,
2554 ang_unit_conv_factor: f64,
2555 linear_unit_name: *const ::std::os::raw::c_char,
2556 linear_unit_conv_factor: f64,
2557 ) -> *mut PJ;
2558}
2559unsafe extern "C" {
2560 pub fn proj_create_conversion_tunisia_mining_grid(
2561 ctx: *mut PJ_CONTEXT,
2562 center_lat: f64,
2563 center_long: f64,
2564 false_easting: f64,
2565 false_northing: f64,
2566 ang_unit_name: *const ::std::os::raw::c_char,
2567 ang_unit_conv_factor: f64,
2568 linear_unit_name: *const ::std::os::raw::c_char,
2569 linear_unit_conv_factor: f64,
2570 ) -> *mut PJ;
2571}
2572unsafe extern "C" {
2573 pub fn proj_create_conversion_albers_equal_area(
2574 ctx: *mut PJ_CONTEXT,
2575 latitude_false_origin: f64,
2576 longitude_false_origin: f64,
2577 latitude_first_parallel: f64,
2578 latitude_second_parallel: f64,
2579 easting_false_origin: f64,
2580 northing_false_origin: f64,
2581 ang_unit_name: *const ::std::os::raw::c_char,
2582 ang_unit_conv_factor: f64,
2583 linear_unit_name: *const ::std::os::raw::c_char,
2584 linear_unit_conv_factor: f64,
2585 ) -> *mut PJ;
2586}
2587unsafe extern "C" {
2588 pub fn proj_create_conversion_lambert_conic_conformal_1sp(
2589 ctx: *mut PJ_CONTEXT,
2590 center_lat: f64,
2591 center_long: f64,
2592 scale: f64,
2593 false_easting: f64,
2594 false_northing: f64,
2595 ang_unit_name: *const ::std::os::raw::c_char,
2596 ang_unit_conv_factor: f64,
2597 linear_unit_name: *const ::std::os::raw::c_char,
2598 linear_unit_conv_factor: f64,
2599 ) -> *mut PJ;
2600}
2601unsafe extern "C" {
2602 pub fn proj_create_conversion_lambert_conic_conformal_1sp_variant_b(
2603 ctx: *mut PJ_CONTEXT,
2604 latitude_nat_origin: f64,
2605 scale: f64,
2606 latitude_false_origin: f64,
2607 longitude_false_origin: f64,
2608 easting_false_origin: f64,
2609 northing_false_origin: f64,
2610 ang_unit_name: *const ::std::os::raw::c_char,
2611 ang_unit_conv_factor: f64,
2612 linear_unit_name: *const ::std::os::raw::c_char,
2613 linear_unit_conv_factor: f64,
2614 ) -> *mut PJ;
2615}
2616unsafe extern "C" {
2617 pub fn proj_create_conversion_lambert_conic_conformal_2sp(
2618 ctx: *mut PJ_CONTEXT,
2619 latitude_false_origin: f64,
2620 longitude_false_origin: f64,
2621 latitude_first_parallel: f64,
2622 latitude_second_parallel: f64,
2623 easting_false_origin: f64,
2624 northing_false_origin: f64,
2625 ang_unit_name: *const ::std::os::raw::c_char,
2626 ang_unit_conv_factor: f64,
2627 linear_unit_name: *const ::std::os::raw::c_char,
2628 linear_unit_conv_factor: f64,
2629 ) -> *mut PJ;
2630}
2631unsafe extern "C" {
2632 pub fn proj_create_conversion_lambert_conic_conformal_2sp_michigan(
2633 ctx: *mut PJ_CONTEXT,
2634 latitude_false_origin: f64,
2635 longitude_false_origin: f64,
2636 latitude_first_parallel: f64,
2637 latitude_second_parallel: f64,
2638 easting_false_origin: f64,
2639 northing_false_origin: f64,
2640 ellipsoid_scaling_factor: f64,
2641 ang_unit_name: *const ::std::os::raw::c_char,
2642 ang_unit_conv_factor: f64,
2643 linear_unit_name: *const ::std::os::raw::c_char,
2644 linear_unit_conv_factor: f64,
2645 ) -> *mut PJ;
2646}
2647unsafe extern "C" {
2648 pub fn proj_create_conversion_lambert_conic_conformal_2sp_belgium(
2649 ctx: *mut PJ_CONTEXT,
2650 latitude_false_origin: f64,
2651 longitude_false_origin: f64,
2652 latitude_first_parallel: f64,
2653 latitude_second_parallel: f64,
2654 easting_false_origin: f64,
2655 northing_false_origin: f64,
2656 ang_unit_name: *const ::std::os::raw::c_char,
2657 ang_unit_conv_factor: f64,
2658 linear_unit_name: *const ::std::os::raw::c_char,
2659 linear_unit_conv_factor: f64,
2660 ) -> *mut PJ;
2661}
2662unsafe extern "C" {
2663 pub fn proj_create_conversion_azimuthal_equidistant(
2664 ctx: *mut PJ_CONTEXT,
2665 latitude_nat_origin: f64,
2666 longitude_nat_origin: f64,
2667 false_easting: f64,
2668 false_northing: f64,
2669 ang_unit_name: *const ::std::os::raw::c_char,
2670 ang_unit_conv_factor: f64,
2671 linear_unit_name: *const ::std::os::raw::c_char,
2672 linear_unit_conv_factor: f64,
2673 ) -> *mut PJ;
2674}
2675unsafe extern "C" {
2676 pub fn proj_create_conversion_guam_projection(
2677 ctx: *mut PJ_CONTEXT,
2678 latitude_nat_origin: f64,
2679 longitude_nat_origin: f64,
2680 false_easting: f64,
2681 false_northing: f64,
2682 ang_unit_name: *const ::std::os::raw::c_char,
2683 ang_unit_conv_factor: f64,
2684 linear_unit_name: *const ::std::os::raw::c_char,
2685 linear_unit_conv_factor: f64,
2686 ) -> *mut PJ;
2687}
2688unsafe extern "C" {
2689 pub fn proj_create_conversion_bonne(
2690 ctx: *mut PJ_CONTEXT,
2691 latitude_nat_origin: f64,
2692 longitude_nat_origin: f64,
2693 false_easting: f64,
2694 false_northing: f64,
2695 ang_unit_name: *const ::std::os::raw::c_char,
2696 ang_unit_conv_factor: f64,
2697 linear_unit_name: *const ::std::os::raw::c_char,
2698 linear_unit_conv_factor: f64,
2699 ) -> *mut PJ;
2700}
2701unsafe extern "C" {
2702 pub fn proj_create_conversion_lambert_cylindrical_equal_area_spherical(
2703 ctx: *mut PJ_CONTEXT,
2704 latitude_first_parallel: f64,
2705 longitude_nat_origin: f64,
2706 false_easting: f64,
2707 false_northing: f64,
2708 ang_unit_name: *const ::std::os::raw::c_char,
2709 ang_unit_conv_factor: f64,
2710 linear_unit_name: *const ::std::os::raw::c_char,
2711 linear_unit_conv_factor: f64,
2712 ) -> *mut PJ;
2713}
2714unsafe extern "C" {
2715 pub fn proj_create_conversion_lambert_cylindrical_equal_area(
2716 ctx: *mut PJ_CONTEXT,
2717 latitude_first_parallel: f64,
2718 longitude_nat_origin: f64,
2719 false_easting: f64,
2720 false_northing: f64,
2721 ang_unit_name: *const ::std::os::raw::c_char,
2722 ang_unit_conv_factor: f64,
2723 linear_unit_name: *const ::std::os::raw::c_char,
2724 linear_unit_conv_factor: f64,
2725 ) -> *mut PJ;
2726}
2727unsafe extern "C" {
2728 pub fn proj_create_conversion_cassini_soldner(
2729 ctx: *mut PJ_CONTEXT,
2730 center_lat: f64,
2731 center_long: f64,
2732 false_easting: f64,
2733 false_northing: f64,
2734 ang_unit_name: *const ::std::os::raw::c_char,
2735 ang_unit_conv_factor: f64,
2736 linear_unit_name: *const ::std::os::raw::c_char,
2737 linear_unit_conv_factor: f64,
2738 ) -> *mut PJ;
2739}
2740unsafe extern "C" {
2741 pub fn proj_create_conversion_equidistant_conic(
2742 ctx: *mut PJ_CONTEXT,
2743 center_lat: f64,
2744 center_long: f64,
2745 latitude_first_parallel: f64,
2746 latitude_second_parallel: f64,
2747 false_easting: f64,
2748 false_northing: f64,
2749 ang_unit_name: *const ::std::os::raw::c_char,
2750 ang_unit_conv_factor: f64,
2751 linear_unit_name: *const ::std::os::raw::c_char,
2752 linear_unit_conv_factor: f64,
2753 ) -> *mut PJ;
2754}
2755unsafe extern "C" {
2756 pub fn proj_create_conversion_eckert_i(
2757 ctx: *mut PJ_CONTEXT,
2758 center_long: f64,
2759 false_easting: f64,
2760 false_northing: f64,
2761 ang_unit_name: *const ::std::os::raw::c_char,
2762 ang_unit_conv_factor: f64,
2763 linear_unit_name: *const ::std::os::raw::c_char,
2764 linear_unit_conv_factor: f64,
2765 ) -> *mut PJ;
2766}
2767unsafe extern "C" {
2768 pub fn proj_create_conversion_eckert_ii(
2769 ctx: *mut PJ_CONTEXT,
2770 center_long: f64,
2771 false_easting: f64,
2772 false_northing: f64,
2773 ang_unit_name: *const ::std::os::raw::c_char,
2774 ang_unit_conv_factor: f64,
2775 linear_unit_name: *const ::std::os::raw::c_char,
2776 linear_unit_conv_factor: f64,
2777 ) -> *mut PJ;
2778}
2779unsafe extern "C" {
2780 pub fn proj_create_conversion_eckert_iii(
2781 ctx: *mut PJ_CONTEXT,
2782 center_long: f64,
2783 false_easting: f64,
2784 false_northing: f64,
2785 ang_unit_name: *const ::std::os::raw::c_char,
2786 ang_unit_conv_factor: f64,
2787 linear_unit_name: *const ::std::os::raw::c_char,
2788 linear_unit_conv_factor: f64,
2789 ) -> *mut PJ;
2790}
2791unsafe extern "C" {
2792 pub fn proj_create_conversion_eckert_iv(
2793 ctx: *mut PJ_CONTEXT,
2794 center_long: f64,
2795 false_easting: f64,
2796 false_northing: f64,
2797 ang_unit_name: *const ::std::os::raw::c_char,
2798 ang_unit_conv_factor: f64,
2799 linear_unit_name: *const ::std::os::raw::c_char,
2800 linear_unit_conv_factor: f64,
2801 ) -> *mut PJ;
2802}
2803unsafe extern "C" {
2804 pub fn proj_create_conversion_eckert_v(
2805 ctx: *mut PJ_CONTEXT,
2806 center_long: f64,
2807 false_easting: f64,
2808 false_northing: f64,
2809 ang_unit_name: *const ::std::os::raw::c_char,
2810 ang_unit_conv_factor: f64,
2811 linear_unit_name: *const ::std::os::raw::c_char,
2812 linear_unit_conv_factor: f64,
2813 ) -> *mut PJ;
2814}
2815unsafe extern "C" {
2816 pub fn proj_create_conversion_eckert_vi(
2817 ctx: *mut PJ_CONTEXT,
2818 center_long: f64,
2819 false_easting: f64,
2820 false_northing: f64,
2821 ang_unit_name: *const ::std::os::raw::c_char,
2822 ang_unit_conv_factor: f64,
2823 linear_unit_name: *const ::std::os::raw::c_char,
2824 linear_unit_conv_factor: f64,
2825 ) -> *mut PJ;
2826}
2827unsafe extern "C" {
2828 pub fn proj_create_conversion_equidistant_cylindrical(
2829 ctx: *mut PJ_CONTEXT,
2830 latitude_first_parallel: f64,
2831 longitude_nat_origin: f64,
2832 false_easting: f64,
2833 false_northing: f64,
2834 ang_unit_name: *const ::std::os::raw::c_char,
2835 ang_unit_conv_factor: f64,
2836 linear_unit_name: *const ::std::os::raw::c_char,
2837 linear_unit_conv_factor: f64,
2838 ) -> *mut PJ;
2839}
2840unsafe extern "C" {
2841 pub fn proj_create_conversion_equidistant_cylindrical_spherical(
2842 ctx: *mut PJ_CONTEXT,
2843 latitude_first_parallel: f64,
2844 longitude_nat_origin: f64,
2845 false_easting: f64,
2846 false_northing: f64,
2847 ang_unit_name: *const ::std::os::raw::c_char,
2848 ang_unit_conv_factor: f64,
2849 linear_unit_name: *const ::std::os::raw::c_char,
2850 linear_unit_conv_factor: f64,
2851 ) -> *mut PJ;
2852}
2853unsafe extern "C" {
2854 pub fn proj_create_conversion_gall(
2855 ctx: *mut PJ_CONTEXT,
2856 center_long: f64,
2857 false_easting: f64,
2858 false_northing: f64,
2859 ang_unit_name: *const ::std::os::raw::c_char,
2860 ang_unit_conv_factor: f64,
2861 linear_unit_name: *const ::std::os::raw::c_char,
2862 linear_unit_conv_factor: f64,
2863 ) -> *mut PJ;
2864}
2865unsafe extern "C" {
2866 pub fn proj_create_conversion_goode_homolosine(
2867 ctx: *mut PJ_CONTEXT,
2868 center_long: f64,
2869 false_easting: f64,
2870 false_northing: f64,
2871 ang_unit_name: *const ::std::os::raw::c_char,
2872 ang_unit_conv_factor: f64,
2873 linear_unit_name: *const ::std::os::raw::c_char,
2874 linear_unit_conv_factor: f64,
2875 ) -> *mut PJ;
2876}
2877unsafe extern "C" {
2878 pub fn proj_create_conversion_interrupted_goode_homolosine(
2879 ctx: *mut PJ_CONTEXT,
2880 center_long: f64,
2881 false_easting: f64,
2882 false_northing: f64,
2883 ang_unit_name: *const ::std::os::raw::c_char,
2884 ang_unit_conv_factor: f64,
2885 linear_unit_name: *const ::std::os::raw::c_char,
2886 linear_unit_conv_factor: f64,
2887 ) -> *mut PJ;
2888}
2889unsafe extern "C" {
2890 pub fn proj_create_conversion_geostationary_satellite_sweep_x(
2891 ctx: *mut PJ_CONTEXT,
2892 center_long: f64,
2893 height: f64,
2894 false_easting: f64,
2895 false_northing: f64,
2896 ang_unit_name: *const ::std::os::raw::c_char,
2897 ang_unit_conv_factor: f64,
2898 linear_unit_name: *const ::std::os::raw::c_char,
2899 linear_unit_conv_factor: f64,
2900 ) -> *mut PJ;
2901}
2902unsafe extern "C" {
2903 pub fn proj_create_conversion_geostationary_satellite_sweep_y(
2904 ctx: *mut PJ_CONTEXT,
2905 center_long: f64,
2906 height: f64,
2907 false_easting: f64,
2908 false_northing: f64,
2909 ang_unit_name: *const ::std::os::raw::c_char,
2910 ang_unit_conv_factor: f64,
2911 linear_unit_name: *const ::std::os::raw::c_char,
2912 linear_unit_conv_factor: f64,
2913 ) -> *mut PJ;
2914}
2915unsafe extern "C" {
2916 pub fn proj_create_conversion_gnomonic(
2917 ctx: *mut PJ_CONTEXT,
2918 center_lat: f64,
2919 center_long: f64,
2920 false_easting: f64,
2921 false_northing: f64,
2922 ang_unit_name: *const ::std::os::raw::c_char,
2923 ang_unit_conv_factor: f64,
2924 linear_unit_name: *const ::std::os::raw::c_char,
2925 linear_unit_conv_factor: f64,
2926 ) -> *mut PJ;
2927}
2928unsafe extern "C" {
2929 pub fn proj_create_conversion_hotine_oblique_mercator_variant_a(
2930 ctx: *mut PJ_CONTEXT,
2931 latitude_projection_centre: f64,
2932 longitude_projection_centre: f64,
2933 azimuth_initial_line: f64,
2934 angle_from_rectified_to_skrew_grid: f64,
2935 scale: f64,
2936 false_easting: f64,
2937 false_northing: f64,
2938 ang_unit_name: *const ::std::os::raw::c_char,
2939 ang_unit_conv_factor: f64,
2940 linear_unit_name: *const ::std::os::raw::c_char,
2941 linear_unit_conv_factor: f64,
2942 ) -> *mut PJ;
2943}
2944unsafe extern "C" {
2945 pub fn proj_create_conversion_hotine_oblique_mercator_variant_b(
2946 ctx: *mut PJ_CONTEXT,
2947 latitude_projection_centre: f64,
2948 longitude_projection_centre: f64,
2949 azimuth_initial_line: f64,
2950 angle_from_rectified_to_skrew_grid: f64,
2951 scale: f64,
2952 easting_projection_centre: f64,
2953 northing_projection_centre: f64,
2954 ang_unit_name: *const ::std::os::raw::c_char,
2955 ang_unit_conv_factor: f64,
2956 linear_unit_name: *const ::std::os::raw::c_char,
2957 linear_unit_conv_factor: f64,
2958 ) -> *mut PJ;
2959}
2960unsafe extern "C" {
2961 pub fn proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin(
2962 ctx: *mut PJ_CONTEXT,
2963 latitude_projection_centre: f64,
2964 latitude_point1: f64,
2965 longitude_point1: f64,
2966 latitude_point2: f64,
2967 longitude_point2: f64,
2968 scale: f64,
2969 easting_projection_centre: f64,
2970 northing_projection_centre: f64,
2971 ang_unit_name: *const ::std::os::raw::c_char,
2972 ang_unit_conv_factor: f64,
2973 linear_unit_name: *const ::std::os::raw::c_char,
2974 linear_unit_conv_factor: f64,
2975 ) -> *mut PJ;
2976}
2977unsafe extern "C" {
2978 pub fn proj_create_conversion_laborde_oblique_mercator(
2979 ctx: *mut PJ_CONTEXT,
2980 latitude_projection_centre: f64,
2981 longitude_projection_centre: f64,
2982 azimuth_initial_line: f64,
2983 scale: f64,
2984 false_easting: f64,
2985 false_northing: f64,
2986 ang_unit_name: *const ::std::os::raw::c_char,
2987 ang_unit_conv_factor: f64,
2988 linear_unit_name: *const ::std::os::raw::c_char,
2989 linear_unit_conv_factor: f64,
2990 ) -> *mut PJ;
2991}
2992unsafe extern "C" {
2993 pub fn proj_create_conversion_international_map_world_polyconic(
2994 ctx: *mut PJ_CONTEXT,
2995 center_long: f64,
2996 latitude_first_parallel: f64,
2997 latitude_second_parallel: f64,
2998 false_easting: f64,
2999 false_northing: f64,
3000 ang_unit_name: *const ::std::os::raw::c_char,
3001 ang_unit_conv_factor: f64,
3002 linear_unit_name: *const ::std::os::raw::c_char,
3003 linear_unit_conv_factor: f64,
3004 ) -> *mut PJ;
3005}
3006unsafe extern "C" {
3007 pub fn proj_create_conversion_krovak_north_oriented(
3008 ctx: *mut PJ_CONTEXT,
3009 latitude_projection_centre: f64,
3010 longitude_of_origin: f64,
3011 colatitude_cone_axis: f64,
3012 latitude_pseudo_standard_parallel: f64,
3013 scale_factor_pseudo_standard_parallel: f64,
3014 false_easting: f64,
3015 false_northing: f64,
3016 ang_unit_name: *const ::std::os::raw::c_char,
3017 ang_unit_conv_factor: f64,
3018 linear_unit_name: *const ::std::os::raw::c_char,
3019 linear_unit_conv_factor: f64,
3020 ) -> *mut PJ;
3021}
3022unsafe extern "C" {
3023 pub fn proj_create_conversion_krovak(
3024 ctx: *mut PJ_CONTEXT,
3025 latitude_projection_centre: f64,
3026 longitude_of_origin: f64,
3027 colatitude_cone_axis: f64,
3028 latitude_pseudo_standard_parallel: f64,
3029 scale_factor_pseudo_standard_parallel: f64,
3030 false_easting: f64,
3031 false_northing: f64,
3032 ang_unit_name: *const ::std::os::raw::c_char,
3033 ang_unit_conv_factor: f64,
3034 linear_unit_name: *const ::std::os::raw::c_char,
3035 linear_unit_conv_factor: f64,
3036 ) -> *mut PJ;
3037}
3038unsafe extern "C" {
3039 pub fn proj_create_conversion_lambert_azimuthal_equal_area(
3040 ctx: *mut PJ_CONTEXT,
3041 latitude_nat_origin: f64,
3042 longitude_nat_origin: f64,
3043 false_easting: f64,
3044 false_northing: f64,
3045 ang_unit_name: *const ::std::os::raw::c_char,
3046 ang_unit_conv_factor: f64,
3047 linear_unit_name: *const ::std::os::raw::c_char,
3048 linear_unit_conv_factor: f64,
3049 ) -> *mut PJ;
3050}
3051unsafe extern "C" {
3052 pub fn proj_create_conversion_miller_cylindrical(
3053 ctx: *mut PJ_CONTEXT,
3054 center_long: f64,
3055 false_easting: f64,
3056 false_northing: f64,
3057 ang_unit_name: *const ::std::os::raw::c_char,
3058 ang_unit_conv_factor: f64,
3059 linear_unit_name: *const ::std::os::raw::c_char,
3060 linear_unit_conv_factor: f64,
3061 ) -> *mut PJ;
3062}
3063unsafe extern "C" {
3064 pub fn proj_create_conversion_mercator_variant_a(
3065 ctx: *mut PJ_CONTEXT,
3066 center_lat: f64,
3067 center_long: f64,
3068 scale: f64,
3069 false_easting: f64,
3070 false_northing: f64,
3071 ang_unit_name: *const ::std::os::raw::c_char,
3072 ang_unit_conv_factor: f64,
3073 linear_unit_name: *const ::std::os::raw::c_char,
3074 linear_unit_conv_factor: f64,
3075 ) -> *mut PJ;
3076}
3077unsafe extern "C" {
3078 pub fn proj_create_conversion_mercator_variant_b(
3079 ctx: *mut PJ_CONTEXT,
3080 latitude_first_parallel: f64,
3081 center_long: f64,
3082 false_easting: f64,
3083 false_northing: f64,
3084 ang_unit_name: *const ::std::os::raw::c_char,
3085 ang_unit_conv_factor: f64,
3086 linear_unit_name: *const ::std::os::raw::c_char,
3087 linear_unit_conv_factor: f64,
3088 ) -> *mut PJ;
3089}
3090unsafe extern "C" {
3091 pub fn proj_create_conversion_popular_visualisation_pseudo_mercator(
3092 ctx: *mut PJ_CONTEXT,
3093 center_lat: f64,
3094 center_long: f64,
3095 false_easting: f64,
3096 false_northing: f64,
3097 ang_unit_name: *const ::std::os::raw::c_char,
3098 ang_unit_conv_factor: f64,
3099 linear_unit_name: *const ::std::os::raw::c_char,
3100 linear_unit_conv_factor: f64,
3101 ) -> *mut PJ;
3102}
3103unsafe extern "C" {
3104 pub fn proj_create_conversion_mollweide(
3105 ctx: *mut PJ_CONTEXT,
3106 center_long: f64,
3107 false_easting: f64,
3108 false_northing: f64,
3109 ang_unit_name: *const ::std::os::raw::c_char,
3110 ang_unit_conv_factor: f64,
3111 linear_unit_name: *const ::std::os::raw::c_char,
3112 linear_unit_conv_factor: f64,
3113 ) -> *mut PJ;
3114}
3115unsafe extern "C" {
3116 pub fn proj_create_conversion_new_zealand_mapping_grid(
3117 ctx: *mut PJ_CONTEXT,
3118 center_lat: f64,
3119 center_long: f64,
3120 false_easting: f64,
3121 false_northing: f64,
3122 ang_unit_name: *const ::std::os::raw::c_char,
3123 ang_unit_conv_factor: f64,
3124 linear_unit_name: *const ::std::os::raw::c_char,
3125 linear_unit_conv_factor: f64,
3126 ) -> *mut PJ;
3127}
3128unsafe extern "C" {
3129 pub fn proj_create_conversion_oblique_stereographic(
3130 ctx: *mut PJ_CONTEXT,
3131 center_lat: f64,
3132 center_long: f64,
3133 scale: f64,
3134 false_easting: f64,
3135 false_northing: f64,
3136 ang_unit_name: *const ::std::os::raw::c_char,
3137 ang_unit_conv_factor: f64,
3138 linear_unit_name: *const ::std::os::raw::c_char,
3139 linear_unit_conv_factor: f64,
3140 ) -> *mut PJ;
3141}
3142unsafe extern "C" {
3143 pub fn proj_create_conversion_orthographic(
3144 ctx: *mut PJ_CONTEXT,
3145 center_lat: f64,
3146 center_long: f64,
3147 false_easting: f64,
3148 false_northing: f64,
3149 ang_unit_name: *const ::std::os::raw::c_char,
3150 ang_unit_conv_factor: f64,
3151 linear_unit_name: *const ::std::os::raw::c_char,
3152 linear_unit_conv_factor: f64,
3153 ) -> *mut PJ;
3154}
3155unsafe extern "C" {
3156 pub fn proj_create_conversion_local_orthographic(
3157 ctx: *mut PJ_CONTEXT,
3158 center_lat: f64,
3159 center_long: f64,
3160 azimuth: f64,
3161 scale: f64,
3162 false_easting: f64,
3163 false_northing: f64,
3164 ang_unit_name: *const ::std::os::raw::c_char,
3165 ang_unit_conv_factor: f64,
3166 linear_unit_name: *const ::std::os::raw::c_char,
3167 linear_unit_conv_factor: f64,
3168 ) -> *mut PJ;
3169}
3170unsafe extern "C" {
3171 pub fn proj_create_conversion_american_polyconic(
3172 ctx: *mut PJ_CONTEXT,
3173 center_lat: f64,
3174 center_long: f64,
3175 false_easting: f64,
3176 false_northing: f64,
3177 ang_unit_name: *const ::std::os::raw::c_char,
3178 ang_unit_conv_factor: f64,
3179 linear_unit_name: *const ::std::os::raw::c_char,
3180 linear_unit_conv_factor: f64,
3181 ) -> *mut PJ;
3182}
3183unsafe extern "C" {
3184 pub fn proj_create_conversion_polar_stereographic_variant_a(
3185 ctx: *mut PJ_CONTEXT,
3186 center_lat: f64,
3187 center_long: f64,
3188 scale: f64,
3189 false_easting: f64,
3190 false_northing: f64,
3191 ang_unit_name: *const ::std::os::raw::c_char,
3192 ang_unit_conv_factor: f64,
3193 linear_unit_name: *const ::std::os::raw::c_char,
3194 linear_unit_conv_factor: f64,
3195 ) -> *mut PJ;
3196}
3197unsafe extern "C" {
3198 pub fn proj_create_conversion_polar_stereographic_variant_b(
3199 ctx: *mut PJ_CONTEXT,
3200 latitude_standard_parallel: f64,
3201 longitude_of_origin: f64,
3202 false_easting: f64,
3203 false_northing: f64,
3204 ang_unit_name: *const ::std::os::raw::c_char,
3205 ang_unit_conv_factor: f64,
3206 linear_unit_name: *const ::std::os::raw::c_char,
3207 linear_unit_conv_factor: f64,
3208 ) -> *mut PJ;
3209}
3210unsafe extern "C" {
3211 pub fn proj_create_conversion_robinson(
3212 ctx: *mut PJ_CONTEXT,
3213 center_long: f64,
3214 false_easting: f64,
3215 false_northing: f64,
3216 ang_unit_name: *const ::std::os::raw::c_char,
3217 ang_unit_conv_factor: f64,
3218 linear_unit_name: *const ::std::os::raw::c_char,
3219 linear_unit_conv_factor: f64,
3220 ) -> *mut PJ;
3221}
3222unsafe extern "C" {
3223 pub fn proj_create_conversion_sinusoidal(
3224 ctx: *mut PJ_CONTEXT,
3225 center_long: f64,
3226 false_easting: f64,
3227 false_northing: f64,
3228 ang_unit_name: *const ::std::os::raw::c_char,
3229 ang_unit_conv_factor: f64,
3230 linear_unit_name: *const ::std::os::raw::c_char,
3231 linear_unit_conv_factor: f64,
3232 ) -> *mut PJ;
3233}
3234unsafe extern "C" {
3235 pub fn proj_create_conversion_stereographic(
3236 ctx: *mut PJ_CONTEXT,
3237 center_lat: f64,
3238 center_long: f64,
3239 scale: f64,
3240 false_easting: f64,
3241 false_northing: f64,
3242 ang_unit_name: *const ::std::os::raw::c_char,
3243 ang_unit_conv_factor: f64,
3244 linear_unit_name: *const ::std::os::raw::c_char,
3245 linear_unit_conv_factor: f64,
3246 ) -> *mut PJ;
3247}
3248unsafe extern "C" {
3249 pub fn proj_create_conversion_van_der_grinten(
3250 ctx: *mut PJ_CONTEXT,
3251 center_long: f64,
3252 false_easting: f64,
3253 false_northing: f64,
3254 ang_unit_name: *const ::std::os::raw::c_char,
3255 ang_unit_conv_factor: f64,
3256 linear_unit_name: *const ::std::os::raw::c_char,
3257 linear_unit_conv_factor: f64,
3258 ) -> *mut PJ;
3259}
3260unsafe extern "C" {
3261 pub fn proj_create_conversion_wagner_i(
3262 ctx: *mut PJ_CONTEXT,
3263 center_long: f64,
3264 false_easting: f64,
3265 false_northing: f64,
3266 ang_unit_name: *const ::std::os::raw::c_char,
3267 ang_unit_conv_factor: f64,
3268 linear_unit_name: *const ::std::os::raw::c_char,
3269 linear_unit_conv_factor: f64,
3270 ) -> *mut PJ;
3271}
3272unsafe extern "C" {
3273 pub fn proj_create_conversion_wagner_ii(
3274 ctx: *mut PJ_CONTEXT,
3275 center_long: f64,
3276 false_easting: f64,
3277 false_northing: f64,
3278 ang_unit_name: *const ::std::os::raw::c_char,
3279 ang_unit_conv_factor: f64,
3280 linear_unit_name: *const ::std::os::raw::c_char,
3281 linear_unit_conv_factor: f64,
3282 ) -> *mut PJ;
3283}
3284unsafe extern "C" {
3285 pub fn proj_create_conversion_wagner_iii(
3286 ctx: *mut PJ_CONTEXT,
3287 latitude_true_scale: f64,
3288 center_long: f64,
3289 false_easting: f64,
3290 false_northing: f64,
3291 ang_unit_name: *const ::std::os::raw::c_char,
3292 ang_unit_conv_factor: f64,
3293 linear_unit_name: *const ::std::os::raw::c_char,
3294 linear_unit_conv_factor: f64,
3295 ) -> *mut PJ;
3296}
3297unsafe extern "C" {
3298 pub fn proj_create_conversion_wagner_iv(
3299 ctx: *mut PJ_CONTEXT,
3300 center_long: f64,
3301 false_easting: f64,
3302 false_northing: f64,
3303 ang_unit_name: *const ::std::os::raw::c_char,
3304 ang_unit_conv_factor: f64,
3305 linear_unit_name: *const ::std::os::raw::c_char,
3306 linear_unit_conv_factor: f64,
3307 ) -> *mut PJ;
3308}
3309unsafe extern "C" {
3310 pub fn proj_create_conversion_wagner_v(
3311 ctx: *mut PJ_CONTEXT,
3312 center_long: f64,
3313 false_easting: f64,
3314 false_northing: f64,
3315 ang_unit_name: *const ::std::os::raw::c_char,
3316 ang_unit_conv_factor: f64,
3317 linear_unit_name: *const ::std::os::raw::c_char,
3318 linear_unit_conv_factor: f64,
3319 ) -> *mut PJ;
3320}
3321unsafe extern "C" {
3322 pub fn proj_create_conversion_wagner_vi(
3323 ctx: *mut PJ_CONTEXT,
3324 center_long: f64,
3325 false_easting: f64,
3326 false_northing: f64,
3327 ang_unit_name: *const ::std::os::raw::c_char,
3328 ang_unit_conv_factor: f64,
3329 linear_unit_name: *const ::std::os::raw::c_char,
3330 linear_unit_conv_factor: f64,
3331 ) -> *mut PJ;
3332}
3333unsafe extern "C" {
3334 pub fn proj_create_conversion_wagner_vii(
3335 ctx: *mut PJ_CONTEXT,
3336 center_long: f64,
3337 false_easting: f64,
3338 false_northing: f64,
3339 ang_unit_name: *const ::std::os::raw::c_char,
3340 ang_unit_conv_factor: f64,
3341 linear_unit_name: *const ::std::os::raw::c_char,
3342 linear_unit_conv_factor: f64,
3343 ) -> *mut PJ;
3344}
3345unsafe extern "C" {
3346 pub fn proj_create_conversion_quadrilateralized_spherical_cube(
3347 ctx: *mut PJ_CONTEXT,
3348 center_lat: f64,
3349 center_long: f64,
3350 false_easting: f64,
3351 false_northing: f64,
3352 ang_unit_name: *const ::std::os::raw::c_char,
3353 ang_unit_conv_factor: f64,
3354 linear_unit_name: *const ::std::os::raw::c_char,
3355 linear_unit_conv_factor: f64,
3356 ) -> *mut PJ;
3357}
3358unsafe extern "C" {
3359 pub fn proj_create_conversion_spherical_cross_track_height(
3360 ctx: *mut PJ_CONTEXT,
3361 peg_point_lat: f64,
3362 peg_point_long: f64,
3363 peg_point_heading: f64,
3364 peg_point_height: f64,
3365 ang_unit_name: *const ::std::os::raw::c_char,
3366 ang_unit_conv_factor: f64,
3367 linear_unit_name: *const ::std::os::raw::c_char,
3368 linear_unit_conv_factor: f64,
3369 ) -> *mut PJ;
3370}
3371unsafe extern "C" {
3372 pub fn proj_create_conversion_equal_earth(
3373 ctx: *mut PJ_CONTEXT,
3374 center_long: f64,
3375 false_easting: f64,
3376 false_northing: f64,
3377 ang_unit_name: *const ::std::os::raw::c_char,
3378 ang_unit_conv_factor: f64,
3379 linear_unit_name: *const ::std::os::raw::c_char,
3380 linear_unit_conv_factor: f64,
3381 ) -> *mut PJ;
3382}
3383unsafe extern "C" {
3384 pub fn proj_create_conversion_vertical_perspective(
3385 ctx: *mut PJ_CONTEXT,
3386 topo_origin_lat: f64,
3387 topo_origin_long: f64,
3388 topo_origin_height: f64,
3389 view_point_height: f64,
3390 false_easting: f64,
3391 false_northing: f64,
3392 ang_unit_name: *const ::std::os::raw::c_char,
3393 ang_unit_conv_factor: f64,
3394 linear_unit_name: *const ::std::os::raw::c_char,
3395 linear_unit_conv_factor: f64,
3396 ) -> *mut PJ;
3397}
3398unsafe extern "C" {
3399 pub fn proj_create_conversion_pole_rotation_grib_convention(
3400 ctx: *mut PJ_CONTEXT,
3401 south_pole_lat_in_unrotated_crs: f64,
3402 south_pole_long_in_unrotated_crs: f64,
3403 axis_rotation: f64,
3404 ang_unit_name: *const ::std::os::raw::c_char,
3405 ang_unit_conv_factor: f64,
3406 ) -> *mut PJ;
3407}
3408unsafe extern "C" {
3409 pub fn proj_create_conversion_pole_rotation_netcdf_cf_convention(
3410 ctx: *mut PJ_CONTEXT,
3411 grid_north_pole_latitude: f64,
3412 grid_north_pole_longitude: f64,
3413 north_pole_grid_longitude: f64,
3414 ang_unit_name: *const ::std::os::raw::c_char,
3415 ang_unit_conv_factor: f64,
3416 ) -> *mut PJ;
3417}