aboutsummaryrefslogtreecommitdiff
path: root/src/proj_experimental.h
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2018-11-30 16:15:36 +0100
committerEven Rouault <even.rouault@spatialys.com>2018-11-30 16:15:36 +0100
commitb6a5c445e202e61c64b0986679a6e0a83724c322 (patch)
tree70fdd74c8b59741922f5ed54bf2f35ff0a57ce90 /src/proj_experimental.h
parent2d1deb2da9eab38febb4d4ce92faffa5d25a1e58 (diff)
downloadPROJ-b6a5c445e202e61c64b0986679a6e0a83724c322.tar.gz
PROJ-b6a5c445e202e61c64b0986679a6e0a83724c322.zip
API: move all advanced PJ_OBJ creation functions in a dedicated proj_experimental.h header
Diffstat (limited to 'src/proj_experimental.h')
-rw-r--r--src/proj_experimental.h831
1 files changed, 831 insertions, 0 deletions
diff --git a/src/proj_experimental.h b/src/proj_experimental.h
new file mode 100644
index 00000000..1dc16f99
--- /dev/null
+++ b/src/proj_experimental.h
@@ -0,0 +1,831 @@
+/******************************************************************************
+ *
+ * Project: PROJ
+ * Purpose: Experimental C API
+ * Author: Even Rouault <even dot rouault at spatialys dot com>
+ *
+ ******************************************************************************
+ * Copyright (c) 2018, Even Rouault <even dot rouault at spatialys dot com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ ****************************************************************************/
+
+#include "proj.h"
+
+#ifndef PROJ_EXPERIMENTAL_H
+#define PROJ_EXPERIMENTAL_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \file proj_experimental.h
+ *
+ * Experimental C API.
+ *
+ * \warning
+ * This API has been considered now to be experimental, and may change or
+ * be removed in the future. It addresses for now the needs of the GDAL
+ * project to be able to construct CRS objects in a programmatic way, piece
+ * by piece, instead of whole conversion from PROJ string or WKT string.
+ */
+
+/* ------------------------------------------------------------------------- */
+/* Binding in C of advanced methods from the C++ API */
+/* */
+/* Manual construction of CRS objects. */
+/* ------------------------------------------------------------------------- */
+
+/**
+ * \defgroup advanced_cpp_binding Binding in C of advanced methods from the C++ API
+ * @{
+ */
+
+/** Type of unit of measure. */
+typedef enum
+{
+ /** Angular unit of measure */
+ PJ_UT_ANGULAR,
+ /** Linear unit of measure */
+ PJ_UT_LINEAR,
+ /** Scale unit of measure */
+ PJ_UT_SCALE,
+ /** Time unit of measure */
+ PJ_UT_TIME,
+ /** Parametric unit of measure */
+ PJ_UT_PARAMETRIC
+} PJ_UNIT_TYPE;
+
+/** Axis description. */
+typedef struct
+{
+ /** Axis name. */
+ char* name;
+ /** Axis abbreviation. */
+ char* abbreviation;
+ /** Axis direction. */
+ char* direction;
+ /** Axis unit name. */
+ char* unit_name;
+ /** Conversion factor to SI of the unit. */
+ double unit_conv_factor;
+ /** Type of unit */
+ PJ_UNIT_TYPE unit_type;
+} PJ_AXIS_DESCRIPTION;
+
+PJ_OBJ PROJ_DLL *proj_obj_create_cs(PJ_CONTEXT *ctx,
+ PJ_COORDINATE_SYSTEM_TYPE type,
+ int axis_count,
+ const PJ_AXIS_DESCRIPTION* axis);
+
+/** Type of Cartesian 2D coordinate system. */
+typedef enum
+{
+ /* Easting-Norting */
+ PJ_CART2D_EASTING_NORTHING,
+ /* Northing-Easting */
+ PJ_CART2D_NORTHING_EASTING,
+} PJ_CARTESIAN_CS_2D_TYPE;
+
+PJ_OBJ PROJ_DLL *proj_obj_create_cartesian_2D_cs(PJ_CONTEXT *ctx,
+ PJ_CARTESIAN_CS_2D_TYPE type,
+ const char* unit_name,
+ double unit_conv_factor);
+
+
+/** Type of Cartesian 2D coordinate system. */
+typedef enum
+{
+ /* Longitude-Latitude */
+ PJ_ELLPS2D_LONGITUDE_LATITUDE,
+ /* Latitude-Longitude */
+ PJ_ELLPS2D_LATITUDE_LONGITUDE,
+} PJ_ELLIPSOIDAL_CS_2D_TYPE;
+
+PJ_OBJ PROJ_DLL *proj_obj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx,
+ PJ_ELLIPSOIDAL_CS_2D_TYPE type,
+ const char* unit_name,
+ double unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_geographic_crs(
+ PJ_CONTEXT *ctx,
+ const char *crs_name,
+ const char *datum_name,
+ const char *ellps_name,
+ double semi_major_metre, double inv_flattening,
+ const char *prime_meridian_name,
+ double prime_meridian_offset,
+ const char *pm_angular_units,
+ double pm_units_conv,
+ PJ_OBJ* ellipsoidal_cs);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_geographic_crs_from_datum(
+ PJ_CONTEXT *ctx,
+ const char *crs_name,
+ PJ_OBJ* datum,
+ PJ_OBJ* ellipsoidal_cs);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_geocentric_crs(
+ PJ_CONTEXT *ctx,
+ const char *crs_name,
+ const char *datum_name,
+ const char *ellps_name,
+ double semi_major_metre, double inv_flattening,
+ const char *prime_meridian_name,
+ double prime_meridian_offset,
+ const char *angular_units,
+ double angular_units_conv,
+ const char *linear_units,
+ double linear_units_conv);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_geocentric_crs_from_datum(
+ PJ_CONTEXT *ctx,
+ const char *crs_name,
+ const PJ_OBJ* datum,
+ const char *linear_units,
+ double linear_units_conv);
+
+PJ_OBJ PROJ_DLL *proj_obj_alter_name(PJ_CONTEXT *ctx,
+ const PJ_OBJ* obj, const char* name);
+
+PJ_OBJ PROJ_DLL *proj_obj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx,
+ const PJ_OBJ* obj,
+ const PJ_OBJ* new_geod_crs);
+
+PJ_OBJ PROJ_DLL *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx,
+ const PJ_OBJ* obj,
+ const char *angular_units,
+ double angular_units_conv);
+
+PJ_OBJ PROJ_DLL *proj_obj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx,
+ const PJ_OBJ* obj,
+ const char *linear_units,
+ double linear_units_conv);
+
+PJ_OBJ PROJ_DLL *proj_obj_crs_alter_parameters_linear_unit(PJ_CONTEXT *ctx,
+ const PJ_OBJ* obj,
+ const char *linear_units,
+ double linear_units_conv,
+ int convert_to_new_unit);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_engineering_crs(PJ_CONTEXT *ctx,
+ const char *crsName);
+
+/** Description of a parameter value for a Conversion. */
+typedef struct
+{
+ /** Parameter name. */
+ const char* name;
+ /** Parameter authority name. */
+ const char* auth_name;
+ /** Parameter code. */
+ const char* code;
+ /** Parameter value. */
+ double value;
+ /** Name of unit in which parameter value is expressed. */
+ const char* unit_name;
+ /** Conversion factor to SI of the unit. */
+ double unit_conv_factor;
+ /** Type of unit */
+ PJ_UNIT_TYPE unit_type;
+} PJ_PARAM_DESCRIPTION;
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion(PJ_CONTEXT *ctx,
+ const char* name,
+ const char* auth_name,
+ const char* code,
+ const char* method_name,
+ const char* method_auth_name,
+ const char* method_code,
+ int param_count,
+ const PJ_PARAM_DESCRIPTION* params);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_projected_crs(PJ_CONTEXT *ctx,
+ const char* crs_name,
+ const PJ_OBJ* geodetic_crs,
+ const PJ_OBJ* conversion,
+ const PJ_OBJ* coordinate_system);
+
+PJ_OBJ PROJ_DLL *proj_obj_crs_create_bound_crs(PJ_CONTEXT *ctx,
+ const PJ_OBJ *base_crs,
+ const PJ_OBJ *hub_crs,
+ const PJ_OBJ *transformation);
+
+PJ_OBJ PROJ_DLL *proj_obj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx,
+ const PJ_OBJ *crs);
+
+/* BEGIN: Generated by scripts/create_c_api_projections.py*/
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_utm(
+ PJ_CONTEXT *ctx,
+ int zone,
+ int north);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_transverse_mercator(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double scale,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_gauss_schreiber_transverse_mercator(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double scale,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_transverse_mercator_south_oriented(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double scale,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_two_point_equidistant(
+ PJ_CONTEXT *ctx,
+ double latitude_first_point,
+ double longitude_first_point,
+ double latitude_second_point,
+ double longitude_secon_point,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_tunisia_mapping_grid(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_albers_equal_area(
+ PJ_CONTEXT *ctx,
+ double latitude_false_origin,
+ double longitude_false_origin,
+ double latitude_first_parallel,
+ double latitude_second_parallel,
+ double easting_false_origin,
+ double northing_false_origin,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_1sp(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double scale,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp(
+ PJ_CONTEXT *ctx,
+ double latitude_false_origin,
+ double longitude_false_origin,
+ double latitude_first_parallel,
+ double latitude_second_parallel,
+ double easting_false_origin,
+ double northing_false_origin,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan(
+ PJ_CONTEXT *ctx,
+ double latitude_false_origin,
+ double longitude_false_origin,
+ double latitude_first_parallel,
+ double latitude_second_parallel,
+ double easting_false_origin,
+ double northing_false_origin,
+ double ellipsoid_scaling_factor,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium(
+ PJ_CONTEXT *ctx,
+ double latitude_false_origin,
+ double longitude_false_origin,
+ double latitude_first_parallel,
+ double latitude_second_parallel,
+ double easting_false_origin,
+ double northing_false_origin,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_azimuthal_equidistant(
+ PJ_CONTEXT *ctx,
+ double latitude_nat_origin,
+ double longitude_nat_origin,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_guam_projection(
+ PJ_CONTEXT *ctx,
+ double latitude_nat_origin,
+ double longitude_nat_origin,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_bonne(
+ PJ_CONTEXT *ctx,
+ double latitude_nat_origin,
+ double longitude_nat_origin,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical(
+ PJ_CONTEXT *ctx,
+ double latitude_first_parallel,
+ double longitude_nat_origin,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_cylindrical_equal_area(
+ PJ_CONTEXT *ctx,
+ double latitude_first_parallel,
+ double longitude_nat_origin,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_cassini_soldner(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_equidistant_conic(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double latitude_first_parallel,
+ double latitude_second_parallel,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_i(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_ii(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_iii(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_iv(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_v(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_vi(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_equidistant_cylindrical(
+ PJ_CONTEXT *ctx,
+ double latitude_first_parallel,
+ double longitude_nat_origin,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_equidistant_cylindrical_spherical(
+ PJ_CONTEXT *ctx,
+ double latitude_first_parallel,
+ double longitude_nat_origin,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_gall(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_goode_homolosine(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_interrupted_goode_homolosine(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_geostationary_satellite_sweep_x(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double height,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_geostationary_satellite_sweep_y(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double height,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_gnomonic(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_variant_a(
+ PJ_CONTEXT *ctx,
+ double latitude_projection_centre,
+ double longitude_projection_centre,
+ double azimuth_initial_line,
+ double angle_from_rectified_to_skrew_grid,
+ double scale,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_variant_b(
+ PJ_CONTEXT *ctx,
+ double latitude_projection_centre,
+ double longitude_projection_centre,
+ double azimuth_initial_line,
+ double angle_from_rectified_to_skrew_grid,
+ double scale,
+ double easting_projection_centre,
+ double northing_projection_centre,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_two_point_natural_origin(
+ PJ_CONTEXT *ctx,
+ double latitude_projection_centre,
+ double latitude_point1,
+ double longitude_point1,
+ double latitude_point2,
+ double longitude_point2,
+ double scale,
+ double easting_projection_centre,
+ double northing_projection_centre,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_international_map_world_polyconic(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double latitude_first_parallel,
+ double latitude_second_parallel,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_krovak_north_oriented(
+ PJ_CONTEXT *ctx,
+ double latitude_projection_centre,
+ double longitude_of_origin,
+ double colatitude_cone_axis,
+ double latitude_pseudo_standard_parallel,
+ double scale_factor_pseudo_standard_parallel,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_krovak(
+ PJ_CONTEXT *ctx,
+ double latitude_projection_centre,
+ double longitude_of_origin,
+ double colatitude_cone_axis,
+ double latitude_pseudo_standard_parallel,
+ double scale_factor_pseudo_standard_parallel,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_azimuthal_equal_area(
+ PJ_CONTEXT *ctx,
+ double latitude_nat_origin,
+ double longitude_nat_origin,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_miller_cylindrical(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_mercator_variant_a(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double scale,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_mercator_variant_b(
+ PJ_CONTEXT *ctx,
+ double latitude_first_parallel,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_popular_visualisation_pseudo_mercator(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_mollweide(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_new_zealand_mapping_grid(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_oblique_stereographic(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double scale,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_orthographic(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_american_polyconic(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_polar_stereographic_variant_a(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double scale,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_polar_stereographic_variant_b(
+ PJ_CONTEXT *ctx,
+ double latitude_standard_parallel,
+ double longitude_of_origin,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_robinson(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_sinusoidal(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_stereographic(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double scale,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_van_der_grinten(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_i(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_ii(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_iii(
+ PJ_CONTEXT *ctx,
+ double latitude_true_scale,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_iv(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_v(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_vi(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_vii(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_quadrilateralized_spherical_cube(
+ PJ_CONTEXT *ctx,
+ double center_lat,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_spherical_cross_track_height(
+ PJ_CONTEXT *ctx,
+ double peg_point_lat,
+ double peg_point_long,
+ double peg_point_heading,
+ double peg_point_height,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+PJ_OBJ PROJ_DLL *proj_obj_create_conversion_equal_earth(
+ PJ_CONTEXT *ctx,
+ double center_long,
+ double false_easting,
+ double false_northing,
+ const char* ang_unit_name, double ang_unit_conv_factor,
+ const char* linear_unit_name, double linear_unit_conv_factor);
+
+/* END: Generated by scripts/create_c_api_projections.py*/
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ndef PROJ_EXPERIMENTAL_H */