diff --git a/src/libproj.jl b/src/libproj.jl index f2f8fbb..500a28c 100644 --- a/src/libproj.jl +++ b/src/libproj.jl @@ -249,7 +249,7 @@ Should try to read the size\\_to\\_read first bytes at the specified offset of t error\\_string\\_max\\_size should be the maximum size that can be written into the out\\_error\\_string buffer (including terminating nul character). -### Returns +# Returns a non-NULL opaque handle in case of success. """ const proj_network_open_cbk_type = Ptr{Cvoid} @@ -270,7 +270,7 @@ Read size\\_to\\_read bytes from handle, starting at offset, into buffer. During error\\_string\\_max\\_size should be the maximum size that can be written into the out\\_error\\_string buffer (including terminating nul character). -### Returns +# Returns the number of bytes actually read (0 in case of error) """ const proj_network_read_range_type = Ptr{Cvoid} @@ -1791,6 +1791,13 @@ function proj_crs_get_datum_forced(crs, ctx = C_NULL) @ccall libproj.proj_crs_get_datum_forced(ctx::Ptr{PJ_CONTEXT}, crs::Ptr{PJ})::Ptr{PJ} end +function proj_crs_has_point_motion_operation(crs, ctx = C_NULL) + @ccall libproj.proj_crs_has_point_motion_operation( + ctx::Ptr{PJ_CONTEXT}, + crs::Ptr{PJ}, + )::Cint +end + function proj_datum_ensemble_get_member_count(datum_ensemble, ctx = C_NULL) @ccall libproj.proj_datum_ensemble_get_member_count( ctx::Ptr{PJ_CONTEXT}, @@ -1801,286 +1808,2578 @@ end function proj_datum_ensemble_get_accuracy(datum_ensemble, ctx = C_NULL) @ccall libproj.proj_datum_ensemble_get_accuracy( ctx::Ptr{PJ_CONTEXT}, - datum_ensemble::Ptr{PJ}, - )::Cdouble + datum_ensemble::Ptr{PJ}, + )::Cdouble +end + +function proj_datum_ensemble_get_member(datum_ensemble, member_index, ctx = C_NULL) + @ccall libproj.proj_datum_ensemble_get_member( + ctx::Ptr{PJ_CONTEXT}, + datum_ensemble::Ptr{PJ}, + member_index::Cint, + )::Ptr{PJ} +end + +function proj_dynamic_datum_get_frame_reference_epoch(datum, ctx = C_NULL) + @ccall libproj.proj_dynamic_datum_get_frame_reference_epoch( + ctx::Ptr{PJ_CONTEXT}, + datum::Ptr{PJ}, + )::Cdouble +end + +function proj_crs_get_coordinate_system(crs, ctx = C_NULL) + @ccall libproj.proj_crs_get_coordinate_system( + ctx::Ptr{PJ_CONTEXT}, + crs::Ptr{PJ}, + )::Ptr{PJ} +end + +function proj_cs_get_type(cs, ctx = C_NULL) + @ccall libproj.proj_cs_get_type( + ctx::Ptr{PJ_CONTEXT}, + cs::Ptr{PJ}, + )::PJ_COORDINATE_SYSTEM_TYPE +end + +function proj_cs_get_axis_count(cs, ctx = C_NULL) + @ccall libproj.proj_cs_get_axis_count(ctx::Ptr{PJ_CONTEXT}, cs::Ptr{PJ})::Cint +end + +function proj_cs_get_axis_info( + cs, + index, + out_name, + out_abbrev, + out_direction, + out_unit_conv_factor, + out_unit_name, + out_unit_auth_name, + out_unit_code, + ctx = C_NULL, +) + @ccall libproj.proj_cs_get_axis_info( + ctx::Ptr{PJ_CONTEXT}, + cs::Ptr{PJ}, + index::Cint, + out_name::Ptr{Cstring}, + out_abbrev::Ptr{Cstring}, + out_direction::Ptr{Cstring}, + out_unit_conv_factor::Ptr{Cdouble}, + out_unit_name::Ptr{Cstring}, + out_unit_auth_name::Ptr{Cstring}, + out_unit_code::Ptr{Cstring}, + )::Cint +end + +function proj_get_ellipsoid(obj, ctx = C_NULL) + @ccall libproj.proj_get_ellipsoid(ctx::Ptr{PJ_CONTEXT}, obj::Ptr{PJ})::Ptr{PJ} +end + +function proj_ellipsoid_get_parameters( + ellipsoid, + out_semi_major_metre, + out_semi_minor_metre, + out_is_semi_minor_computed, + out_inv_flattening, + ctx = C_NULL, +) + @ccall libproj.proj_ellipsoid_get_parameters( + ctx::Ptr{PJ_CONTEXT}, + ellipsoid::Ptr{PJ}, + out_semi_major_metre::Ptr{Cdouble}, + out_semi_minor_metre::Ptr{Cdouble}, + out_is_semi_minor_computed::Ptr{Cint}, + out_inv_flattening::Ptr{Cdouble}, + )::Cint +end + +function proj_get_celestial_body_name(obj, ctx = C_NULL) + aftercare( + @ccall( + libproj.proj_get_celestial_body_name( + ctx::Ptr{PJ_CONTEXT}, + obj::Ptr{PJ}, + )::Cstring + ) + ) +end + +function proj_get_prime_meridian(obj, ctx = C_NULL) + @ccall libproj.proj_get_prime_meridian(ctx::Ptr{PJ_CONTEXT}, obj::Ptr{PJ})::Ptr{PJ} +end + +function proj_prime_meridian_get_parameters( + prime_meridian, + out_longitude, + out_unit_conv_factor, + out_unit_name, + ctx = C_NULL, +) + @ccall libproj.proj_prime_meridian_get_parameters( + ctx::Ptr{PJ_CONTEXT}, + prime_meridian::Ptr{PJ}, + out_longitude::Ptr{Cdouble}, + out_unit_conv_factor::Ptr{Cdouble}, + out_unit_name::Ptr{Cstring}, + )::Cint +end + +function proj_crs_get_coordoperation(crs, ctx = C_NULL) + @ccall libproj.proj_crs_get_coordoperation(ctx::Ptr{PJ_CONTEXT}, crs::Ptr{PJ})::Ptr{PJ} +end + +function proj_coordoperation_get_method_info( + coordoperation, + out_method_name, + out_method_auth_name, + out_method_code, + ctx = C_NULL, +) + @ccall libproj.proj_coordoperation_get_method_info( + ctx::Ptr{PJ_CONTEXT}, + coordoperation::Ptr{PJ}, + out_method_name::Ptr{Cstring}, + out_method_auth_name::Ptr{Cstring}, + out_method_code::Ptr{Cstring}, + )::Cint +end + +function proj_coordoperation_is_instantiable(coordoperation, ctx = C_NULL) + @ccall libproj.proj_coordoperation_is_instantiable( + ctx::Ptr{PJ_CONTEXT}, + coordoperation::Ptr{PJ}, + )::Cint +end + +function proj_coordoperation_has_ballpark_transformation(coordoperation, ctx = C_NULL) + @ccall libproj.proj_coordoperation_has_ballpark_transformation( + ctx::Ptr{PJ_CONTEXT}, + coordoperation::Ptr{PJ}, + )::Cint +end + +function proj_coordoperation_get_param_count(coordoperation, ctx = C_NULL) + @ccall libproj.proj_coordoperation_get_param_count( + ctx::Ptr{PJ_CONTEXT}, + coordoperation::Ptr{PJ}, + )::Cint +end + +function proj_coordoperation_get_param_index(coordoperation, name, ctx = C_NULL) + @ccall libproj.proj_coordoperation_get_param_index( + ctx::Ptr{PJ_CONTEXT}, + coordoperation::Ptr{PJ}, + name::Cstring, + )::Cint +end + +function proj_coordoperation_get_param( + coordoperation, + index, + out_name, + out_auth_name, + out_code, + out_value, + out_value_string, + out_unit_conv_factor, + out_unit_name, + out_unit_auth_name, + out_unit_code, + out_unit_category, + ctx = C_NULL, +) + @ccall libproj.proj_coordoperation_get_param( + ctx::Ptr{PJ_CONTEXT}, + coordoperation::Ptr{PJ}, + index::Cint, + out_name::Ptr{Cstring}, + out_auth_name::Ptr{Cstring}, + out_code::Ptr{Cstring}, + out_value::Ptr{Cdouble}, + out_value_string::Ptr{Cstring}, + out_unit_conv_factor::Ptr{Cdouble}, + out_unit_name::Ptr{Cstring}, + out_unit_auth_name::Ptr{Cstring}, + out_unit_code::Ptr{Cstring}, + out_unit_category::Ptr{Cstring}, + )::Cint +end + +function proj_coordoperation_get_grid_used_count(coordoperation, ctx = C_NULL) + @ccall libproj.proj_coordoperation_get_grid_used_count( + ctx::Ptr{PJ_CONTEXT}, + coordoperation::Ptr{PJ}, + )::Cint +end + +function proj_coordoperation_get_grid_used( + coordoperation, + index, + out_short_name, + out_full_name, + out_package_name, + out_url, + out_direct_download, + out_open_license, + out_available, + ctx = C_NULL, +) + @ccall libproj.proj_coordoperation_get_grid_used( + ctx::Ptr{PJ_CONTEXT}, + coordoperation::Ptr{PJ}, + index::Cint, + out_short_name::Ptr{Cstring}, + out_full_name::Ptr{Cstring}, + out_package_name::Ptr{Cstring}, + out_url::Ptr{Cstring}, + out_direct_download::Ptr{Cint}, + out_open_license::Ptr{Cint}, + out_available::Ptr{Cint}, + )::Cint +end + +function proj_coordoperation_get_accuracy(obj, ctx = C_NULL) + @ccall libproj.proj_coordoperation_get_accuracy( + ctx::Ptr{PJ_CONTEXT}, + obj::Ptr{PJ}, + )::Cdouble +end + +function proj_coordoperation_get_towgs84_values( + coordoperation, + out_values, + value_count, + emit_error_if_incompatible, + ctx = C_NULL, +) + @ccall libproj.proj_coordoperation_get_towgs84_values( + ctx::Ptr{PJ_CONTEXT}, + coordoperation::Ptr{PJ}, + out_values::Ptr{Cdouble}, + value_count::Cint, + emit_error_if_incompatible::Cint, + )::Cint +end + +function proj_coordoperation_create_inverse(obj, ctx = C_NULL) + @ccall libproj.proj_coordoperation_create_inverse( + ctx::Ptr{PJ_CONTEXT}, + obj::Ptr{PJ}, + )::Ptr{PJ} +end + +function proj_concatoperation_get_step_count(concatoperation, ctx = C_NULL) + @ccall libproj.proj_concatoperation_get_step_count( + ctx::Ptr{PJ_CONTEXT}, + concatoperation::Ptr{PJ}, + )::Cint +end + +function proj_concatoperation_get_step(concatoperation, i_step, ctx = C_NULL) + @ccall libproj.proj_concatoperation_get_step( + ctx::Ptr{PJ_CONTEXT}, + concatoperation::Ptr{PJ}, + i_step::Cint, + )::Ptr{PJ} +end + +function proj_coordinate_metadata_create(crs, epoch, ctx = C_NULL) + @ccall libproj.proj_coordinate_metadata_create( + ctx::Ptr{PJ_CONTEXT}, + crs::Ptr{PJ}, + epoch::Cdouble, + )::Ptr{PJ} +end + +function proj_coordinate_metadata_get_epoch(obj, ctx = C_NULL) + @ccall libproj.proj_coordinate_metadata_get_epoch( + ctx::Ptr{PJ_CONTEXT}, + obj::Ptr{PJ}, + )::Cdouble +end + +""" + PJ_UNIT_TYPE + +Type of unit of measure. + +| Enumerator | Note | +| :------------------- | :-------------------------- | +| PJ\\_UT\\_ANGULAR | Angular unit of measure | +| PJ\\_UT\\_LINEAR | Linear unit of measure | +| PJ\\_UT\\_SCALE | Scale unit of measure | +| PJ\\_UT\\_TIME | Time unit of measure | +| PJ\\_UT\\_PARAMETRIC | Parametric unit of measure | +""" +@cenum PJ_UNIT_TYPE::UInt32 begin + PJ_UT_ANGULAR = 0 + PJ_UT_LINEAR = 1 + PJ_UT_SCALE = 2 + PJ_UT_TIME = 3 + PJ_UT_PARAMETRIC = 4 +end + +""" + PJ_AXIS_DESCRIPTION + +Axis description. + +| Field | Note | +| :------------------- | :------------------------------------ | +| name | Axis name. | +| abbreviation | Axis abbreviation. | +| direction | Axis direction. | +| unit\\_name | Axis unit name. | +| unit\\_conv\\_factor | Conversion factor to SI of the unit. | +| unit\\_type | Type of unit | +""" +struct PJ_AXIS_DESCRIPTION + name::Cstring + abbreviation::Cstring + direction::Cstring + unit_name::Cstring + unit_conv_factor::Cdouble + unit_type::PJ_UNIT_TYPE +end + +""" + PJ_CARTESIAN_CS_2D_TYPE + +Type of Cartesian 2D coordinate system. + +| Enumerator | Note | +| :-------------------------------------------------------------- | :-------------------------------------- | +| PJ\\_CART2D\\_EASTING\\_NORTHING | Easting-Norting | +| PJ\\_CART2D\\_NORTHING\\_EASTING | Northing-Easting | +| PJ\\_CART2D\\_NORTH\\_POLE\\_EASTING\\_SOUTH\\_NORTHING\\_SOUTH | North Pole Easting/SOUTH-Norting/SOUTH | +| PJ\\_CART2D\\_SOUTH\\_POLE\\_EASTING\\_NORTH\\_NORTHING\\_NORTH | South Pole Easting/NORTH-Norting/NORTH | +| PJ\\_CART2D\\_WESTING\\_SOUTHING | Westing-southing | +""" +@cenum PJ_CARTESIAN_CS_2D_TYPE::UInt32 begin + PJ_CART2D_EASTING_NORTHING = 0 + PJ_CART2D_NORTHING_EASTING = 1 + PJ_CART2D_NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH = 2 + PJ_CART2D_SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH = 3 + PJ_CART2D_WESTING_SOUTHING = 4 +end + +""" + PJ_ELLIPSOIDAL_CS_2D_TYPE + +Type of Ellipsoidal 2D coordinate system. + +| Enumerator | Note | +| :---------------------------------- | :------------------ | +| PJ\\_ELLPS2D\\_LONGITUDE\\_LATITUDE | Longitude-Latitude | +| PJ\\_ELLPS2D\\_LATITUDE\\_LONGITUDE | Latitude-Longitude | +""" +@cenum PJ_ELLIPSOIDAL_CS_2D_TYPE::UInt32 begin + PJ_ELLPS2D_LONGITUDE_LATITUDE = 0 + PJ_ELLPS2D_LATITUDE_LONGITUDE = 1 +end + +""" + PJ_ELLIPSOIDAL_CS_3D_TYPE + +Type of Ellipsoidal 3D coordinate system. + +| Enumerator | Note | +| :------------------------------------------- | :----------------------------- | +| PJ\\_ELLPS3D\\_LONGITUDE\\_LATITUDE\\_HEIGHT | Longitude-Latitude-Height(up) | +| PJ\\_ELLPS3D\\_LATITUDE\\_LONGITUDE\\_HEIGHT | Latitude-Longitude-Height(up) | +""" +@cenum PJ_ELLIPSOIDAL_CS_3D_TYPE::UInt32 begin + PJ_ELLPS3D_LONGITUDE_LATITUDE_HEIGHT = 0 + PJ_ELLPS3D_LATITUDE_LONGITUDE_HEIGHT = 1 +end + +""" + PJ_PARAM_DESCRIPTION + +Description of a parameter value for a Conversion. + +| Field | Note | +| :------------------- | :--------------------------------------------------- | +| name | Parameter name. | +| auth\\_name | Parameter authority name. | +| code | Parameter code. | +| value | Parameter value. | +| unit\\_name | Name of unit in which parameter value is expressed. | +| unit\\_conv\\_factor | Conversion factor to SI of the unit. | +| unit\\_type | Type of unit | +""" +struct PJ_PARAM_DESCRIPTION + name::Cstring + auth_name::Cstring + code::Cstring + value::Cdouble + unit_name::Cstring + unit_conv_factor::Cdouble + unit_type::PJ_UNIT_TYPE +end + +""" + proj_create_cs(type, axis_count, axis, ctx = C_NULL) + +` iso19111_advanced_functions Binding in C of advanced methods from` + +the C++ API @{ +""" +function proj_create_cs(type, axis_count, axis, ctx = C_NULL) + @ccall libproj.proj_create_cs( + ctx::Ptr{PJ_CONTEXT}, + type::PJ_COORDINATE_SYSTEM_TYPE, + axis_count::Cint, + axis::Ptr{PJ_AXIS_DESCRIPTION}, + )::Ptr{PJ} +end + +function proj_create_cartesian_2D_cs(type, unit_name, unit_conv_factor, ctx = C_NULL) + @ccall libproj.proj_create_cartesian_2D_cs( + ctx::Ptr{PJ_CONTEXT}, + type::PJ_CARTESIAN_CS_2D_TYPE, + unit_name::Cstring, + unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_ellipsoidal_2D_cs(type, unit_name, unit_conv_factor, ctx = C_NULL) + @ccall libproj.proj_create_ellipsoidal_2D_cs( + ctx::Ptr{PJ_CONTEXT}, + type::PJ_ELLIPSOIDAL_CS_2D_TYPE, + unit_name::Cstring, + unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_ellipsoidal_3D_cs( + type, + horizontal_angular_unit_name, + horizontal_angular_unit_conv_factor, + vertical_linear_unit_name, + vertical_linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_ellipsoidal_3D_cs( + ctx::Ptr{PJ_CONTEXT}, + type::PJ_ELLIPSOIDAL_CS_3D_TYPE, + horizontal_angular_unit_name::Cstring, + horizontal_angular_unit_conv_factor::Cdouble, + vertical_linear_unit_name::Cstring, + vertical_linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_query_geodetic_crs_from_datum( + crs_auth_name, + datum_auth_name, + datum_code, + crs_type, + ctx = C_NULL, +) + @ccall libproj.proj_query_geodetic_crs_from_datum( + ctx::Ptr{PJ_CONTEXT}, + crs_auth_name::Cstring, + datum_auth_name::Cstring, + datum_code::Cstring, + crs_type::Cstring, + )::Ptr{PJ_OBJ_LIST} +end + +function proj_create_geographic_crs( + crs_name, + datum_name, + ellps_name, + semi_major_metre, + inv_flattening, + prime_meridian_name, + prime_meridian_offset, + pm_angular_units, + pm_units_conv, + ellipsoidal_cs, + ctx = C_NULL, +) + @ccall libproj.proj_create_geographic_crs( + ctx::Ptr{PJ_CONTEXT}, + crs_name::Cstring, + datum_name::Cstring, + ellps_name::Cstring, + semi_major_metre::Cdouble, + inv_flattening::Cdouble, + prime_meridian_name::Cstring, + prime_meridian_offset::Cdouble, + pm_angular_units::Cstring, + pm_units_conv::Cdouble, + ellipsoidal_cs::Ptr{PJ}, + )::Ptr{PJ} +end + +function proj_create_geographic_crs_from_datum( + crs_name, + datum_or_datum_ensemble, + ellipsoidal_cs, + ctx = C_NULL, +) + @ccall libproj.proj_create_geographic_crs_from_datum( + ctx::Ptr{PJ_CONTEXT}, + crs_name::Cstring, + datum_or_datum_ensemble::Ptr{PJ}, + ellipsoidal_cs::Ptr{PJ}, + )::Ptr{PJ} +end + +function proj_create_geocentric_crs( + crs_name, + datum_name, + ellps_name, + semi_major_metre, + inv_flattening, + prime_meridian_name, + prime_meridian_offset, + angular_units, + angular_units_conv, + linear_units, + linear_units_conv, + ctx = C_NULL, +) + @ccall libproj.proj_create_geocentric_crs( + ctx::Ptr{PJ_CONTEXT}, + crs_name::Cstring, + datum_name::Cstring, + ellps_name::Cstring, + semi_major_metre::Cdouble, + inv_flattening::Cdouble, + prime_meridian_name::Cstring, + prime_meridian_offset::Cdouble, + angular_units::Cstring, + angular_units_conv::Cdouble, + linear_units::Cstring, + linear_units_conv::Cdouble, + )::Ptr{PJ} +end + +function proj_create_geocentric_crs_from_datum( + crs_name, + datum_or_datum_ensemble, + linear_units, + linear_units_conv, + ctx = C_NULL, +) + @ccall libproj.proj_create_geocentric_crs_from_datum( + ctx::Ptr{PJ_CONTEXT}, + crs_name::Cstring, + datum_or_datum_ensemble::Ptr{PJ}, + linear_units::Cstring, + linear_units_conv::Cdouble, + )::Ptr{PJ} +end + +function proj_create_derived_geographic_crs( + crs_name, + base_geographic_crs, + conversion, + ellipsoidal_cs, + ctx = C_NULL, +) + @ccall libproj.proj_create_derived_geographic_crs( + ctx::Ptr{PJ_CONTEXT}, + crs_name::Cstring, + base_geographic_crs::Ptr{PJ}, + conversion::Ptr{PJ}, + ellipsoidal_cs::Ptr{PJ}, + )::Ptr{PJ} +end + +function proj_is_derived_crs(crs, ctx = C_NULL) + @ccall libproj.proj_is_derived_crs(ctx::Ptr{PJ_CONTEXT}, crs::Ptr{PJ})::Cint +end + +function proj_alter_name(obj, name, ctx = C_NULL) + @ccall libproj.proj_alter_name( + ctx::Ptr{PJ_CONTEXT}, + obj::Ptr{PJ}, + name::Cstring, + )::Ptr{PJ} +end + +function proj_alter_id(obj, auth_name, code, ctx = C_NULL) + @ccall libproj.proj_alter_id( + ctx::Ptr{PJ_CONTEXT}, + obj::Ptr{PJ}, + auth_name::Cstring, + code::Cstring, + )::Ptr{PJ} +end + +function proj_crs_alter_geodetic_crs(obj, new_geod_crs, ctx = C_NULL) + @ccall libproj.proj_crs_alter_geodetic_crs( + ctx::Ptr{PJ_CONTEXT}, + obj::Ptr{PJ}, + new_geod_crs::Ptr{PJ}, + )::Ptr{PJ} +end + +function proj_crs_alter_cs_angular_unit( + obj, + angular_units, + angular_units_conv, + unit_auth_name, + unit_code, + ctx = C_NULL, +) + @ccall libproj.proj_crs_alter_cs_angular_unit( + ctx::Ptr{PJ_CONTEXT}, + obj::Ptr{PJ}, + angular_units::Cstring, + angular_units_conv::Cdouble, + unit_auth_name::Cstring, + unit_code::Cstring, + )::Ptr{PJ} +end + +function proj_crs_alter_cs_linear_unit( + obj, + linear_units, + linear_units_conv, + unit_auth_name, + unit_code, + ctx = C_NULL, +) + @ccall libproj.proj_crs_alter_cs_linear_unit( + ctx::Ptr{PJ_CONTEXT}, + obj::Ptr{PJ}, + linear_units::Cstring, + linear_units_conv::Cdouble, + unit_auth_name::Cstring, + unit_code::Cstring, + )::Ptr{PJ} +end + +function proj_crs_alter_parameters_linear_unit( + obj, + linear_units, + linear_units_conv, + unit_auth_name, + unit_code, + convert_to_new_unit, + ctx = C_NULL, +) + @ccall libproj.proj_crs_alter_parameters_linear_unit( + ctx::Ptr{PJ_CONTEXT}, + obj::Ptr{PJ}, + linear_units::Cstring, + linear_units_conv::Cdouble, + unit_auth_name::Cstring, + unit_code::Cstring, + convert_to_new_unit::Cint, + )::Ptr{PJ} +end + +function proj_crs_promote_to_3D(crs_3D_name, crs_2D, ctx = C_NULL) + @ccall libproj.proj_crs_promote_to_3D( + ctx::Ptr{PJ_CONTEXT}, + crs_3D_name::Cstring, + crs_2D::Ptr{PJ}, + )::Ptr{PJ} +end + +function proj_crs_create_projected_3D_crs_from_2D( + crs_name, + projected_2D_crs, + geog_3D_crs, + ctx = C_NULL, +) + @ccall libproj.proj_crs_create_projected_3D_crs_from_2D( + ctx::Ptr{PJ_CONTEXT}, + crs_name::Cstring, + projected_2D_crs::Ptr{PJ}, + geog_3D_crs::Ptr{PJ}, + )::Ptr{PJ} +end + +function proj_crs_demote_to_2D(crs_2D_name, crs_3D, ctx = C_NULL) + @ccall libproj.proj_crs_demote_to_2D( + ctx::Ptr{PJ_CONTEXT}, + crs_2D_name::Cstring, + crs_3D::Ptr{PJ}, + )::Ptr{PJ} +end + +function proj_create_engineering_crs(crsName, ctx = C_NULL) + @ccall libproj.proj_create_engineering_crs( + ctx::Ptr{PJ_CONTEXT}, + crsName::Cstring, + )::Ptr{PJ} +end + +function proj_create_vertical_crs( + crs_name, + datum_name, + linear_units, + linear_units_conv, + ctx = C_NULL, +) + @ccall libproj.proj_create_vertical_crs( + ctx::Ptr{PJ_CONTEXT}, + crs_name::Cstring, + datum_name::Cstring, + linear_units::Cstring, + linear_units_conv::Cdouble, + )::Ptr{PJ} +end + +function proj_create_vertical_crs_ex( + crs_name, + datum_name, + datum_auth_name, + datum_code, + linear_units, + linear_units_conv, + geoid_model_name, + geoid_model_auth_name, + geoid_model_code, + geoid_geog_crs, + options = C_NULL, + ctx = C_NULL, +) + @ccall libproj.proj_create_vertical_crs_ex( + ctx::Ptr{PJ_CONTEXT}, + crs_name::Cstring, + datum_name::Cstring, + datum_auth_name::Cstring, + datum_code::Cstring, + linear_units::Cstring, + linear_units_conv::Cdouble, + geoid_model_name::Cstring, + geoid_model_auth_name::Cstring, + geoid_model_code::Cstring, + geoid_geog_crs::Ptr{PJ}, + options::Ptr{Cstring}, + )::Ptr{PJ} +end + +function proj_create_compound_crs(crs_name, horiz_crs, vert_crs, ctx = C_NULL) + @ccall libproj.proj_create_compound_crs( + ctx::Ptr{PJ_CONTEXT}, + crs_name::Cstring, + horiz_crs::Ptr{PJ}, + vert_crs::Ptr{PJ}, + )::Ptr{PJ} +end + +function proj_create_conversion( + name, + auth_name, + code, + method_name, + method_auth_name, + method_code, + param_count, + params, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion( + ctx::Ptr{PJ_CONTEXT}, + name::Cstring, + auth_name::Cstring, + code::Cstring, + method_name::Cstring, + method_auth_name::Cstring, + method_code::Cstring, + param_count::Cint, + params::Ptr{PJ_PARAM_DESCRIPTION}, + )::Ptr{PJ} +end + +function proj_create_transformation( + name, + auth_name, + code, + source_crs, + target_crs, + interpolation_crs, + method_name, + method_auth_name, + method_code, + param_count, + params, + accuracy, + ctx = C_NULL, +) + @ccall libproj.proj_create_transformation( + ctx::Ptr{PJ_CONTEXT}, + name::Cstring, + auth_name::Cstring, + code::Cstring, + source_crs::Ptr{PJ}, + target_crs::Ptr{PJ}, + interpolation_crs::Ptr{PJ}, + method_name::Cstring, + method_auth_name::Cstring, + method_code::Cstring, + param_count::Cint, + params::Ptr{PJ_PARAM_DESCRIPTION}, + accuracy::Cdouble, + )::Ptr{PJ} +end + +function proj_convert_conversion_to_other_method( + conversion, + new_method_epsg_code, + new_method_name, + ctx = C_NULL, +) + @ccall libproj.proj_convert_conversion_to_other_method( + ctx::Ptr{PJ_CONTEXT}, + conversion::Ptr{PJ}, + new_method_epsg_code::Cint, + new_method_name::Cstring, + )::Ptr{PJ} +end + +function proj_create_projected_crs( + crs_name, + geodetic_crs, + conversion, + coordinate_system, + ctx = C_NULL, +) + @ccall libproj.proj_create_projected_crs( + ctx::Ptr{PJ_CONTEXT}, + crs_name::Cstring, + geodetic_crs::Ptr{PJ}, + conversion::Ptr{PJ}, + coordinate_system::Ptr{PJ}, + )::Ptr{PJ} +end + +function proj_crs_create_bound_crs(base_crs, hub_crs, transformation, ctx = C_NULL) + @ccall libproj.proj_crs_create_bound_crs( + ctx::Ptr{PJ_CONTEXT}, + base_crs::Ptr{PJ}, + hub_crs::Ptr{PJ}, + transformation::Ptr{PJ}, + )::Ptr{PJ} +end + +function proj_crs_create_bound_crs_to_WGS84(crs, options = C_NULL, ctx = C_NULL) + @ccall libproj.proj_crs_create_bound_crs_to_WGS84( + ctx::Ptr{PJ_CONTEXT}, + crs::Ptr{PJ}, + options::Ptr{Cstring}, + )::Ptr{PJ} +end + +function proj_crs_create_bound_vertical_crs( + vert_crs, + hub_geographic_3D_crs, + grid_name, + ctx = C_NULL, +) + @ccall libproj.proj_crs_create_bound_vertical_crs( + ctx::Ptr{PJ_CONTEXT}, + vert_crs::Ptr{PJ}, + hub_geographic_3D_crs::Ptr{PJ}, + grid_name::Cstring, + )::Ptr{PJ} +end + +function proj_create_conversion_utm(zone, north, ctx = C_NULL) + @ccall libproj.proj_create_conversion_utm( + ctx::Ptr{PJ_CONTEXT}, + zone::Cint, + north::Cint, + )::Ptr{PJ} +end + +function proj_create_conversion_transverse_mercator( + center_lat, + center_long, + scale, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_transverse_mercator( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + scale::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_gauss_schreiber_transverse_mercator( + center_lat, + center_long, + scale, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_gauss_schreiber_transverse_mercator( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + scale::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_transverse_mercator_south_oriented( + center_lat, + center_long, + scale, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_transverse_mercator_south_oriented( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + scale::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_two_point_equidistant( + latitude_first_point, + longitude_first_point, + latitude_second_point, + longitude_secon_point, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_two_point_equidistant( + ctx::Ptr{PJ_CONTEXT}, + latitude_first_point::Cdouble, + longitude_first_point::Cdouble, + latitude_second_point::Cdouble, + longitude_secon_point::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_tunisia_mapping_grid( + center_lat, + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_tunisia_mapping_grid( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_tunisia_mining_grid( + center_lat, + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_tunisia_mining_grid( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_albers_equal_area( + latitude_false_origin, + longitude_false_origin, + latitude_first_parallel, + latitude_second_parallel, + easting_false_origin, + northing_false_origin, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_albers_equal_area( + ctx::Ptr{PJ_CONTEXT}, + latitude_false_origin::Cdouble, + longitude_false_origin::Cdouble, + latitude_first_parallel::Cdouble, + latitude_second_parallel::Cdouble, + easting_false_origin::Cdouble, + northing_false_origin::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_lambert_conic_conformal_1sp( + center_lat, + center_long, + scale, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_lambert_conic_conformal_1sp( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + scale::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_lambert_conic_conformal_1sp_variant_b( + latitude_nat_origin, + scale, + latitude_false_origin, + longitude_false_origin, + easting_false_origin, + northing_false_origin, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_lambert_conic_conformal_1sp_variant_b( + ctx::Ptr{PJ_CONTEXT}, + latitude_nat_origin::Cdouble, + scale::Cdouble, + latitude_false_origin::Cdouble, + longitude_false_origin::Cdouble, + easting_false_origin::Cdouble, + northing_false_origin::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_lambert_conic_conformal_2sp( + latitude_false_origin, + longitude_false_origin, + latitude_first_parallel, + latitude_second_parallel, + easting_false_origin, + northing_false_origin, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_lambert_conic_conformal_2sp( + ctx::Ptr{PJ_CONTEXT}, + latitude_false_origin::Cdouble, + longitude_false_origin::Cdouble, + latitude_first_parallel::Cdouble, + latitude_second_parallel::Cdouble, + easting_false_origin::Cdouble, + northing_false_origin::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_lambert_conic_conformal_2sp_michigan( + latitude_false_origin, + longitude_false_origin, + latitude_first_parallel, + latitude_second_parallel, + easting_false_origin, + northing_false_origin, + ellipsoid_scaling_factor, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_lambert_conic_conformal_2sp_michigan( + ctx::Ptr{PJ_CONTEXT}, + latitude_false_origin::Cdouble, + longitude_false_origin::Cdouble, + latitude_first_parallel::Cdouble, + latitude_second_parallel::Cdouble, + easting_false_origin::Cdouble, + northing_false_origin::Cdouble, + ellipsoid_scaling_factor::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_lambert_conic_conformal_2sp_belgium( + latitude_false_origin, + longitude_false_origin, + latitude_first_parallel, + latitude_second_parallel, + easting_false_origin, + northing_false_origin, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_lambert_conic_conformal_2sp_belgium( + ctx::Ptr{PJ_CONTEXT}, + latitude_false_origin::Cdouble, + longitude_false_origin::Cdouble, + latitude_first_parallel::Cdouble, + latitude_second_parallel::Cdouble, + easting_false_origin::Cdouble, + northing_false_origin::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_azimuthal_equidistant( + latitude_nat_origin, + longitude_nat_origin, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_azimuthal_equidistant( + ctx::Ptr{PJ_CONTEXT}, + latitude_nat_origin::Cdouble, + longitude_nat_origin::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_guam_projection( + latitude_nat_origin, + longitude_nat_origin, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_guam_projection( + ctx::Ptr{PJ_CONTEXT}, + latitude_nat_origin::Cdouble, + longitude_nat_origin::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_bonne( + latitude_nat_origin, + longitude_nat_origin, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_bonne( + ctx::Ptr{PJ_CONTEXT}, + latitude_nat_origin::Cdouble, + longitude_nat_origin::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_lambert_cylindrical_equal_area_spherical( + latitude_first_parallel, + longitude_nat_origin, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_lambert_cylindrical_equal_area_spherical( + ctx::Ptr{PJ_CONTEXT}, + latitude_first_parallel::Cdouble, + longitude_nat_origin::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_lambert_cylindrical_equal_area( + latitude_first_parallel, + longitude_nat_origin, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_lambert_cylindrical_equal_area( + ctx::Ptr{PJ_CONTEXT}, + latitude_first_parallel::Cdouble, + longitude_nat_origin::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_cassini_soldner( + center_lat, + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_cassini_soldner( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_equidistant_conic( + center_lat, + center_long, + latitude_first_parallel, + latitude_second_parallel, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_equidistant_conic( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + latitude_first_parallel::Cdouble, + latitude_second_parallel::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_eckert_i( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_eckert_i( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_eckert_ii( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_eckert_ii( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_eckert_iii( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_eckert_iii( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_eckert_iv( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_eckert_iv( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_eckert_v( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_eckert_v( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_eckert_vi( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_eckert_vi( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_equidistant_cylindrical( + latitude_first_parallel, + longitude_nat_origin, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_equidistant_cylindrical( + ctx::Ptr{PJ_CONTEXT}, + latitude_first_parallel::Cdouble, + longitude_nat_origin::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_equidistant_cylindrical_spherical( + latitude_first_parallel, + longitude_nat_origin, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_equidistant_cylindrical_spherical( + ctx::Ptr{PJ_CONTEXT}, + latitude_first_parallel::Cdouble, + longitude_nat_origin::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_gall( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_gall( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_goode_homolosine( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_goode_homolosine( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_interrupted_goode_homolosine( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_interrupted_goode_homolosine( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_geostationary_satellite_sweep_x( + center_long, + height, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_geostationary_satellite_sweep_x( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + height::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_geostationary_satellite_sweep_y( + center_long, + height, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_geostationary_satellite_sweep_y( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + height::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_gnomonic( + center_lat, + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_gnomonic( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_hotine_oblique_mercator_variant_a( + latitude_projection_centre, + longitude_projection_centre, + azimuth_initial_line, + angle_from_rectified_to_skrew_grid, + scale, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_hotine_oblique_mercator_variant_a( + ctx::Ptr{PJ_CONTEXT}, + latitude_projection_centre::Cdouble, + longitude_projection_centre::Cdouble, + azimuth_initial_line::Cdouble, + angle_from_rectified_to_skrew_grid::Cdouble, + scale::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_hotine_oblique_mercator_variant_b( + latitude_projection_centre, + longitude_projection_centre, + azimuth_initial_line, + angle_from_rectified_to_skrew_grid, + scale, + easting_projection_centre, + northing_projection_centre, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_hotine_oblique_mercator_variant_b( + ctx::Ptr{PJ_CONTEXT}, + latitude_projection_centre::Cdouble, + longitude_projection_centre::Cdouble, + azimuth_initial_line::Cdouble, + angle_from_rectified_to_skrew_grid::Cdouble, + scale::Cdouble, + easting_projection_centre::Cdouble, + northing_projection_centre::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( + latitude_projection_centre, + latitude_point1, + longitude_point1, + latitude_point2, + longitude_point2, + scale, + easting_projection_centre, + northing_projection_centre, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( + ctx::Ptr{PJ_CONTEXT}, + latitude_projection_centre::Cdouble, + latitude_point1::Cdouble, + longitude_point1::Cdouble, + latitude_point2::Cdouble, + longitude_point2::Cdouble, + scale::Cdouble, + easting_projection_centre::Cdouble, + northing_projection_centre::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_laborde_oblique_mercator( + latitude_projection_centre, + longitude_projection_centre, + azimuth_initial_line, + scale, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_laborde_oblique_mercator( + ctx::Ptr{PJ_CONTEXT}, + latitude_projection_centre::Cdouble, + longitude_projection_centre::Cdouble, + azimuth_initial_line::Cdouble, + scale::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_international_map_world_polyconic( + center_long, + latitude_first_parallel, + latitude_second_parallel, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_international_map_world_polyconic( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + latitude_first_parallel::Cdouble, + latitude_second_parallel::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_krovak_north_oriented( + latitude_projection_centre, + longitude_of_origin, + colatitude_cone_axis, + latitude_pseudo_standard_parallel, + scale_factor_pseudo_standard_parallel, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_krovak_north_oriented( + ctx::Ptr{PJ_CONTEXT}, + latitude_projection_centre::Cdouble, + longitude_of_origin::Cdouble, + colatitude_cone_axis::Cdouble, + latitude_pseudo_standard_parallel::Cdouble, + scale_factor_pseudo_standard_parallel::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_krovak( + latitude_projection_centre, + longitude_of_origin, + colatitude_cone_axis, + latitude_pseudo_standard_parallel, + scale_factor_pseudo_standard_parallel, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_krovak( + ctx::Ptr{PJ_CONTEXT}, + latitude_projection_centre::Cdouble, + longitude_of_origin::Cdouble, + colatitude_cone_axis::Cdouble, + latitude_pseudo_standard_parallel::Cdouble, + scale_factor_pseudo_standard_parallel::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_lambert_azimuthal_equal_area( + latitude_nat_origin, + longitude_nat_origin, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_lambert_azimuthal_equal_area( + ctx::Ptr{PJ_CONTEXT}, + latitude_nat_origin::Cdouble, + longitude_nat_origin::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_miller_cylindrical( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_miller_cylindrical( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} +end + +function proj_create_conversion_mercator_variant_a( + center_lat, + center_long, + scale, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_mercator_variant_a( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + scale::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_datum_ensemble_get_member(datum_ensemble, member_index, ctx = C_NULL) - @ccall libproj.proj_datum_ensemble_get_member( +function proj_create_conversion_mercator_variant_b( + latitude_first_parallel, + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_mercator_variant_b( ctx::Ptr{PJ_CONTEXT}, - datum_ensemble::Ptr{PJ}, - member_index::Cint, + latitude_first_parallel::Cdouble, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, )::Ptr{PJ} end -function proj_dynamic_datum_get_frame_reference_epoch(datum, ctx = C_NULL) - @ccall libproj.proj_dynamic_datum_get_frame_reference_epoch( +function proj_create_conversion_popular_visualisation_pseudo_mercator( + center_lat, + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_popular_visualisation_pseudo_mercator( ctx::Ptr{PJ_CONTEXT}, - datum::Ptr{PJ}, - )::Cdouble + center_lat::Cdouble, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_crs_get_coordinate_system(crs, ctx = C_NULL) - @ccall libproj.proj_crs_get_coordinate_system( +function proj_create_conversion_mollweide( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_mollweide( ctx::Ptr{PJ_CONTEXT}, - crs::Ptr{PJ}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, )::Ptr{PJ} end -function proj_cs_get_type(cs, ctx = C_NULL) - @ccall libproj.proj_cs_get_type( +function proj_create_conversion_new_zealand_mapping_grid( + center_lat, + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_new_zealand_mapping_grid( ctx::Ptr{PJ_CONTEXT}, - cs::Ptr{PJ}, - )::PJ_COORDINATE_SYSTEM_TYPE + center_lat::Cdouble, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_cs_get_axis_count(cs, ctx = C_NULL) - @ccall libproj.proj_cs_get_axis_count(ctx::Ptr{PJ_CONTEXT}, cs::Ptr{PJ})::Cint +function proj_create_conversion_oblique_stereographic( + center_lat, + center_long, + scale, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_oblique_stereographic( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + scale::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_cs_get_axis_info( - cs, - index, - out_name, - out_abbrev, - out_direction, - out_unit_conv_factor, - out_unit_name, - out_unit_auth_name, - out_unit_code, +function proj_create_conversion_orthographic( + center_lat, + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, ctx = C_NULL, ) - @ccall libproj.proj_cs_get_axis_info( + @ccall libproj.proj_create_conversion_orthographic( ctx::Ptr{PJ_CONTEXT}, - cs::Ptr{PJ}, - index::Cint, - out_name::Ptr{Cstring}, - out_abbrev::Ptr{Cstring}, - out_direction::Ptr{Cstring}, - out_unit_conv_factor::Ptr{Cdouble}, - out_unit_name::Ptr{Cstring}, - out_unit_auth_name::Ptr{Cstring}, - out_unit_code::Ptr{Cstring}, - )::Cint + center_lat::Cdouble, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_get_ellipsoid(obj, ctx = C_NULL) - @ccall libproj.proj_get_ellipsoid(ctx::Ptr{PJ_CONTEXT}, obj::Ptr{PJ})::Ptr{PJ} +function proj_create_conversion_american_polyconic( + center_lat, + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_american_polyconic( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_ellipsoid_get_parameters( - ellipsoid, - out_semi_major_metre, - out_semi_minor_metre, - out_is_semi_minor_computed, - out_inv_flattening, +function proj_create_conversion_polar_stereographic_variant_a( + center_lat, + center_long, + scale, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, ctx = C_NULL, ) - @ccall libproj.proj_ellipsoid_get_parameters( + @ccall libproj.proj_create_conversion_polar_stereographic_variant_a( ctx::Ptr{PJ_CONTEXT}, - ellipsoid::Ptr{PJ}, - out_semi_major_metre::Ptr{Cdouble}, - out_semi_minor_metre::Ptr{Cdouble}, - out_is_semi_minor_computed::Ptr{Cint}, - out_inv_flattening::Ptr{Cdouble}, - )::Cint + center_lat::Cdouble, + center_long::Cdouble, + scale::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_get_celestial_body_name(obj, ctx = C_NULL) - aftercare( - @ccall( - libproj.proj_get_celestial_body_name( - ctx::Ptr{PJ_CONTEXT}, - obj::Ptr{PJ}, - )::Cstring - ) - ) +function proj_create_conversion_polar_stereographic_variant_b( + latitude_standard_parallel, + longitude_of_origin, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_polar_stereographic_variant_b( + ctx::Ptr{PJ_CONTEXT}, + latitude_standard_parallel::Cdouble, + longitude_of_origin::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_get_prime_meridian(obj, ctx = C_NULL) - @ccall libproj.proj_get_prime_meridian(ctx::Ptr{PJ_CONTEXT}, obj::Ptr{PJ})::Ptr{PJ} +function proj_create_conversion_robinson( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_robinson( + ctx::Ptr{PJ_CONTEXT}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_prime_meridian_get_parameters( - prime_meridian, - out_longitude, - out_unit_conv_factor, - out_unit_name, +function proj_create_conversion_sinusoidal( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, ctx = C_NULL, ) - @ccall libproj.proj_prime_meridian_get_parameters( + @ccall libproj.proj_create_conversion_sinusoidal( ctx::Ptr{PJ_CONTEXT}, - prime_meridian::Ptr{PJ}, - out_longitude::Ptr{Cdouble}, - out_unit_conv_factor::Ptr{Cdouble}, - out_unit_name::Ptr{Cstring}, - )::Cint + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_crs_get_coordoperation(crs, ctx = C_NULL) - @ccall libproj.proj_crs_get_coordoperation(ctx::Ptr{PJ_CONTEXT}, crs::Ptr{PJ})::Ptr{PJ} +function proj_create_conversion_stereographic( + center_lat, + center_long, + scale, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_stereographic( + ctx::Ptr{PJ_CONTEXT}, + center_lat::Cdouble, + center_long::Cdouble, + scale::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_coordoperation_get_method_info( - coordoperation, - out_method_name, - out_method_auth_name, - out_method_code, +function proj_create_conversion_van_der_grinten( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, ctx = C_NULL, ) - @ccall libproj.proj_coordoperation_get_method_info( + @ccall libproj.proj_create_conversion_van_der_grinten( ctx::Ptr{PJ_CONTEXT}, - coordoperation::Ptr{PJ}, - out_method_name::Ptr{Cstring}, - out_method_auth_name::Ptr{Cstring}, - out_method_code::Ptr{Cstring}, - )::Cint + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_coordoperation_is_instantiable(coordoperation, ctx = C_NULL) - @ccall libproj.proj_coordoperation_is_instantiable( +function proj_create_conversion_wagner_i( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_wagner_i( ctx::Ptr{PJ_CONTEXT}, - coordoperation::Ptr{PJ}, - )::Cint + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_coordoperation_has_ballpark_transformation(coordoperation, ctx = C_NULL) - @ccall libproj.proj_coordoperation_has_ballpark_transformation( +function proj_create_conversion_wagner_ii( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_wagner_ii( ctx::Ptr{PJ_CONTEXT}, - coordoperation::Ptr{PJ}, - )::Cint + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_coordoperation_get_param_count(coordoperation, ctx = C_NULL) - @ccall libproj.proj_coordoperation_get_param_count( +function proj_create_conversion_wagner_iii( + latitude_true_scale, + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_wagner_iii( ctx::Ptr{PJ_CONTEXT}, - coordoperation::Ptr{PJ}, - )::Cint + latitude_true_scale::Cdouble, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_coordoperation_get_param_index(coordoperation, name, ctx = C_NULL) - @ccall libproj.proj_coordoperation_get_param_index( +function proj_create_conversion_wagner_iv( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_wagner_iv( ctx::Ptr{PJ_CONTEXT}, - coordoperation::Ptr{PJ}, - name::Cstring, - )::Cint + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_coordoperation_get_param( - coordoperation, - index, - out_name, - out_auth_name, - out_code, - out_value, - out_value_string, - out_unit_conv_factor, - out_unit_name, - out_unit_auth_name, - out_unit_code, - out_unit_category, +function proj_create_conversion_wagner_v( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, ctx = C_NULL, ) - @ccall libproj.proj_coordoperation_get_param( + @ccall libproj.proj_create_conversion_wagner_v( ctx::Ptr{PJ_CONTEXT}, - coordoperation::Ptr{PJ}, - index::Cint, - out_name::Ptr{Cstring}, - out_auth_name::Ptr{Cstring}, - out_code::Ptr{Cstring}, - out_value::Ptr{Cdouble}, - out_value_string::Ptr{Cstring}, - out_unit_conv_factor::Ptr{Cdouble}, - out_unit_name::Ptr{Cstring}, - out_unit_auth_name::Ptr{Cstring}, - out_unit_code::Ptr{Cstring}, - out_unit_category::Ptr{Cstring}, - )::Cint + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_coordoperation_get_grid_used_count(coordoperation, ctx = C_NULL) - @ccall libproj.proj_coordoperation_get_grid_used_count( +function proj_create_conversion_wagner_vi( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_wagner_vi( ctx::Ptr{PJ_CONTEXT}, - coordoperation::Ptr{PJ}, - )::Cint + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_coordoperation_get_grid_used( - coordoperation, - index, - out_short_name, - out_full_name, - out_package_name, - out_url, - out_direct_download, - out_open_license, - out_available, +function proj_create_conversion_wagner_vii( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, ctx = C_NULL, ) - @ccall libproj.proj_coordoperation_get_grid_used( + @ccall libproj.proj_create_conversion_wagner_vii( ctx::Ptr{PJ_CONTEXT}, - coordoperation::Ptr{PJ}, - index::Cint, - out_short_name::Ptr{Cstring}, - out_full_name::Ptr{Cstring}, - out_package_name::Ptr{Cstring}, - out_url::Ptr{Cstring}, - out_direct_download::Ptr{Cint}, - out_open_license::Ptr{Cint}, - out_available::Ptr{Cint}, - )::Cint + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_coordoperation_get_accuracy(obj, ctx = C_NULL) - @ccall libproj.proj_coordoperation_get_accuracy( +function proj_create_conversion_quadrilateralized_spherical_cube( + center_lat, + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_quadrilateralized_spherical_cube( ctx::Ptr{PJ_CONTEXT}, - obj::Ptr{PJ}, - )::Cdouble + center_lat::Cdouble, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_coordoperation_get_towgs84_values( - coordoperation, - out_values, - value_count, - emit_error_if_incompatible, +function proj_create_conversion_spherical_cross_track_height( + peg_point_lat, + peg_point_long, + peg_point_heading, + peg_point_height, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, ctx = C_NULL, ) - @ccall libproj.proj_coordoperation_get_towgs84_values( + @ccall libproj.proj_create_conversion_spherical_cross_track_height( ctx::Ptr{PJ_CONTEXT}, - coordoperation::Ptr{PJ}, - out_values::Ptr{Cdouble}, - value_count::Cint, - emit_error_if_incompatible::Cint, - )::Cint + peg_point_lat::Cdouble, + peg_point_long::Cdouble, + peg_point_heading::Cdouble, + peg_point_height::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_coordoperation_create_inverse(obj, ctx = C_NULL) - @ccall libproj.proj_coordoperation_create_inverse( +function proj_create_conversion_equal_earth( + center_long, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_equal_earth( ctx::Ptr{PJ_CONTEXT}, - obj::Ptr{PJ}, + center_long::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, )::Ptr{PJ} end -function proj_concatoperation_get_step_count(concatoperation, ctx = C_NULL) - @ccall libproj.proj_concatoperation_get_step_count( +function proj_create_conversion_vertical_perspective( + topo_origin_lat, + topo_origin_long, + topo_origin_height, + view_point_height, + false_easting, + false_northing, + ang_unit_name, + ang_unit_conv_factor, + linear_unit_name, + linear_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_vertical_perspective( ctx::Ptr{PJ_CONTEXT}, - concatoperation::Ptr{PJ}, - )::Cint + topo_origin_lat::Cdouble, + topo_origin_long::Cdouble, + topo_origin_height::Cdouble, + view_point_height::Cdouble, + false_easting::Cdouble, + false_northing::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + linear_unit_name::Cstring, + linear_unit_conv_factor::Cdouble, + )::Ptr{PJ} end -function proj_concatoperation_get_step(concatoperation, i_step, ctx = C_NULL) - @ccall libproj.proj_concatoperation_get_step( +function proj_create_conversion_pole_rotation_grib_convention( + south_pole_lat_in_unrotated_crs, + south_pole_long_in_unrotated_crs, + axis_rotation, + ang_unit_name, + ang_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_pole_rotation_grib_convention( ctx::Ptr{PJ_CONTEXT}, - concatoperation::Ptr{PJ}, - i_step::Cint, + south_pole_lat_in_unrotated_crs::Cdouble, + south_pole_long_in_unrotated_crs::Cdouble, + axis_rotation::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, )::Ptr{PJ} end -function proj_coordinate_metadata_get_epoch(obj, ctx = C_NULL) - @ccall libproj.proj_coordinate_metadata_get_epoch( +function proj_create_conversion_pole_rotation_netcdf_cf_convention( + grid_north_pole_latitude, + grid_north_pole_longitude, + north_pole_grid_longitude, + ang_unit_name, + ang_unit_conv_factor, + ctx = C_NULL, +) + @ccall libproj.proj_create_conversion_pole_rotation_netcdf_cf_convention( ctx::Ptr{PJ_CONTEXT}, - obj::Ptr{PJ}, - )::Cdouble + grid_north_pole_latitude::Cdouble, + grid_north_pole_longitude::Cdouble, + north_pole_grid_longitude::Cdouble, + ang_unit_name::Cstring, + ang_unit_conv_factor::Cdouble, + )::Ptr{PJ} end """ @@ -2193,7 +4492,7 @@ end Initialize a [`geod_geodesic`](@ref) object. -### Parameters +# Arguments * `g`:\\[out\\] a pointer to the object to be initialized. * `a`:\\[in\\] the equatorial radius (meters). * `f`:\\[in\\] the flattening.******************************************************************** @@ -2224,7 +4523,7 @@ Example, determine the point 10000 km NE of JFK: ******************************************************************** -### Parameters +# Arguments * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `lat1`:\\[in\\] latitude of point 1 (degrees). * `lon1`:\\[in\\] longitude of point 1 (degrees). @@ -2256,7 +4555,7 @@ The general direct geodesic problem. With *flags* & ::GEOD\\_LONG\\_UNROLL bit set, the longitude is "unrolled" so that the quantity *lon2* − *lon1* indicates how many times and in what sense the geodesic encircles the ellipsoid.******************************************************************** -### Parameters +# Arguments * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `lat1`:\\[in\\] latitude of point 1 (degrees). * `lon1`:\\[in\\] longitude of point 1 (degrees). @@ -2271,7 +4570,7 @@ With *flags* & ::GEOD\\_LONG\\_UNROLL bit set, the longitude is "unrolled" so th * `pM12`:\\[out\\] pointer to the geodesic scale of point 2 relative to point 1 (dimensionless). * `pM21`:\\[out\\] pointer to the geodesic scale of point 1 relative to point 2 (dimensionless). * `pS12`:\\[out\\] pointer to the area under the geodesic (meters2). -### Returns +# Returns *a12* arc length from point 1 to point 2 (degrees). """ function geod_gendirect( @@ -2332,7 +4631,7 @@ Example, determine the distance between JFK and Singapore Changi Airport: ******************************************************************** -### Parameters +# Arguments * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `lat1`:\\[in\\] latitude of point 1 (degrees). * `lon1`:\\[in\\] longitude of point 1 (degrees). @@ -2362,7 +4661,7 @@ The general inverse geodesic calculation. *g* must have been initialized with a call to [`geod_init`](@ref)(). *lat1* and *lat2* should be in the range [−90°, 90°]. Any of the "return" arguments *ps12*, etc., may be replaced by 0, if you do not need some quantities computed.******************************************************************** -### Parameters +# Arguments * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `lat1`:\\[in\\] latitude of point 1 (degrees). * `lon1`:\\[in\\] longitude of point 1 (degrees). @@ -2375,7 +4674,7 @@ The general inverse geodesic calculation. * `pM12`:\\[out\\] pointer to the geodesic scale of point 2 relative to point 1 (dimensionless). * `pM21`:\\[out\\] pointer to the geodesic scale of point 1 relative to point 2 (dimensionless). * `pS12`:\\[out\\] pointer to the area under the geodesic (meters2). -### Returns +# Returns *a12* arc length from point 1 to point 2 (degrees). """ function geod_geninverse( @@ -2419,7 +4718,7 @@ The ::[`geod_mask`](@ref) values are: - *caps* |= ::GEOD\\_LATITUDE for the lati When initialized by this function, point 3 is undefined (l->s13 = l->a13 = NaN).******************************************************************** -### Parameters +# Arguments * `l`:\\[out\\] a pointer to the object to be initialized. * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `lat1`:\\[in\\] latitude of point 1 (degrees). @@ -2445,7 +4744,7 @@ Initialize a [`geod_geodesicline`](@ref) object in terms of the direct geodesic This function sets point 3 of the [`geod_geodesicline`](@ref) to correspond to point 2 of the direct geodesic problem. See [`geod_lineinit`](@ref)() for more information.******************************************************************** -### Parameters +# Arguments * `l`:\\[out\\] a pointer to the object to be initialized. * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `lat1`:\\[in\\] latitude of point 1 (degrees). @@ -2473,7 +4772,7 @@ Initialize a [`geod_geodesicline`](@ref) object in terms of the direct geodesic This function sets point 3 of the [`geod_geodesicline`](@ref) to correspond to point 2 of the direct geodesic problem. See [`geod_lineinit`](@ref)() for more information.******************************************************************** -### Parameters +# Arguments * `l`:\\[out\\] a pointer to the object to be initialized. * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `lat1`:\\[in\\] latitude of point 1 (degrees). @@ -2503,7 +4802,7 @@ Initialize a [`geod_geodesicline`](@ref) object in terms of the inverse geodesic This function sets point 3 of the [`geod_geodesicline`](@ref) to correspond to point 2 of the inverse geodesic problem. See [`geod_lineinit`](@ref)() for more information.******************************************************************** -### Parameters +# Arguments * `l`:\\[out\\] a pointer to the object to be initialized. * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `lat1`:\\[in\\] latitude of point 1 (degrees). @@ -2564,7 +4863,7 @@ A faster way using [`geod_position`](@ref)(): ******************************************************************** -### Parameters +# Arguments * `l`:\\[in\\] a pointer to the [`geod_geodesicline`](@ref) object specifying the geodesic line. * `s12`:\\[in\\] distance from point 1 to point 2 (meters); it can be negative. * `plat2`:\\[out\\] pointer to the latitude of point 2 (degrees). @@ -2610,7 +4909,7 @@ Example, compute way points between JFK and Singapore Changi Airport using [`geo ******************************************************************** -### Parameters +# Arguments * `l`:\\[in\\] a pointer to the [`geod_geodesicline`](@ref) object specifying the geodesic line. * `flags`:\\[in\\] bitor'ed combination of ::[`geod_flags`](@ref); *flags* & ::GEOD\\_ARCMODE determines the meaning of *s12_a12* and *flags* & ::GEOD\\_LONG\\_UNROLL "unrolls" *lon2*; if *flags* & ::GEOD\\_ARCMODE is 0, then *l* must have been initialized with *caps* |= ::GEOD\\_DISTANCE\\_IN. * `s12_a12`:\\[in\\] if *flags* & ::GEOD\\_ARCMODE is 0, this is the distance from point 1 to point 2 (meters); otherwise it is the arc length from point 1 to point 2 (degrees); it can be negative. @@ -2622,7 +4921,7 @@ Example, compute way points between JFK and Singapore Changi Airport using [`geo * `pM12`:\\[out\\] pointer to the geodesic scale of point 2 relative to point 1 (dimensionless); requires that *l* was initialized with *caps* |= ::GEOD\\_GEODESICSCALE. * `pM21`:\\[out\\] pointer to the geodesic scale of point 1 relative to point 2 (dimensionless); requires that *l* was initialized with *caps* |= ::GEOD\\_GEODESICSCALE. * `pS12`:\\[out\\] pointer to the area under the geodesic (meters2); requires that *l* was initialized with *caps* |= ::GEOD\\_AREA. -### Returns +# Returns *a12* arc length from point 1 to point 2 (degrees). """ function geod_genposition( @@ -2660,7 +4959,7 @@ Specify position of point 3 in terms of distance. This is only useful if the [`geod_geodesicline`](@ref) object has been constructed with *caps* |= ::GEOD\\_DISTANCE\\_IN.******************************************************************** -### Parameters +# Arguments * `l`:\\[in,out\\] a pointer to the [`geod_geodesicline`](@ref) object. * `s13`:\\[in\\] the distance from point 1 to point 3 (meters); it can be negative. """ @@ -2675,7 +4974,7 @@ Specify position of point 3 in terms of either distance or arc length. If flags = ::GEOD\\_NOFLAGS, this calls [`geod_setdistance`](@ref)(). If flags = ::GEOD\\_ARCMODE, the *s13* is only set if the [`geod_geodesicline`](@ref) object has been constructed with *caps* |= ::GEOD\\_DISTANCE.******************************************************************** -### Parameters +# Arguments * `l`:\\[in,out\\] a pointer to the [`geod_geodesicline`](@ref) object. * `flags`:\\[in\\] either ::GEOD\\_NOFLAGS or ::GEOD\\_ARCMODE to determining the meaning of the *s13_a13*. * `s13_a13`:\\[in\\] if *flags* = ::GEOD\\_NOFLAGS, this is the distance from point 1 to point 3 (meters); if *flags* = ::GEOD\\_ARCMODE, it is the arc length from point 1 to point 3 (degrees); it can be negative. @@ -2699,7 +4998,7 @@ The area and perimeter are accumulated at two times the standard floating point An example of the use of this function is given in the documentation for [`geod_polygon_compute`](@ref)().******************************************************************** -### Parameters +# Arguments * `p`:\\[out\\] a pointer to the object to be initialized. * `polylinep`:\\[in\\] non-zero if a polyline instead of a polygon. """ @@ -2712,7 +5011,7 @@ end Clear the polygon, allowing a new polygon to be started. -### Parameters +# Arguments * `p`:\\[in,out\\] a pointer to the object to be cleared.******************************************************************** """ function geod_polygon_clear(p) @@ -2728,7 +5027,7 @@ Add a point to the polygon or polyline. An example of the use of this function is given in the documentation for [`geod_polygon_compute`](@ref)().******************************************************************** -### Parameters +# Arguments * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `p`:\\[in,out\\] a pointer to the [`geod_polygon`](@ref) object specifying the polygon. * `lat`:\\[in\\] the latitude of the point (degrees). @@ -2750,7 +5049,7 @@ Add an edge to the polygon or polyline. *g* and *p* must have been initialized with calls to [`geod_init`](@ref)() and [`geod_polygon_init`](@ref)(), respectively. The same *g* must be used for all the points and edges in a polygon. This does nothing if no points have been added yet. The *lat* and *lon* fields of *p* give the location of the new vertex.******************************************************************** -### Parameters +# Arguments * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `p`:\\[in,out\\] a pointer to the [`geod_polygon`](@ref) object specifying the polygon. * `azi`:\\[in\\] azimuth at current point (degrees). @@ -2793,14 +5092,14 @@ Example, compute the perimeter and area of the geodesic triangle with vertices ( ******************************************************************** -### Parameters +# Arguments * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `p`:\\[in\\] a pointer to the [`geod_polygon`](@ref) object specifying the polygon. * `reverse`:\\[in\\] if non-zero then clockwise (instead of counter-clockwise) traversal counts as a positive area. * `sign`:\\[in\\] if non-zero then return a signed result for the area if the polygon is traversed in the "wrong" direction instead of returning the area for the rest of the earth. * `pA`:\\[out\\] pointer to the area of the polygon (meters2); only set if *polyline* is non-zero in the call to [`geod_polygon_init`](@ref)(). * `pP`:\\[out\\] pointer to the perimeter of the polygon or length of the polyline (meters). -### Returns +# Returns the number of points. """ function geod_polygon_compute(g, p, reverse, sign, pA, pP) @@ -2821,7 +5120,7 @@ Return the results assuming a tentative final test point is added; however, the *lat* should be in the range [−90°, 90°].******************************************************************** -### Parameters +# Arguments * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `p`:\\[in\\] a pointer to the [`geod_polygon`](@ref) object specifying the polygon. * `lat`:\\[in\\] the latitude of the test point (degrees). @@ -2830,7 +5129,7 @@ Return the results assuming a tentative final test point is added; however, the * `sign`:\\[in\\] if non-zero then return a signed result for the area if the polygon is traversed in the "wrong" direction instead of returning the area for the rest of the earth. * `pA`:\\[out\\] pointer to the area of the polygon (meters2); only set if *polyline* is non-zero in the call to [`geod_polygon_init`](@ref)(). * `pP`:\\[out\\] pointer to the perimeter of the polygon or length of the polyline (meters). -### Returns +# Returns the number of points. """ function geod_polygon_testpoint(g, p, lat, lon, reverse, sign, pA, pP) @@ -2851,7 +5150,7 @@ end Return the results assuming a tentative final test point is added via an azimuth and distance; however, the data for the test point is not saved. This lets you report a running result for the perimeter and area as the user moves the mouse cursor. Ordinary floating point arithmetic is used to accumulate the data for the test point; thus the area and perimeter returned are less accurate than if [`geod_polygon_addedge`](@ref)() and [`geod_polygon_compute`](@ref)() are used. -### Parameters +# Arguments * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `p`:\\[in\\] a pointer to the [`geod_polygon`](@ref) object specifying the polygon. * `azi`:\\[in\\] azimuth at current point (degrees). @@ -2860,7 +5159,7 @@ Return the results assuming a tentative final test point is added via an azimuth * `sign`:\\[in\\] if non-zero then return a signed result for the area if the polygon is traversed in the "wrong" direction instead of returning the area for the rest of the earth. * `pA`:\\[out\\] pointer to the area of the polygon (meters2); only set if *polyline* is non-zero in the call to [`geod_polygon_init`](@ref)(). * `pP`:\\[out\\] pointer to the perimeter of the polygon or length of the polyline (meters). -### Returns +# Returns the number of points.******************************************************************** """ function geod_polygon_testedge(g, p, azi, s, reverse, sign, pA, pP) @@ -2903,7 +5202,7 @@ Example, compute the area of Antarctica: ******************************************************************** -### Parameters +# Arguments * `g`:\\[in\\] a pointer to the [`geod_geodesic`](@ref) object specifying the ellipsoid. * `lats`:\\[in\\] an array of latitudes of the polygon vertices (degrees). * `lons`:\\[in\\] an array of longitudes of the polygon vertices (degrees). @@ -2974,7 +5273,7 @@ end const PROJ_VERSION_MAJOR = 9 -const PROJ_VERSION_MINOR = 3 +const PROJ_VERSION_MINOR = 4 const PROJ_VERSION_PATCH = 0 @@ -3007,6 +5306,8 @@ const PROJ_ERR_COORD_TRANSFM_OUTSIDE_GRID = PROJ_ERR_COORD_TRANSFM + 4 const PROJ_ERR_COORD_TRANSFM_GRID_AT_NODATA = PROJ_ERR_COORD_TRANSFM + 5 +const PROJ_ERR_COORD_TRANSFM_NO_CONVERGENCE = PROJ_ERR_COORD_TRANSFM + 6 + const PROJ_ERR_OTHER = 4096 const PROJ_ERR_OTHER_API_MISUSE = PROJ_ERR_OTHER + 1