gooderp18绿色标准版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

907 lines
33KB

  1. /******************************************************************************
  2. *
  3. * Project: PROJ
  4. * Purpose: Experimental C API
  5. * Author: Even Rouault <even dot rouault at spatialys dot com>
  6. *
  7. ******************************************************************************
  8. * Copyright (c) 2018, Even Rouault <even dot rouault at spatialys dot com>
  9. *
  10. * Permission is hereby granted, free of charge, to any person obtaining a
  11. * copy of this software and associated documentation files (the "Software"),
  12. * to deal in the Software without restriction, including without limitation
  13. * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  14. * and/or sell copies of the Software, and to permit persons to whom the
  15. * Software is furnished to do so, subject to the following conditions:
  16. *
  17. * The above copyright notice and this permission notice shall be included
  18. * in all copies or substantial portions of the Software.
  19. *
  20. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  21. * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  22. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  23. * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  24. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  25. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  26. * DEALINGS IN THE SOFTWARE.
  27. ****************************************************************************/
  28. #ifndef PROJ_EXPERIMENTAL_H
  29. #define PROJ_EXPERIMENTAL_H
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33. #include "proj.h"
  34. /**
  35. * \file proj_experimental.h
  36. *
  37. * Experimental C API.
  38. *
  39. * \warning
  40. * This API has been considered now to be experimental, and may change or
  41. * be removed in the future. It addresses for now the needs of the GDAL
  42. * project to be able to construct CRS objects in a programmatic way, piece
  43. * by piece, instead of whole conversion from PROJ string or WKT string.
  44. */
  45. /* ------------------------------------------------------------------------- */
  46. /* Binding in C of advanced methods from the C++ API */
  47. /* */
  48. /* Manual construction of CRS objects. */
  49. /* ------------------------------------------------------------------------- */
  50. /**
  51. * \defgroup advanced_cpp_binding Binding in C of advanced methods from the C++ API
  52. * @{
  53. */
  54. /** Type of unit of measure. */
  55. typedef enum
  56. {
  57. /** Angular unit of measure */
  58. PJ_UT_ANGULAR,
  59. /** Linear unit of measure */
  60. PJ_UT_LINEAR,
  61. /** Scale unit of measure */
  62. PJ_UT_SCALE,
  63. /** Time unit of measure */
  64. PJ_UT_TIME,
  65. /** Parametric unit of measure */
  66. PJ_UT_PARAMETRIC
  67. } PJ_UNIT_TYPE;
  68. /** Axis description. */
  69. typedef struct
  70. {
  71. /** Axis name. */
  72. char* name;
  73. /** Axis abbreviation. */
  74. char* abbreviation;
  75. /** Axis direction. */
  76. char* direction;
  77. /** Axis unit name. */
  78. char* unit_name;
  79. /** Conversion factor to SI of the unit. */
  80. double unit_conv_factor;
  81. /** Type of unit */
  82. PJ_UNIT_TYPE unit_type;
  83. } PJ_AXIS_DESCRIPTION;
  84. PJ PROJ_DLL *proj_create_cs(PJ_CONTEXT *ctx,
  85. PJ_COORDINATE_SYSTEM_TYPE type,
  86. int axis_count,
  87. const PJ_AXIS_DESCRIPTION* axis);
  88. /** Type of Cartesian 2D coordinate system. */
  89. typedef enum
  90. {
  91. /* Easting-Norting */
  92. PJ_CART2D_EASTING_NORTHING,
  93. /* Northing-Easting */
  94. PJ_CART2D_NORTHING_EASTING,
  95. /* North Pole Easting/SOUTH-Norting/SOUTH */
  96. PJ_CART2D_NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH,
  97. /* South Pole Easting/NORTH-Norting/NORTH */
  98. PJ_CART2D_SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH,
  99. /* Westing-southing */
  100. PJ_CART2D_WESTING_SOUTHING,
  101. } PJ_CARTESIAN_CS_2D_TYPE;
  102. PJ PROJ_DLL *proj_create_cartesian_2D_cs(PJ_CONTEXT *ctx,
  103. PJ_CARTESIAN_CS_2D_TYPE type,
  104. const char* unit_name,
  105. double unit_conv_factor);
  106. /** Type of Cartesian 2D coordinate system. */
  107. typedef enum
  108. {
  109. /* Longitude-Latitude */
  110. PJ_ELLPS2D_LONGITUDE_LATITUDE,
  111. /* Latitude-Longitude */
  112. PJ_ELLPS2D_LATITUDE_LONGITUDE,
  113. } PJ_ELLIPSOIDAL_CS_2D_TYPE;
  114. PJ PROJ_DLL *proj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx,
  115. PJ_ELLIPSOIDAL_CS_2D_TYPE type,
  116. const char* unit_name,
  117. double unit_conv_factor);
  118. PJ_OBJ_LIST PROJ_DLL *proj_query_geodetic_crs_from_datum(
  119. PJ_CONTEXT *ctx,
  120. const char *crs_auth_name,
  121. const char *datum_auth_name,
  122. const char *datum_code,
  123. const char *crs_type);
  124. PJ PROJ_DLL *proj_create_geographic_crs(
  125. PJ_CONTEXT *ctx,
  126. const char *crs_name,
  127. const char *datum_name,
  128. const char *ellps_name,
  129. double semi_major_metre, double inv_flattening,
  130. const char *prime_meridian_name,
  131. double prime_meridian_offset,
  132. const char *pm_angular_units,
  133. double pm_units_conv,
  134. PJ* ellipsoidal_cs);
  135. PJ PROJ_DLL *proj_create_geographic_crs_from_datum(
  136. PJ_CONTEXT *ctx,
  137. const char *crs_name,
  138. PJ* datum,
  139. PJ* ellipsoidal_cs);
  140. PJ PROJ_DLL *proj_create_geocentric_crs(
  141. PJ_CONTEXT *ctx,
  142. const char *crs_name,
  143. const char *datum_name,
  144. const char *ellps_name,
  145. double semi_major_metre, double inv_flattening,
  146. const char *prime_meridian_name,
  147. double prime_meridian_offset,
  148. const char *angular_units,
  149. double angular_units_conv,
  150. const char *linear_units,
  151. double linear_units_conv);
  152. PJ PROJ_DLL *proj_create_geocentric_crs_from_datum(
  153. PJ_CONTEXT *ctx,
  154. const char *crs_name,
  155. const PJ* datum,
  156. const char *linear_units,
  157. double linear_units_conv);
  158. PJ PROJ_DLL *proj_alter_name(PJ_CONTEXT *ctx,
  159. const PJ* obj, const char* name);
  160. PJ PROJ_DLL *proj_alter_id(PJ_CONTEXT *ctx,
  161. const PJ* obj,
  162. const char* auth_name,
  163. const char* code);
  164. PJ PROJ_DLL *proj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx,
  165. const PJ* obj,
  166. const PJ* new_geod_crs);
  167. PJ PROJ_DLL *proj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx,
  168. const PJ* obj,
  169. const char *angular_units,
  170. double angular_units_conv,
  171. const char *unit_auth_name,
  172. const char *unit_code);
  173. PJ PROJ_DLL *proj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx,
  174. const PJ* obj,
  175. const char *linear_units,
  176. double linear_units_conv,
  177. const char *unit_auth_name,
  178. const char *unit_code);
  179. PJ PROJ_DLL *proj_crs_alter_parameters_linear_unit(
  180. PJ_CONTEXT *ctx,
  181. const PJ* obj,
  182. const char *linear_units,
  183. double linear_units_conv,
  184. const char *unit_auth_name,
  185. const char *unit_code,
  186. int convert_to_new_unit);
  187. PJ PROJ_DLL *proj_create_engineering_crs(PJ_CONTEXT *ctx,
  188. const char *crsName);
  189. PJ PROJ_DLL *proj_create_vertical_crs(PJ_CONTEXT *ctx,
  190. const char *crs_name,
  191. const char *datum_name,
  192. const char *linear_units,
  193. double linear_units_conv);
  194. PJ PROJ_DLL *proj_create_compound_crs(PJ_CONTEXT *ctx,
  195. const char *crs_name,
  196. PJ* horiz_crs,
  197. PJ* vert_crs);
  198. /** Description of a parameter value for a Conversion. */
  199. typedef struct
  200. {
  201. /** Parameter name. */
  202. const char* name;
  203. /** Parameter authority name. */
  204. const char* auth_name;
  205. /** Parameter code. */
  206. const char* code;
  207. /** Parameter value. */
  208. double value;
  209. /** Name of unit in which parameter value is expressed. */
  210. const char* unit_name;
  211. /** Conversion factor to SI of the unit. */
  212. double unit_conv_factor;
  213. /** Type of unit */
  214. PJ_UNIT_TYPE unit_type;
  215. } PJ_PARAM_DESCRIPTION;
  216. PJ PROJ_DLL *proj_create_conversion(PJ_CONTEXT *ctx,
  217. const char* name,
  218. const char* auth_name,
  219. const char* code,
  220. const char* method_name,
  221. const char* method_auth_name,
  222. const char* method_code,
  223. int param_count,
  224. const PJ_PARAM_DESCRIPTION* params);
  225. PJ PROJ_DLL *proj_create_transformation(
  226. PJ_CONTEXT *ctx,
  227. const char* name,
  228. const char* auth_name,
  229. const char* code,
  230. PJ* source_crs,
  231. PJ* target_crs,
  232. PJ* interpolation_crs,
  233. const char* method_name,
  234. const char* method_auth_name,
  235. const char* method_code,
  236. int param_count,
  237. const PJ_PARAM_DESCRIPTION* params,
  238. double accuracy);
  239. PJ PROJ_DLL *proj_convert_conversion_to_other_method(PJ_CONTEXT *ctx,
  240. const PJ *conversion,
  241. int new_method_epsg_code,
  242. const char *new_method_name);
  243. PJ PROJ_DLL *proj_create_projected_crs(PJ_CONTEXT *ctx,
  244. const char* crs_name,
  245. const PJ* geodetic_crs,
  246. const PJ* conversion,
  247. const PJ* coordinate_system);
  248. PJ PROJ_DLL *proj_crs_create_bound_crs(PJ_CONTEXT *ctx,
  249. const PJ *base_crs,
  250. const PJ *hub_crs,
  251. const PJ *transformation);
  252. PJ PROJ_DLL *proj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx,
  253. const PJ *crs,
  254. const char *const *options);
  255. /* BEGIN: Generated by scripts/create_c_api_projections.py*/
  256. PJ PROJ_DLL *proj_create_conversion_utm(
  257. PJ_CONTEXT *ctx,
  258. int zone,
  259. int north);
  260. PJ PROJ_DLL *proj_create_conversion_transverse_mercator(
  261. PJ_CONTEXT *ctx,
  262. double center_lat,
  263. double center_long,
  264. double scale,
  265. double false_easting,
  266. double false_northing,
  267. const char* ang_unit_name, double ang_unit_conv_factor,
  268. const char* linear_unit_name, double linear_unit_conv_factor);
  269. PJ PROJ_DLL *proj_create_conversion_gauss_schreiber_transverse_mercator(
  270. PJ_CONTEXT *ctx,
  271. double center_lat,
  272. double center_long,
  273. double scale,
  274. double false_easting,
  275. double false_northing,
  276. const char* ang_unit_name, double ang_unit_conv_factor,
  277. const char* linear_unit_name, double linear_unit_conv_factor);
  278. PJ PROJ_DLL *proj_create_conversion_transverse_mercator_south_oriented(
  279. PJ_CONTEXT *ctx,
  280. double center_lat,
  281. double center_long,
  282. double scale,
  283. double false_easting,
  284. double false_northing,
  285. const char* ang_unit_name, double ang_unit_conv_factor,
  286. const char* linear_unit_name, double linear_unit_conv_factor);
  287. PJ PROJ_DLL *proj_create_conversion_two_point_equidistant(
  288. PJ_CONTEXT *ctx,
  289. double latitude_first_point,
  290. double longitude_first_point,
  291. double latitude_second_point,
  292. double longitude_secon_point,
  293. double false_easting,
  294. double false_northing,
  295. const char* ang_unit_name, double ang_unit_conv_factor,
  296. const char* linear_unit_name, double linear_unit_conv_factor);
  297. PJ PROJ_DLL *proj_create_conversion_tunisia_mapping_grid(
  298. PJ_CONTEXT *ctx,
  299. double center_lat,
  300. double center_long,
  301. double false_easting,
  302. double false_northing,
  303. const char* ang_unit_name, double ang_unit_conv_factor,
  304. const char* linear_unit_name, double linear_unit_conv_factor);
  305. PJ PROJ_DLL *proj_create_conversion_albers_equal_area(
  306. PJ_CONTEXT *ctx,
  307. double latitude_false_origin,
  308. double longitude_false_origin,
  309. double latitude_first_parallel,
  310. double latitude_second_parallel,
  311. double easting_false_origin,
  312. double northing_false_origin,
  313. const char* ang_unit_name, double ang_unit_conv_factor,
  314. const char* linear_unit_name, double linear_unit_conv_factor);
  315. PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_1sp(
  316. PJ_CONTEXT *ctx,
  317. double center_lat,
  318. double center_long,
  319. double scale,
  320. double false_easting,
  321. double false_northing,
  322. const char* ang_unit_name, double ang_unit_conv_factor,
  323. const char* linear_unit_name, double linear_unit_conv_factor);
  324. PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_2sp(
  325. PJ_CONTEXT *ctx,
  326. double latitude_false_origin,
  327. double longitude_false_origin,
  328. double latitude_first_parallel,
  329. double latitude_second_parallel,
  330. double easting_false_origin,
  331. double northing_false_origin,
  332. const char* ang_unit_name, double ang_unit_conv_factor,
  333. const char* linear_unit_name, double linear_unit_conv_factor);
  334. PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_2sp_michigan(
  335. PJ_CONTEXT *ctx,
  336. double latitude_false_origin,
  337. double longitude_false_origin,
  338. double latitude_first_parallel,
  339. double latitude_second_parallel,
  340. double easting_false_origin,
  341. double northing_false_origin,
  342. double ellipsoid_scaling_factor,
  343. const char* ang_unit_name, double ang_unit_conv_factor,
  344. const char* linear_unit_name, double linear_unit_conv_factor);
  345. PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_2sp_belgium(
  346. PJ_CONTEXT *ctx,
  347. double latitude_false_origin,
  348. double longitude_false_origin,
  349. double latitude_first_parallel,
  350. double latitude_second_parallel,
  351. double easting_false_origin,
  352. double northing_false_origin,
  353. const char* ang_unit_name, double ang_unit_conv_factor,
  354. const char* linear_unit_name, double linear_unit_conv_factor);
  355. PJ PROJ_DLL *proj_create_conversion_azimuthal_equidistant(
  356. PJ_CONTEXT *ctx,
  357. double latitude_nat_origin,
  358. double longitude_nat_origin,
  359. double false_easting,
  360. double false_northing,
  361. const char* ang_unit_name, double ang_unit_conv_factor,
  362. const char* linear_unit_name, double linear_unit_conv_factor);
  363. PJ PROJ_DLL *proj_create_conversion_guam_projection(
  364. PJ_CONTEXT *ctx,
  365. double latitude_nat_origin,
  366. double longitude_nat_origin,
  367. double false_easting,
  368. double false_northing,
  369. const char* ang_unit_name, double ang_unit_conv_factor,
  370. const char* linear_unit_name, double linear_unit_conv_factor);
  371. PJ PROJ_DLL *proj_create_conversion_bonne(
  372. PJ_CONTEXT *ctx,
  373. double latitude_nat_origin,
  374. double longitude_nat_origin,
  375. double false_easting,
  376. double false_northing,
  377. const char* ang_unit_name, double ang_unit_conv_factor,
  378. const char* linear_unit_name, double linear_unit_conv_factor);
  379. PJ PROJ_DLL *proj_create_conversion_lambert_cylindrical_equal_area_spherical(
  380. PJ_CONTEXT *ctx,
  381. double latitude_first_parallel,
  382. double longitude_nat_origin,
  383. double false_easting,
  384. double false_northing,
  385. const char* ang_unit_name, double ang_unit_conv_factor,
  386. const char* linear_unit_name, double linear_unit_conv_factor);
  387. PJ PROJ_DLL *proj_create_conversion_lambert_cylindrical_equal_area(
  388. PJ_CONTEXT *ctx,
  389. double latitude_first_parallel,
  390. double longitude_nat_origin,
  391. double false_easting,
  392. double false_northing,
  393. const char* ang_unit_name, double ang_unit_conv_factor,
  394. const char* linear_unit_name, double linear_unit_conv_factor);
  395. PJ PROJ_DLL *proj_create_conversion_cassini_soldner(
  396. PJ_CONTEXT *ctx,
  397. double center_lat,
  398. double center_long,
  399. double false_easting,
  400. double false_northing,
  401. const char* ang_unit_name, double ang_unit_conv_factor,
  402. const char* linear_unit_name, double linear_unit_conv_factor);
  403. PJ PROJ_DLL *proj_create_conversion_equidistant_conic(
  404. PJ_CONTEXT *ctx,
  405. double center_lat,
  406. double center_long,
  407. double latitude_first_parallel,
  408. double latitude_second_parallel,
  409. double false_easting,
  410. double false_northing,
  411. const char* ang_unit_name, double ang_unit_conv_factor,
  412. const char* linear_unit_name, double linear_unit_conv_factor);
  413. PJ PROJ_DLL *proj_create_conversion_eckert_i(
  414. PJ_CONTEXT *ctx,
  415. double center_long,
  416. double false_easting,
  417. double false_northing,
  418. const char* ang_unit_name, double ang_unit_conv_factor,
  419. const char* linear_unit_name, double linear_unit_conv_factor);
  420. PJ PROJ_DLL *proj_create_conversion_eckert_ii(
  421. PJ_CONTEXT *ctx,
  422. double center_long,
  423. double false_easting,
  424. double false_northing,
  425. const char* ang_unit_name, double ang_unit_conv_factor,
  426. const char* linear_unit_name, double linear_unit_conv_factor);
  427. PJ PROJ_DLL *proj_create_conversion_eckert_iii(
  428. PJ_CONTEXT *ctx,
  429. double center_long,
  430. double false_easting,
  431. double false_northing,
  432. const char* ang_unit_name, double ang_unit_conv_factor,
  433. const char* linear_unit_name, double linear_unit_conv_factor);
  434. PJ PROJ_DLL *proj_create_conversion_eckert_iv(
  435. PJ_CONTEXT *ctx,
  436. double center_long,
  437. double false_easting,
  438. double false_northing,
  439. const char* ang_unit_name, double ang_unit_conv_factor,
  440. const char* linear_unit_name, double linear_unit_conv_factor);
  441. PJ PROJ_DLL *proj_create_conversion_eckert_v(
  442. PJ_CONTEXT *ctx,
  443. double center_long,
  444. double false_easting,
  445. double false_northing,
  446. const char* ang_unit_name, double ang_unit_conv_factor,
  447. const char* linear_unit_name, double linear_unit_conv_factor);
  448. PJ PROJ_DLL *proj_create_conversion_eckert_vi(
  449. PJ_CONTEXT *ctx,
  450. double center_long,
  451. double false_easting,
  452. double false_northing,
  453. const char* ang_unit_name, double ang_unit_conv_factor,
  454. const char* linear_unit_name, double linear_unit_conv_factor);
  455. PJ PROJ_DLL *proj_create_conversion_equidistant_cylindrical(
  456. PJ_CONTEXT *ctx,
  457. double latitude_first_parallel,
  458. double longitude_nat_origin,
  459. double false_easting,
  460. double false_northing,
  461. const char* ang_unit_name, double ang_unit_conv_factor,
  462. const char* linear_unit_name, double linear_unit_conv_factor);
  463. PJ PROJ_DLL *proj_create_conversion_equidistant_cylindrical_spherical(
  464. PJ_CONTEXT *ctx,
  465. double latitude_first_parallel,
  466. double longitude_nat_origin,
  467. double false_easting,
  468. double false_northing,
  469. const char* ang_unit_name, double ang_unit_conv_factor,
  470. const char* linear_unit_name, double linear_unit_conv_factor);
  471. PJ PROJ_DLL *proj_create_conversion_gall(
  472. PJ_CONTEXT *ctx,
  473. double center_long,
  474. double false_easting,
  475. double false_northing,
  476. const char* ang_unit_name, double ang_unit_conv_factor,
  477. const char* linear_unit_name, double linear_unit_conv_factor);
  478. PJ PROJ_DLL *proj_create_conversion_goode_homolosine(
  479. PJ_CONTEXT *ctx,
  480. double center_long,
  481. double false_easting,
  482. double false_northing,
  483. const char* ang_unit_name, double ang_unit_conv_factor,
  484. const char* linear_unit_name, double linear_unit_conv_factor);
  485. PJ PROJ_DLL *proj_create_conversion_interrupted_goode_homolosine(
  486. PJ_CONTEXT *ctx,
  487. double center_long,
  488. double false_easting,
  489. double false_northing,
  490. const char* ang_unit_name, double ang_unit_conv_factor,
  491. const char* linear_unit_name, double linear_unit_conv_factor);
  492. PJ PROJ_DLL *proj_create_conversion_geostationary_satellite_sweep_x(
  493. PJ_CONTEXT *ctx,
  494. double center_long,
  495. double height,
  496. double false_easting,
  497. double false_northing,
  498. const char* ang_unit_name, double ang_unit_conv_factor,
  499. const char* linear_unit_name, double linear_unit_conv_factor);
  500. PJ PROJ_DLL *proj_create_conversion_geostationary_satellite_sweep_y(
  501. PJ_CONTEXT *ctx,
  502. double center_long,
  503. double height,
  504. double false_easting,
  505. double false_northing,
  506. const char* ang_unit_name, double ang_unit_conv_factor,
  507. const char* linear_unit_name, double linear_unit_conv_factor);
  508. PJ PROJ_DLL *proj_create_conversion_gnomonic(
  509. PJ_CONTEXT *ctx,
  510. double center_lat,
  511. double center_long,
  512. double false_easting,
  513. double false_northing,
  514. const char* ang_unit_name, double ang_unit_conv_factor,
  515. const char* linear_unit_name, double linear_unit_conv_factor);
  516. PJ PROJ_DLL *proj_create_conversion_hotine_oblique_mercator_variant_a(
  517. PJ_CONTEXT *ctx,
  518. double latitude_projection_centre,
  519. double longitude_projection_centre,
  520. double azimuth_initial_line,
  521. double angle_from_rectified_to_skrew_grid,
  522. double scale,
  523. double false_easting,
  524. double false_northing,
  525. const char* ang_unit_name, double ang_unit_conv_factor,
  526. const char* linear_unit_name, double linear_unit_conv_factor);
  527. PJ PROJ_DLL *proj_create_conversion_hotine_oblique_mercator_variant_b(
  528. PJ_CONTEXT *ctx,
  529. double latitude_projection_centre,
  530. double longitude_projection_centre,
  531. double azimuth_initial_line,
  532. double angle_from_rectified_to_skrew_grid,
  533. double scale,
  534. double easting_projection_centre,
  535. double northing_projection_centre,
  536. const char* ang_unit_name, double ang_unit_conv_factor,
  537. const char* linear_unit_name, double linear_unit_conv_factor);
  538. PJ PROJ_DLL *proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin(
  539. PJ_CONTEXT *ctx,
  540. double latitude_projection_centre,
  541. double latitude_point1,
  542. double longitude_point1,
  543. double latitude_point2,
  544. double longitude_point2,
  545. double scale,
  546. double easting_projection_centre,
  547. double northing_projection_centre,
  548. const char* ang_unit_name, double ang_unit_conv_factor,
  549. const char* linear_unit_name, double linear_unit_conv_factor);
  550. PJ PROJ_DLL *proj_create_conversion_laborde_oblique_mercator(
  551. PJ_CONTEXT *ctx,
  552. double latitude_projection_centre,
  553. double longitude_projection_centre,
  554. double azimuth_initial_line,
  555. double scale,
  556. double false_easting,
  557. double false_northing,
  558. const char* ang_unit_name, double ang_unit_conv_factor,
  559. const char* linear_unit_name, double linear_unit_conv_factor);
  560. PJ PROJ_DLL *proj_create_conversion_international_map_world_polyconic(
  561. PJ_CONTEXT *ctx,
  562. double center_long,
  563. double latitude_first_parallel,
  564. double latitude_second_parallel,
  565. double false_easting,
  566. double false_northing,
  567. const char* ang_unit_name, double ang_unit_conv_factor,
  568. const char* linear_unit_name, double linear_unit_conv_factor);
  569. PJ PROJ_DLL *proj_create_conversion_krovak_north_oriented(
  570. PJ_CONTEXT *ctx,
  571. double latitude_projection_centre,
  572. double longitude_of_origin,
  573. double colatitude_cone_axis,
  574. double latitude_pseudo_standard_parallel,
  575. double scale_factor_pseudo_standard_parallel,
  576. double false_easting,
  577. double false_northing,
  578. const char* ang_unit_name, double ang_unit_conv_factor,
  579. const char* linear_unit_name, double linear_unit_conv_factor);
  580. PJ PROJ_DLL *proj_create_conversion_krovak(
  581. PJ_CONTEXT *ctx,
  582. double latitude_projection_centre,
  583. double longitude_of_origin,
  584. double colatitude_cone_axis,
  585. double latitude_pseudo_standard_parallel,
  586. double scale_factor_pseudo_standard_parallel,
  587. double false_easting,
  588. double false_northing,
  589. const char* ang_unit_name, double ang_unit_conv_factor,
  590. const char* linear_unit_name, double linear_unit_conv_factor);
  591. PJ PROJ_DLL *proj_create_conversion_lambert_azimuthal_equal_area(
  592. PJ_CONTEXT *ctx,
  593. double latitude_nat_origin,
  594. double longitude_nat_origin,
  595. double false_easting,
  596. double false_northing,
  597. const char* ang_unit_name, double ang_unit_conv_factor,
  598. const char* linear_unit_name, double linear_unit_conv_factor);
  599. PJ PROJ_DLL *proj_create_conversion_miller_cylindrical(
  600. PJ_CONTEXT *ctx,
  601. double center_long,
  602. double false_easting,
  603. double false_northing,
  604. const char* ang_unit_name, double ang_unit_conv_factor,
  605. const char* linear_unit_name, double linear_unit_conv_factor);
  606. PJ PROJ_DLL *proj_create_conversion_mercator_variant_a(
  607. PJ_CONTEXT *ctx,
  608. double center_lat,
  609. double center_long,
  610. double scale,
  611. double false_easting,
  612. double false_northing,
  613. const char* ang_unit_name, double ang_unit_conv_factor,
  614. const char* linear_unit_name, double linear_unit_conv_factor);
  615. PJ PROJ_DLL *proj_create_conversion_mercator_variant_b(
  616. PJ_CONTEXT *ctx,
  617. double latitude_first_parallel,
  618. double center_long,
  619. double false_easting,
  620. double false_northing,
  621. const char* ang_unit_name, double ang_unit_conv_factor,
  622. const char* linear_unit_name, double linear_unit_conv_factor);
  623. PJ PROJ_DLL *proj_create_conversion_popular_visualisation_pseudo_mercator(
  624. PJ_CONTEXT *ctx,
  625. double center_lat,
  626. double center_long,
  627. double false_easting,
  628. double false_northing,
  629. const char* ang_unit_name, double ang_unit_conv_factor,
  630. const char* linear_unit_name, double linear_unit_conv_factor);
  631. PJ PROJ_DLL *proj_create_conversion_mollweide(
  632. PJ_CONTEXT *ctx,
  633. double center_long,
  634. double false_easting,
  635. double false_northing,
  636. const char* ang_unit_name, double ang_unit_conv_factor,
  637. const char* linear_unit_name, double linear_unit_conv_factor);
  638. PJ PROJ_DLL *proj_create_conversion_new_zealand_mapping_grid(
  639. PJ_CONTEXT *ctx,
  640. double center_lat,
  641. double center_long,
  642. double false_easting,
  643. double false_northing,
  644. const char* ang_unit_name, double ang_unit_conv_factor,
  645. const char* linear_unit_name, double linear_unit_conv_factor);
  646. PJ PROJ_DLL *proj_create_conversion_oblique_stereographic(
  647. PJ_CONTEXT *ctx,
  648. double center_lat,
  649. double center_long,
  650. double scale,
  651. double false_easting,
  652. double false_northing,
  653. const char* ang_unit_name, double ang_unit_conv_factor,
  654. const char* linear_unit_name, double linear_unit_conv_factor);
  655. PJ PROJ_DLL *proj_create_conversion_orthographic(
  656. PJ_CONTEXT *ctx,
  657. double center_lat,
  658. double center_long,
  659. double false_easting,
  660. double false_northing,
  661. const char* ang_unit_name, double ang_unit_conv_factor,
  662. const char* linear_unit_name, double linear_unit_conv_factor);
  663. PJ PROJ_DLL *proj_create_conversion_american_polyconic(
  664. PJ_CONTEXT *ctx,
  665. double center_lat,
  666. double center_long,
  667. double false_easting,
  668. double false_northing,
  669. const char* ang_unit_name, double ang_unit_conv_factor,
  670. const char* linear_unit_name, double linear_unit_conv_factor);
  671. PJ PROJ_DLL *proj_create_conversion_polar_stereographic_variant_a(
  672. PJ_CONTEXT *ctx,
  673. double center_lat,
  674. double center_long,
  675. double scale,
  676. double false_easting,
  677. double false_northing,
  678. const char* ang_unit_name, double ang_unit_conv_factor,
  679. const char* linear_unit_name, double linear_unit_conv_factor);
  680. PJ PROJ_DLL *proj_create_conversion_polar_stereographic_variant_b(
  681. PJ_CONTEXT *ctx,
  682. double latitude_standard_parallel,
  683. double longitude_of_origin,
  684. double false_easting,
  685. double false_northing,
  686. const char* ang_unit_name, double ang_unit_conv_factor,
  687. const char* linear_unit_name, double linear_unit_conv_factor);
  688. PJ PROJ_DLL *proj_create_conversion_robinson(
  689. PJ_CONTEXT *ctx,
  690. double center_long,
  691. double false_easting,
  692. double false_northing,
  693. const char* ang_unit_name, double ang_unit_conv_factor,
  694. const char* linear_unit_name, double linear_unit_conv_factor);
  695. PJ PROJ_DLL *proj_create_conversion_sinusoidal(
  696. PJ_CONTEXT *ctx,
  697. double center_long,
  698. double false_easting,
  699. double false_northing,
  700. const char* ang_unit_name, double ang_unit_conv_factor,
  701. const char* linear_unit_name, double linear_unit_conv_factor);
  702. PJ PROJ_DLL *proj_create_conversion_stereographic(
  703. PJ_CONTEXT *ctx,
  704. double center_lat,
  705. double center_long,
  706. double scale,
  707. double false_easting,
  708. double false_northing,
  709. const char* ang_unit_name, double ang_unit_conv_factor,
  710. const char* linear_unit_name, double linear_unit_conv_factor);
  711. PJ PROJ_DLL *proj_create_conversion_van_der_grinten(
  712. PJ_CONTEXT *ctx,
  713. double center_long,
  714. double false_easting,
  715. double false_northing,
  716. const char* ang_unit_name, double ang_unit_conv_factor,
  717. const char* linear_unit_name, double linear_unit_conv_factor);
  718. PJ PROJ_DLL *proj_create_conversion_wagner_i(
  719. PJ_CONTEXT *ctx,
  720. double center_long,
  721. double false_easting,
  722. double false_northing,
  723. const char* ang_unit_name, double ang_unit_conv_factor,
  724. const char* linear_unit_name, double linear_unit_conv_factor);
  725. PJ PROJ_DLL *proj_create_conversion_wagner_ii(
  726. PJ_CONTEXT *ctx,
  727. double center_long,
  728. double false_easting,
  729. double false_northing,
  730. const char* ang_unit_name, double ang_unit_conv_factor,
  731. const char* linear_unit_name, double linear_unit_conv_factor);
  732. PJ PROJ_DLL *proj_create_conversion_wagner_iii(
  733. PJ_CONTEXT *ctx,
  734. double latitude_true_scale,
  735. double center_long,
  736. double false_easting,
  737. double false_northing,
  738. const char* ang_unit_name, double ang_unit_conv_factor,
  739. const char* linear_unit_name, double linear_unit_conv_factor);
  740. PJ PROJ_DLL *proj_create_conversion_wagner_iv(
  741. PJ_CONTEXT *ctx,
  742. double center_long,
  743. double false_easting,
  744. double false_northing,
  745. const char* ang_unit_name, double ang_unit_conv_factor,
  746. const char* linear_unit_name, double linear_unit_conv_factor);
  747. PJ PROJ_DLL *proj_create_conversion_wagner_v(
  748. PJ_CONTEXT *ctx,
  749. double center_long,
  750. double false_easting,
  751. double false_northing,
  752. const char* ang_unit_name, double ang_unit_conv_factor,
  753. const char* linear_unit_name, double linear_unit_conv_factor);
  754. PJ PROJ_DLL *proj_create_conversion_wagner_vi(
  755. PJ_CONTEXT *ctx,
  756. double center_long,
  757. double false_easting,
  758. double false_northing,
  759. const char* ang_unit_name, double ang_unit_conv_factor,
  760. const char* linear_unit_name, double linear_unit_conv_factor);
  761. PJ PROJ_DLL *proj_create_conversion_wagner_vii(
  762. PJ_CONTEXT *ctx,
  763. double center_long,
  764. double false_easting,
  765. double false_northing,
  766. const char* ang_unit_name, double ang_unit_conv_factor,
  767. const char* linear_unit_name, double linear_unit_conv_factor);
  768. PJ PROJ_DLL *proj_create_conversion_quadrilateralized_spherical_cube(
  769. PJ_CONTEXT *ctx,
  770. double center_lat,
  771. double center_long,
  772. double false_easting,
  773. double false_northing,
  774. const char* ang_unit_name, double ang_unit_conv_factor,
  775. const char* linear_unit_name, double linear_unit_conv_factor);
  776. PJ PROJ_DLL *proj_create_conversion_spherical_cross_track_height(
  777. PJ_CONTEXT *ctx,
  778. double peg_point_lat,
  779. double peg_point_long,
  780. double peg_point_heading,
  781. double peg_point_height,
  782. const char* ang_unit_name, double ang_unit_conv_factor,
  783. const char* linear_unit_name, double linear_unit_conv_factor);
  784. PJ PROJ_DLL *proj_create_conversion_equal_earth(
  785. PJ_CONTEXT *ctx,
  786. double center_long,
  787. double false_easting,
  788. double false_northing,
  789. const char* ang_unit_name, double ang_unit_conv_factor,
  790. const char* linear_unit_name, double linear_unit_conv_factor);
  791. /* END: Generated by scripts/create_c_api_projections.py*/
  792. /**@}*/
  793. /*! @cond Doxygen_Suppress */
  794. void PROJ_DLL proj_assign_context( PJ* pj, PJ_CONTEXT* ctx );
  795. /*! @endcond */
  796. #ifdef __cplusplus
  797. }
  798. #endif
  799. #endif /* ndef PROJ_EXPERIMENTAL_H */
上海开阖软件有限公司 沪ICP备12045867号-1