1089 lines
49 KiB
C
1089 lines
49 KiB
C
/******************************************************************************
|
|
* $Id$
|
|
*
|
|
* Project: OpenGIS Simple Features Reference Implementation
|
|
* Purpose: C API and constant declarations for OGR Spatial References.
|
|
* Author: Frank Warmerdam, warmerdam@pobox.com
|
|
*
|
|
******************************************************************************
|
|
* Copyright (c) 2000, Frank Warmerdam
|
|
* Copyright (c) 2008-2013, Even Rouault <even dot rouault at spatialys.com>
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
****************************************************************************/
|
|
|
|
#ifndef OGR_SRS_API_H_INCLUDED
|
|
#define OGR_SRS_API_H_INCLUDED
|
|
|
|
#include <stdbool.h>
|
|
|
|
#ifndef SWIG
|
|
#include "ogr_core.h"
|
|
|
|
CPL_C_START
|
|
|
|
/**
|
|
* \file ogr_srs_api.h
|
|
*
|
|
* C spatial reference system services and defines.
|
|
*
|
|
* See also: ogr_spatialref.h
|
|
*/
|
|
|
|
/** Axis orientations (corresponds to CS_AxisOrientationEnum). */
|
|
typedef enum
|
|
{
|
|
OAO_Other = 0, /**< Other */
|
|
OAO_North = 1, /**< North */
|
|
OAO_South = 2, /**< South */
|
|
OAO_East = 3, /**< East */
|
|
OAO_West = 4, /**< West */
|
|
OAO_Up = 5, /**< Up (to space) */
|
|
OAO_Down = 6 /**< Down (to Earth center) */
|
|
} OGRAxisOrientation;
|
|
|
|
const char CPL_DLL *OSRAxisEnumToName(OGRAxisOrientation eOrientation);
|
|
|
|
#endif // ndef SWIG
|
|
|
|
/* ==================================================================== */
|
|
/* Some standard WKT geographic coordinate systems. */
|
|
/* ==================================================================== */
|
|
|
|
#ifdef USE_DEPRECATED_SRS_WKT_WGS84
|
|
#define SRS_WKT_WGS84 \
|
|
"GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS " \
|
|
"84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[" \
|
|
"\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]]" \
|
|
",UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]," \
|
|
"AUTHORITY[\"EPSG\",\"4326\"]]"
|
|
#endif
|
|
|
|
/** WGS 84 geodetic (lat/long) WKT / EPSG:4326 with lat,long ordering */
|
|
#define SRS_WKT_WGS84_LAT_LONG \
|
|
"GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS " \
|
|
"84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[" \
|
|
"\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]]" \
|
|
",UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[" \
|
|
"\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\"," \
|
|
"\"4326\"]]"
|
|
|
|
/* ==================================================================== */
|
|
/* Some "standard" strings. */
|
|
/* ==================================================================== */
|
|
|
|
/** Albers_Conic_Equal_Area projection */
|
|
#define SRS_PT_ALBERS_CONIC_EQUAL_AREA "Albers_Conic_Equal_Area"
|
|
/** Azimuthal_Equidistant projection */
|
|
#define SRS_PT_AZIMUTHAL_EQUIDISTANT "Azimuthal_Equidistant"
|
|
/** Cassini_Soldner projection */
|
|
#define SRS_PT_CASSINI_SOLDNER "Cassini_Soldner"
|
|
/** Cylindrical_Equal_Area projection */
|
|
#define SRS_PT_CYLINDRICAL_EQUAL_AREA "Cylindrical_Equal_Area"
|
|
/** Cylindrical_Equal_Area projection */
|
|
#define SRS_PT_BONNE "Bonne"
|
|
/** Eckert_I projection */
|
|
#define SRS_PT_ECKERT_I "Eckert_I"
|
|
/** Eckert_II projection */
|
|
#define SRS_PT_ECKERT_II "Eckert_II"
|
|
/** Eckert_III projection */
|
|
#define SRS_PT_ECKERT_III "Eckert_III"
|
|
/** Eckert_IV projection */
|
|
#define SRS_PT_ECKERT_IV "Eckert_IV"
|
|
/** Eckert_V projection */
|
|
#define SRS_PT_ECKERT_V "Eckert_V"
|
|
/** Eckert_VI projection */
|
|
#define SRS_PT_ECKERT_VI "Eckert_VI"
|
|
/** Equidistant_Conic projection */
|
|
#define SRS_PT_EQUIDISTANT_CONIC "Equidistant_Conic"
|
|
/** Equirectangular projection */
|
|
#define SRS_PT_EQUIRECTANGULAR "Equirectangular"
|
|
/** Gall_Stereographic projection */
|
|
#define SRS_PT_GALL_STEREOGRAPHIC "Gall_Stereographic"
|
|
/** Gauss_Schreiber_Transverse_Mercator projection */
|
|
#define SRS_PT_GAUSSSCHREIBERTMERCATOR "Gauss_Schreiber_Transverse_Mercator"
|
|
/** Geostationary_Satellite projection */
|
|
#define SRS_PT_GEOSTATIONARY_SATELLITE "Geostationary_Satellite"
|
|
/** Goode_Homolosine projection */
|
|
#define SRS_PT_GOODE_HOMOLOSINE "Goode_Homolosine"
|
|
/** Interrupted_Goode_Homolosine projection */
|
|
#define SRS_PT_IGH "Interrupted_Goode_Homolosine"
|
|
/** Gnomonic projection */
|
|
#define SRS_PT_GNOMONIC "Gnomonic"
|
|
/** Hotine_Oblique_Mercator_Azimuth_Center projection */
|
|
#define SRS_PT_HOTINE_OBLIQUE_MERCATOR_AZIMUTH_CENTER \
|
|
"Hotine_Oblique_Mercator_Azimuth_Center"
|
|
/** Hotine_Oblique_Mercator projection */
|
|
#define SRS_PT_HOTINE_OBLIQUE_MERCATOR "Hotine_Oblique_Mercator"
|
|
/** Hotine_Oblique_Mercator_Two_Point_Natural_Origin projection */
|
|
#define SRS_PT_HOTINE_OBLIQUE_MERCATOR_TWO_POINT_NATURAL_ORIGIN \
|
|
"Hotine_Oblique_Mercator_Two_Point_Natural_Origin"
|
|
/** Laborde_Oblique_Mercator projection */
|
|
#define SRS_PT_LABORDE_OBLIQUE_MERCATOR "Laborde_Oblique_Mercator"
|
|
/** Lambert_Conformal_Conic_1SP projection */
|
|
#define SRS_PT_LAMBERT_CONFORMAL_CONIC_1SP "Lambert_Conformal_Conic_1SP"
|
|
/** Lambert_Conformal_Conic_2SP projection */
|
|
#define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP "Lambert_Conformal_Conic_2SP"
|
|
/** Lambert_Conformal_Conic_2SP_Belgium projection */
|
|
#define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP_BELGIUM \
|
|
"Lambert_Conformal_Conic_2SP_Belgium"
|
|
/** Lambert_Azimuthal_Equal_Area projection */
|
|
#define SRS_PT_LAMBERT_AZIMUTHAL_EQUAL_AREA "Lambert_Azimuthal_Equal_Area"
|
|
/** Mercator_1SP projection */
|
|
#define SRS_PT_MERCATOR_1SP "Mercator_1SP"
|
|
/** Mercator_2SP projection */
|
|
#define SRS_PT_MERCATOR_2SP "Mercator_2SP"
|
|
/** Mercator_Auxiliary_Sphere is used used by ESRI to mean EPSG:3875 */
|
|
#define SRS_PT_MERCATOR_AUXILIARY_SPHERE "Mercator_Auxiliary_Sphere"
|
|
/** Miller_Cylindrical projection */
|
|
#define SRS_PT_MILLER_CYLINDRICAL "Miller_Cylindrical"
|
|
/** Mollweide projection */
|
|
#define SRS_PT_MOLLWEIDE "Mollweide"
|
|
/** New_Zealand_Map_Grid projection */
|
|
#define SRS_PT_NEW_ZEALAND_MAP_GRID "New_Zealand_Map_Grid"
|
|
/** Oblique_Stereographic projection */
|
|
#define SRS_PT_OBLIQUE_STEREOGRAPHIC "Oblique_Stereographic"
|
|
/** Orthographic projection */
|
|
#define SRS_PT_ORTHOGRAPHIC "Orthographic"
|
|
/** Polar_Stereographic projection */
|
|
#define SRS_PT_POLAR_STEREOGRAPHIC "Polar_Stereographic"
|
|
/** Polyconic projection */
|
|
#define SRS_PT_POLYCONIC "Polyconic"
|
|
/** Robinson projection */
|
|
#define SRS_PT_ROBINSON "Robinson"
|
|
/** Sinusoidal projection */
|
|
#define SRS_PT_SINUSOIDAL "Sinusoidal"
|
|
/** Stereographic projection */
|
|
#define SRS_PT_STEREOGRAPHIC "Stereographic"
|
|
/** Swiss_Oblique_Cylindrical projection */
|
|
#define SRS_PT_SWISS_OBLIQUE_CYLINDRICAL "Swiss_Oblique_Cylindrical"
|
|
/** Transverse_Mercator projection */
|
|
#define SRS_PT_TRANSVERSE_MERCATOR "Transverse_Mercator"
|
|
/** Transverse_Mercator_South_Orientated projection */
|
|
#define SRS_PT_TRANSVERSE_MERCATOR_SOUTH_ORIENTED \
|
|
"Transverse_Mercator_South_Orientated"
|
|
|
|
/* special mapinfo variants on Transverse Mercator */
|
|
/** Transverse_Mercator_MapInfo_21 projection */
|
|
#define SRS_PT_TRANSVERSE_MERCATOR_MI_21 "Transverse_Mercator_MapInfo_21"
|
|
/** Transverse_Mercator_MapInfo_22 projection */
|
|
#define SRS_PT_TRANSVERSE_MERCATOR_MI_22 "Transverse_Mercator_MapInfo_22"
|
|
/** Transverse_Mercator_MapInfo_23 projection */
|
|
#define SRS_PT_TRANSVERSE_MERCATOR_MI_23 "Transverse_Mercator_MapInfo_23"
|
|
/** Transverse_Mercator_MapInfo_24 projection */
|
|
#define SRS_PT_TRANSVERSE_MERCATOR_MI_24 "Transverse_Mercator_MapInfo_24"
|
|
/** Transverse_Mercator_MapInfo_25 projection */
|
|
#define SRS_PT_TRANSVERSE_MERCATOR_MI_25 "Transverse_Mercator_MapInfo_25"
|
|
|
|
/** Tunisia_Mining_Grid projection */
|
|
#define SRS_PT_TUNISIA_MINING_GRID "Tunisia_Mining_Grid"
|
|
/** Two_Point_Equidistant projection */
|
|
#define SRS_PT_TWO_POINT_EQUIDISTANT "Two_Point_Equidistant"
|
|
/** VanDerGrinten projection */
|
|
#define SRS_PT_VANDERGRINTEN "VanDerGrinten"
|
|
/** Krovak projection */
|
|
#define SRS_PT_KROVAK "Krovak"
|
|
/** International_Map_of_the_World_Polyconic projection */
|
|
#define SRS_PT_IMW_POLYCONIC "International_Map_of_the_World_Polyconic"
|
|
/** Wagner_I projection */
|
|
#define SRS_PT_WAGNER_I "Wagner_I"
|
|
/** Wagner_II projection */
|
|
#define SRS_PT_WAGNER_II "Wagner_II"
|
|
/** Wagner_III projection */
|
|
#define SRS_PT_WAGNER_III "Wagner_III"
|
|
/** Wagner_IV projection */
|
|
#define SRS_PT_WAGNER_IV "Wagner_IV"
|
|
/** Wagner_V projection */
|
|
#define SRS_PT_WAGNER_V "Wagner_V"
|
|
/** Wagner_VI projection */
|
|
#define SRS_PT_WAGNER_VI "Wagner_VI"
|
|
/** Wagner_VII projection */
|
|
#define SRS_PT_WAGNER_VII "Wagner_VII"
|
|
/** Quadrilateralized_Spherical_Cube projection */
|
|
#define SRS_PT_QSC "Quadrilateralized_Spherical_Cube"
|
|
/** Aitoff projection */
|
|
#define SRS_PT_AITOFF "Aitoff"
|
|
/** Winkel_I projection */
|
|
#define SRS_PT_WINKEL_I "Winkel_I"
|
|
/** Winkel_II projection */
|
|
#define SRS_PT_WINKEL_II "Winkel_II"
|
|
/** Winkel_Tripel projection */
|
|
#define SRS_PT_WINKEL_TRIPEL "Winkel_Tripel"
|
|
/** Craster_Parabolic projection */
|
|
#define SRS_PT_CRASTER_PARABOLIC "Craster_Parabolic"
|
|
/** Loximuthal projection */
|
|
#define SRS_PT_LOXIMUTHAL "Loximuthal"
|
|
/** Quartic_Authalic projection */
|
|
#define SRS_PT_QUARTIC_AUTHALIC "Quartic_Authalic"
|
|
/** Spherical_Cross_Track_Height projection */
|
|
#define SRS_PT_SCH "Spherical_Cross_Track_Height"
|
|
|
|
/** central_meridian projection parameter */
|
|
#define SRS_PP_CENTRAL_MERIDIAN "central_meridian"
|
|
/** scale_factor projection parameter */
|
|
#define SRS_PP_SCALE_FACTOR "scale_factor"
|
|
/** standard_parallel_1 projection parameter */
|
|
#define SRS_PP_STANDARD_PARALLEL_1 "standard_parallel_1"
|
|
/** standard_parallel_2 projection parameter */
|
|
#define SRS_PP_STANDARD_PARALLEL_2 "standard_parallel_2"
|
|
/** pseudo_standard_parallel_1 projection parameter */
|
|
#define SRS_PP_PSEUDO_STD_PARALLEL_1 "pseudo_standard_parallel_1"
|
|
/** longitude_of_center projection parameter */
|
|
#define SRS_PP_LONGITUDE_OF_CENTER "longitude_of_center"
|
|
/** latitude_of_center projection parameter */
|
|
#define SRS_PP_LATITUDE_OF_CENTER "latitude_of_center"
|
|
/** longitude_of_origin projection parameter */
|
|
#define SRS_PP_LONGITUDE_OF_ORIGIN "longitude_of_origin"
|
|
/** latitude_of_origin projection parameter */
|
|
#define SRS_PP_LATITUDE_OF_ORIGIN "latitude_of_origin"
|
|
/** false_easting projection parameter */
|
|
#define SRS_PP_FALSE_EASTING "false_easting"
|
|
/** false_northing projection parameter */
|
|
#define SRS_PP_FALSE_NORTHING "false_northing"
|
|
/** azimuth projection parameter */
|
|
#define SRS_PP_AZIMUTH "azimuth"
|
|
/** longitude_of_point_1 projection parameter */
|
|
#define SRS_PP_LONGITUDE_OF_POINT_1 "longitude_of_point_1"
|
|
/** latitude_of_point_1 projection parameter */
|
|
#define SRS_PP_LATITUDE_OF_POINT_1 "latitude_of_point_1"
|
|
/** longitude_of_point_2 projection parameter */
|
|
#define SRS_PP_LONGITUDE_OF_POINT_2 "longitude_of_point_2"
|
|
/** latitude_of_point_2 projection parameter */
|
|
#define SRS_PP_LATITUDE_OF_POINT_2 "latitude_of_point_2"
|
|
/** longitude_of_point_3 projection parameter */
|
|
#define SRS_PP_LONGITUDE_OF_POINT_3 "longitude_of_point_3"
|
|
/** latitude_of_point_3 projection parameter */
|
|
#define SRS_PP_LATITUDE_OF_POINT_3 "latitude_of_point_3"
|
|
/** rectified_grid_angle projection parameter */
|
|
#define SRS_PP_RECTIFIED_GRID_ANGLE "rectified_grid_angle"
|
|
/** landsat_number projection parameter */
|
|
#define SRS_PP_LANDSAT_NUMBER "landsat_number"
|
|
/** path_number projection parameter */
|
|
#define SRS_PP_PATH_NUMBER "path_number"
|
|
/** perspective_point_height projection parameter */
|
|
#define SRS_PP_PERSPECTIVE_POINT_HEIGHT "perspective_point_height"
|
|
/** satellite_height projection parameter */
|
|
#define SRS_PP_SATELLITE_HEIGHT "satellite_height"
|
|
/** fipszone projection parameter */
|
|
#define SRS_PP_FIPSZONE "fipszone"
|
|
/** zone projection parameter */
|
|
#define SRS_PP_ZONE "zone"
|
|
/** Latitude_Of_1st_Point projection parameter */
|
|
#define SRS_PP_LATITUDE_OF_1ST_POINT "Latitude_Of_1st_Point"
|
|
/** Longitude_Of_1st_Point projection parameter */
|
|
#define SRS_PP_LONGITUDE_OF_1ST_POINT "Longitude_Of_1st_Point"
|
|
/** Latitude_Of_2nd_Point projection parameter */
|
|
#define SRS_PP_LATITUDE_OF_2ND_POINT "Latitude_Of_2nd_Point"
|
|
/** Longitude_Of_2nd_Point projection parameter */
|
|
#define SRS_PP_LONGITUDE_OF_2ND_POINT "Longitude_Of_2nd_Point"
|
|
/** peg_point_latitude projection parameter */
|
|
#define SRS_PP_PEG_POINT_LATITUDE "peg_point_latitude"
|
|
/** peg_point_longitude projection parameter */
|
|
#define SRS_PP_PEG_POINT_LONGITUDE "peg_point_longitude"
|
|
/** peg_point_heading projection parameter */
|
|
#define SRS_PP_PEG_POINT_HEADING "peg_point_heading"
|
|
/** peg_point_height projection parameter */
|
|
#define SRS_PP_PEG_POINT_HEIGHT "peg_point_height"
|
|
|
|
/** Linear unit Meter */
|
|
#define SRS_UL_METER "Meter"
|
|
/** Linear unit Foot (International) */
|
|
#define SRS_UL_FOOT "Foot (International)" /* or just "FOOT"? */
|
|
/** Linear unit Foot (International) conversion factor to meter*/
|
|
#define SRS_UL_FOOT_CONV "0.3048"
|
|
/** Linear unit Foot */
|
|
#define SRS_UL_US_FOOT "Foot_US" /* or "US survey foot" from EPSG */
|
|
/** Linear unit Foot conversion factor to meter */
|
|
#define SRS_UL_US_FOOT_CONV "0.3048006096012192"
|
|
/** Linear unit Nautical Mile */
|
|
#define SRS_UL_NAUTICAL_MILE "Nautical Mile"
|
|
/** Linear unit Nautical Mile conversion factor to meter */
|
|
#define SRS_UL_NAUTICAL_MILE_CONV "1852.0"
|
|
/** Linear unit Link */
|
|
#define SRS_UL_LINK "Link" /* Based on US Foot */
|
|
/** Linear unit Link conversion factor to meter */
|
|
#define SRS_UL_LINK_CONV "0.20116684023368047"
|
|
/** Linear unit Chain */
|
|
#define SRS_UL_CHAIN "Chain" /* based on US Foot */
|
|
/** Linear unit Chain conversion factor to meter */
|
|
#define SRS_UL_CHAIN_CONV "20.116684023368047"
|
|
/** Linear unit Rod */
|
|
#define SRS_UL_ROD "Rod" /* based on US Foot */
|
|
/** Linear unit Rod conversion factor to meter */
|
|
#define SRS_UL_ROD_CONV "5.02921005842012"
|
|
/** Linear unit Link_Clarke */
|
|
#define SRS_UL_LINK_Clarke "Link_Clarke"
|
|
/** Linear unit Link_Clarke conversion factor to meter */
|
|
#define SRS_UL_LINK_Clarke_CONV "0.2011661949"
|
|
|
|
/** Linear unit Kilometer */
|
|
#define SRS_UL_KILOMETER "Kilometer"
|
|
/** Linear unit Kilometer conversion factor to meter */
|
|
#define SRS_UL_KILOMETER_CONV "1000."
|
|
/** Linear unit Decimeter */
|
|
#define SRS_UL_DECIMETER "Decimeter"
|
|
/** Linear unit Decimeter conversion factor to meter */
|
|
#define SRS_UL_DECIMETER_CONV "0.1"
|
|
/** Linear unit Decimeter */
|
|
#define SRS_UL_CENTIMETER "Centimeter"
|
|
/** Linear unit Decimeter conversion factor to meter */
|
|
#define SRS_UL_CENTIMETER_CONV "0.01"
|
|
/** Linear unit Millimeter */
|
|
#define SRS_UL_MILLIMETER "Millimeter"
|
|
/** Linear unit Millimeter conversion factor to meter */
|
|
#define SRS_UL_MILLIMETER_CONV "0.001"
|
|
/** Linear unit Nautical_Mile_International */
|
|
#define SRS_UL_INTL_NAUT_MILE "Nautical_Mile_International"
|
|
/** Linear unit Nautical_Mile_International conversion factor to meter */
|
|
#define SRS_UL_INTL_NAUT_MILE_CONV "1852.0"
|
|
/** Linear unit Inch_International */
|
|
#define SRS_UL_INTL_INCH "Inch_International"
|
|
/** Linear unit Inch_International conversion factor to meter */
|
|
#define SRS_UL_INTL_INCH_CONV "0.0254"
|
|
/** Linear unit Foot_International */
|
|
#define SRS_UL_INTL_FOOT "Foot_International"
|
|
/** Linear unit Foot_International conversion factor to meter */
|
|
#define SRS_UL_INTL_FOOT_CONV "0.3048"
|
|
/** Linear unit Yard_International */
|
|
#define SRS_UL_INTL_YARD "Yard_International"
|
|
/** Linear unit Yard_International conversion factor to meter */
|
|
#define SRS_UL_INTL_YARD_CONV "0.9144"
|
|
/** Linear unit Statute_Mile_International */
|
|
#define SRS_UL_INTL_STAT_MILE "Statute_Mile_International"
|
|
/** Linear unit Statute_Mile_Internationalconversion factor to meter */
|
|
#define SRS_UL_INTL_STAT_MILE_CONV "1609.344"
|
|
/** Linear unit Fathom_International */
|
|
#define SRS_UL_INTL_FATHOM "Fathom_International"
|
|
/** Linear unit Fathom_International conversion factor to meter */
|
|
#define SRS_UL_INTL_FATHOM_CONV "1.8288"
|
|
/** Linear unit Chain_International */
|
|
#define SRS_UL_INTL_CHAIN "Chain_International"
|
|
/** Linear unit Chain_International conversion factor to meter */
|
|
#define SRS_UL_INTL_CHAIN_CONV "20.1168"
|
|
/** Linear unit Link_International */
|
|
#define SRS_UL_INTL_LINK "Link_International"
|
|
/** Linear unit Link_International conversion factor to meter */
|
|
#define SRS_UL_INTL_LINK_CONV "0.201168"
|
|
/** Linear unit Inch_US_Surveyor */
|
|
#define SRS_UL_US_INCH "Inch_US_Surveyor"
|
|
/** Linear unit Inch_US_Surveyor conversion factor to meter */
|
|
#define SRS_UL_US_INCH_CONV "0.025400050800101603"
|
|
/** Linear unit Yard_US_Surveyor */
|
|
#define SRS_UL_US_YARD "Yard_US_Surveyor"
|
|
/** Linear unit Yard_US_Surveyor conversion factor to meter */
|
|
#define SRS_UL_US_YARD_CONV "0.914401828803658"
|
|
/** Linear unit Chain_US_Surveyor */
|
|
#define SRS_UL_US_CHAIN "Chain_US_Surveyor"
|
|
/** Linear unit Chain_US_Surveyor conversion factor to meter */
|
|
#define SRS_UL_US_CHAIN_CONV "20.11684023368047"
|
|
/** Linear unit Statute_Mile_US_Surveyor */
|
|
#define SRS_UL_US_STAT_MILE "Statute_Mile_US_Surveyor"
|
|
/** Linear unit Statute_Mile_US_Surveyor conversion factor to meter */
|
|
#define SRS_UL_US_STAT_MILE_CONV "1609.347218694437"
|
|
/** Linear unit Yard_Indian */
|
|
#define SRS_UL_INDIAN_YARD "Yard_Indian"
|
|
/** Linear unit Yard_Indian conversion factor to meter */
|
|
#define SRS_UL_INDIAN_YARD_CONV "0.91439523"
|
|
/** Linear unit Foot_Indian */
|
|
#define SRS_UL_INDIAN_FOOT "Foot_Indian"
|
|
/** Linear unit Foot_Indian conversion factor to meter */
|
|
#define SRS_UL_INDIAN_FOOT_CONV "0.30479841"
|
|
/** Linear unit Chain_Indian */
|
|
#define SRS_UL_INDIAN_CHAIN "Chain_Indian"
|
|
/** Linear unit Chain_Indian conversion factor to meter */
|
|
#define SRS_UL_INDIAN_CHAIN_CONV "20.11669506"
|
|
|
|
/** Angular unit degree */
|
|
#define SRS_UA_DEGREE "degree"
|
|
/** Angular unit degree conversion factor to radians */
|
|
#define SRS_UA_DEGREE_CONV "0.0174532925199433"
|
|
/** Angular unit radian */
|
|
#define SRS_UA_RADIAN "radian"
|
|
|
|
/** Prime meridian Greenwich */
|
|
#define SRS_PM_GREENWICH "Greenwich"
|
|
|
|
/** North_American_Datum_1927 datum name */
|
|
#define SRS_DN_NAD27 "North_American_Datum_1927"
|
|
/** North_American_Datum_1983 datum name */
|
|
#define SRS_DN_NAD83 "North_American_Datum_1983"
|
|
/** WGS_1972 datum name */
|
|
#define SRS_DN_WGS72 "WGS_1972"
|
|
/** WGS_1984 datum name */
|
|
#define SRS_DN_WGS84 "WGS_1984"
|
|
|
|
/** Semi-major axis of the WGS84 ellipsoid */
|
|
#define SRS_WGS84_SEMIMAJOR 6378137.0
|
|
/** Inverse flattening of the WGS84 ellipsoid */
|
|
#define SRS_WGS84_INVFLATTENING 298.257223563
|
|
|
|
#ifndef SWIG
|
|
/* -------------------------------------------------------------------- */
|
|
/* C Wrappers for C++ objects and methods. */
|
|
/* -------------------------------------------------------------------- */
|
|
#ifndef DEFINED_OGRSpatialReferenceH
|
|
/*! @cond Doxygen_Suppress */
|
|
#define DEFINED_OGRSpatialReferenceH
|
|
/*! @endcond */
|
|
|
|
#ifdef DEBUG
|
|
typedef struct OGRSpatialReferenceHS *OGRSpatialReferenceH;
|
|
typedef struct OGRCoordinateTransformationHS *OGRCoordinateTransformationH;
|
|
#else
|
|
/** Opaque type for a Spatial Reference object */
|
|
typedef void *OGRSpatialReferenceH;
|
|
/** Opaque type for a coordinate transformation object */
|
|
typedef void *OGRCoordinateTransformationH;
|
|
#endif
|
|
|
|
#endif
|
|
|
|
void CPL_DLL OSRSetPROJSearchPaths(const char *const *papszPaths);
|
|
char CPL_DLL **OSRGetPROJSearchPaths(void);
|
|
void CPL_DLL OSRSetPROJAuxDbPaths(const char *const *papszPaths);
|
|
char CPL_DLL **OSRGetPROJAuxDbPaths(void);
|
|
void CPL_DLL OSRSetPROJEnableNetwork(int enabled);
|
|
int CPL_DLL OSRGetPROJEnableNetwork(void);
|
|
void CPL_DLL OSRGetPROJVersion(int *pnMajor, int *pnMinor, int *pnPatch);
|
|
|
|
OGRSpatialReferenceH CPL_DLL CPL_STDCALL
|
|
OSRNewSpatialReference(const char * /* = NULL */);
|
|
OGRSpatialReferenceH CPL_DLL CPL_STDCALL OSRCloneGeogCS(OGRSpatialReferenceH);
|
|
OGRSpatialReferenceH CPL_DLL CPL_STDCALL OSRClone(OGRSpatialReferenceH);
|
|
void CPL_DLL CPL_STDCALL OSRDestroySpatialReference(OGRSpatialReferenceH);
|
|
|
|
int CPL_DLL OSRReference(OGRSpatialReferenceH);
|
|
int CPL_DLL OSRDereference(OGRSpatialReferenceH);
|
|
void CPL_DLL OSRRelease(OGRSpatialReferenceH);
|
|
|
|
OGRErr CPL_DLL OSRValidate(OGRSpatialReferenceH);
|
|
|
|
OGRErr CPL_DLL CPL_STDCALL OSRImportFromEPSG(OGRSpatialReferenceH, int);
|
|
OGRErr CPL_DLL CPL_STDCALL OSRImportFromEPSGA(OGRSpatialReferenceH, int);
|
|
OGRErr CPL_DLL OSRImportFromWkt(OGRSpatialReferenceH, char **);
|
|
OGRErr CPL_DLL OSRImportFromProj4(OGRSpatialReferenceH, const char *);
|
|
OGRErr CPL_DLL OSRImportFromESRI(OGRSpatialReferenceH, char **);
|
|
OGRErr CPL_DLL OSRImportFromPCI(OGRSpatialReferenceH hSRS, const char *,
|
|
const char *, double *);
|
|
OGRErr CPL_DLL OSRImportFromUSGS(OGRSpatialReferenceH, long, long, double *,
|
|
long);
|
|
OGRErr CPL_DLL OSRImportFromXML(OGRSpatialReferenceH, const char *);
|
|
OGRErr CPL_DLL OSRImportFromDict(OGRSpatialReferenceH, const char *,
|
|
const char *);
|
|
OGRErr CPL_DLL OSRImportFromPanorama(OGRSpatialReferenceH, long, long, long,
|
|
double *);
|
|
OGRErr CPL_DLL OSRImportFromOzi(OGRSpatialReferenceH, const char *const *);
|
|
OGRErr CPL_DLL OSRImportFromMICoordSys(OGRSpatialReferenceH, const char *);
|
|
OGRErr CPL_DLL OSRImportFromERM(OGRSpatialReferenceH, const char *,
|
|
const char *, const char *);
|
|
OGRErr CPL_DLL OSRImportFromUrl(OGRSpatialReferenceH, const char *);
|
|
OGRErr CPL_DLL OSRImportFromCF1(OGRSpatialReferenceH,
|
|
CSLConstList papszKeyValues,
|
|
const char *pszUnits);
|
|
|
|
OGRErr CPL_DLL CPL_STDCALL OSRExportToWkt(OGRSpatialReferenceH, char **);
|
|
OGRErr CPL_DLL OSRExportToWktEx(OGRSpatialReferenceH, char **ppszResult,
|
|
const char *const *papszOptions);
|
|
OGRErr CPL_DLL CPL_STDCALL OSRExportToPrettyWkt(OGRSpatialReferenceH, char **,
|
|
int);
|
|
OGRErr CPL_DLL OSRExportToPROJJSON(OGRSpatialReferenceH hSRS, char **ppszReturn,
|
|
const char *const *papszOptions);
|
|
OGRErr CPL_DLL CPL_STDCALL OSRExportToProj4(OGRSpatialReferenceH, char **);
|
|
OGRErr CPL_DLL OSRExportToPCI(OGRSpatialReferenceH, char **, char **,
|
|
double **);
|
|
OGRErr CPL_DLL OSRExportToUSGS(OGRSpatialReferenceH, long *, long *, double **,
|
|
long *);
|
|
OGRErr CPL_DLL OSRExportToXML(OGRSpatialReferenceH, char **, const char *);
|
|
OGRErr CPL_DLL OSRExportToPanorama(OGRSpatialReferenceH, long *, long *, long *,
|
|
long *, double *);
|
|
OGRErr CPL_DLL OSRExportToMICoordSys(OGRSpatialReferenceH, char **);
|
|
OGRErr CPL_DLL OSRExportToERM(OGRSpatialReferenceH, char *, char *, char *);
|
|
OGRErr CPL_DLL OSRExportToCF1(OGRSpatialReferenceH, char **ppszGridMappingName,
|
|
char ***ppapszKeyValues, char **ppszUnits,
|
|
CSLConstList papszOptions);
|
|
|
|
OGRErr CPL_DLL OSRMorphToESRI(OGRSpatialReferenceH);
|
|
OGRErr CPL_DLL OSRMorphFromESRI(OGRSpatialReferenceH);
|
|
|
|
OGRErr CPL_DLL OSRStripVertical(OGRSpatialReferenceH);
|
|
|
|
OGRSpatialReferenceH CPL_DLL OSRConvertToOtherProjection(
|
|
OGRSpatialReferenceH hSRS, const char *pszTargetProjection,
|
|
const char *const *papszOptions);
|
|
|
|
const char CPL_DLL *OSRGetName(OGRSpatialReferenceH hSRS);
|
|
|
|
OGRErr CPL_DLL CPL_STDCALL OSRSetAttrValue(OGRSpatialReferenceH hSRS,
|
|
const char *pszNodePath,
|
|
const char *pszNewNodeValue);
|
|
const char CPL_DLL *CPL_STDCALL OSRGetAttrValue(OGRSpatialReferenceH hSRS,
|
|
const char *pszName,
|
|
int iChild /* = 0 */);
|
|
|
|
OGRErr CPL_DLL OSRSetAngularUnits(OGRSpatialReferenceH, const char *, double);
|
|
double CPL_DLL OSRGetAngularUnits(OGRSpatialReferenceH, char **);
|
|
OGRErr CPL_DLL OSRSetLinearUnits(OGRSpatialReferenceH, const char *, double);
|
|
OGRErr CPL_DLL OSRSetTargetLinearUnits(OGRSpatialReferenceH, const char *,
|
|
const char *, double);
|
|
OGRErr CPL_DLL OSRSetLinearUnitsAndUpdateParameters(OGRSpatialReferenceH,
|
|
const char *, double);
|
|
double CPL_DLL OSRGetLinearUnits(OGRSpatialReferenceH, char **);
|
|
double CPL_DLL OSRGetTargetLinearUnits(OGRSpatialReferenceH, const char *,
|
|
char **);
|
|
|
|
double CPL_DLL OSRGetPrimeMeridian(OGRSpatialReferenceH, char **);
|
|
|
|
int CPL_DLL OSRIsGeographic(OGRSpatialReferenceH);
|
|
int CPL_DLL OSRIsDerivedGeographic(OGRSpatialReferenceH);
|
|
int CPL_DLL OSRIsLocal(OGRSpatialReferenceH);
|
|
int CPL_DLL OSRIsProjected(OGRSpatialReferenceH);
|
|
int CPL_DLL OSRIsDerivedProjected(OGRSpatialReferenceH);
|
|
int CPL_DLL OSRIsCompound(OGRSpatialReferenceH);
|
|
int CPL_DLL OSRIsGeocentric(OGRSpatialReferenceH);
|
|
int CPL_DLL OSRIsVertical(OGRSpatialReferenceH);
|
|
int CPL_DLL OSRIsDynamic(OGRSpatialReferenceH);
|
|
int CPL_DLL OSRHasPointMotionOperation(OGRSpatialReferenceH);
|
|
int CPL_DLL OSRIsSameGeogCS(OGRSpatialReferenceH, OGRSpatialReferenceH);
|
|
int CPL_DLL OSRIsSameVertCS(OGRSpatialReferenceH, OGRSpatialReferenceH);
|
|
int CPL_DLL OSRIsSame(OGRSpatialReferenceH, OGRSpatialReferenceH);
|
|
int CPL_DLL OSRIsSameEx(OGRSpatialReferenceH, OGRSpatialReferenceH,
|
|
const char *const *papszOptions);
|
|
|
|
void CPL_DLL OSRSetCoordinateEpoch(OGRSpatialReferenceH hSRS,
|
|
double dfCoordinateEpoch);
|
|
double CPL_DLL OSRGetCoordinateEpoch(OGRSpatialReferenceH hSRS);
|
|
|
|
OGRErr CPL_DLL OSRSetLocalCS(OGRSpatialReferenceH hSRS, const char *pszName);
|
|
OGRErr CPL_DLL OSRSetProjCS(OGRSpatialReferenceH hSRS, const char *pszName);
|
|
OGRErr CPL_DLL OSRSetGeocCS(OGRSpatialReferenceH hSRS, const char *pszName);
|
|
OGRErr CPL_DLL OSRSetWellKnownGeogCS(OGRSpatialReferenceH hSRS,
|
|
const char *pszName);
|
|
OGRErr CPL_DLL CPL_STDCALL OSRSetFromUserInput(OGRSpatialReferenceH hSRS,
|
|
const char *);
|
|
OGRErr CPL_DLL OSRSetFromUserInputEx(OGRSpatialReferenceH hSRS, const char *,
|
|
CSLConstList papszOptions);
|
|
OGRErr CPL_DLL OSRCopyGeogCSFrom(OGRSpatialReferenceH hSRS,
|
|
const OGRSpatialReferenceH hSrcSRS);
|
|
OGRErr CPL_DLL OSRSetTOWGS84(OGRSpatialReferenceH hSRS, double, double, double,
|
|
double, double, double, double);
|
|
OGRErr CPL_DLL OSRGetTOWGS84(OGRSpatialReferenceH hSRS, double *, int);
|
|
OGRErr CPL_DLL OSRAddGuessedTOWGS84(OGRSpatialReferenceH hSRS);
|
|
|
|
OGRErr CPL_DLL OSRSetCompoundCS(OGRSpatialReferenceH hSRS, const char *pszName,
|
|
OGRSpatialReferenceH hHorizSRS,
|
|
OGRSpatialReferenceH hVertSRS);
|
|
OGRErr CPL_DLL OSRPromoteTo3D(OGRSpatialReferenceH hSRS, const char *pszName);
|
|
OGRErr CPL_DLL OSRDemoteTo2D(OGRSpatialReferenceH hSRS, const char *pszName);
|
|
|
|
OGRErr CPL_DLL OSRSetGeogCS(OGRSpatialReferenceH hSRS, const char *pszGeogName,
|
|
const char *pszDatumName,
|
|
const char *pszEllipsoidName, double dfSemiMajor,
|
|
double dfInvFlattening,
|
|
const char *pszPMName /* = NULL */,
|
|
double dfPMOffset /* = 0.0 */,
|
|
const char *pszUnits /* = NULL */,
|
|
double dfConvertToRadians /* = 0.0 */);
|
|
|
|
OGRErr CPL_DLL OSRSetVertCS(OGRSpatialReferenceH hSRS,
|
|
const char *pszVertCSName,
|
|
const char *pszVertDatumName, int nVertDatumType);
|
|
|
|
double CPL_DLL OSRGetSemiMajor(OGRSpatialReferenceH, OGRErr * /* = NULL */);
|
|
double CPL_DLL OSRGetSemiMinor(OGRSpatialReferenceH, OGRErr * /* = NULL */);
|
|
double CPL_DLL OSRGetInvFlattening(OGRSpatialReferenceH, OGRErr * /*=NULL*/);
|
|
|
|
OGRErr CPL_DLL OSRSetAuthority(OGRSpatialReferenceH hSRS,
|
|
const char *pszTargetKey,
|
|
const char *pszAuthority, int nCode);
|
|
const char CPL_DLL *OSRGetAuthorityCode(OGRSpatialReferenceH hSRS,
|
|
const char *pszTargetKey);
|
|
const char CPL_DLL *OSRGetAuthorityName(OGRSpatialReferenceH hSRS,
|
|
const char *pszTargetKey);
|
|
|
|
int CPL_DLL OSRGetAreaOfUse(OGRSpatialReferenceH hSRS,
|
|
double *pdfWestLongitudeDeg,
|
|
double *pdfSouthLatitudeDeg,
|
|
double *pdfEastLongitudeDeg,
|
|
double *pdfNorthLatitudeDeg,
|
|
const char **ppszAreaName);
|
|
|
|
OGRErr CPL_DLL OSRSetProjection(OGRSpatialReferenceH, const char *);
|
|
OGRErr CPL_DLL OSRSetProjParm(OGRSpatialReferenceH, const char *, double);
|
|
double CPL_DLL OSRGetProjParm(OGRSpatialReferenceH hSRS,
|
|
const char *pszParamName,
|
|
double dfDefault /* = 0.0 */,
|
|
OGRErr * /* = NULL */);
|
|
OGRErr CPL_DLL OSRSetNormProjParm(OGRSpatialReferenceH, const char *, double);
|
|
double CPL_DLL OSRGetNormProjParm(OGRSpatialReferenceH hSRS,
|
|
const char *pszParamName,
|
|
double dfDefault /* = 0.0 */,
|
|
OGRErr * /* = NULL */);
|
|
|
|
OGRErr CPL_DLL OSRSetUTM(OGRSpatialReferenceH hSRS, int nZone, int bNorth);
|
|
int CPL_DLL OSRGetUTMZone(OGRSpatialReferenceH hSRS, int *pbNorth);
|
|
OGRErr CPL_DLL OSRSetStatePlane(OGRSpatialReferenceH hSRS, int nZone,
|
|
int bNAD83);
|
|
OGRErr CPL_DLL OSRSetStatePlaneWithUnits(OGRSpatialReferenceH hSRS, int nZone,
|
|
int bNAD83,
|
|
const char *pszOverrideUnitName,
|
|
double dfOverrideUnit);
|
|
OGRErr CPL_DLL OSRAutoIdentifyEPSG(OGRSpatialReferenceH hSRS);
|
|
|
|
OGRSpatialReferenceH CPL_DLL *OSRFindMatches(OGRSpatialReferenceH hSRS,
|
|
char **papszOptions,
|
|
int *pnEntries,
|
|
int **ppanMatchConfidence);
|
|
void CPL_DLL OSRFreeSRSArray(OGRSpatialReferenceH *pahSRS);
|
|
|
|
int CPL_DLL OSREPSGTreatsAsLatLong(OGRSpatialReferenceH hSRS);
|
|
int CPL_DLL OSREPSGTreatsAsNorthingEasting(OGRSpatialReferenceH hSRS);
|
|
const char CPL_DLL *OSRGetAxis(OGRSpatialReferenceH hSRS,
|
|
const char *pszTargetKey, int iAxis,
|
|
OGRAxisOrientation *peOrientation);
|
|
int CPL_DLL OSRGetAxesCount(OGRSpatialReferenceH hSRS);
|
|
OGRErr CPL_DLL OSRSetAxes(OGRSpatialReferenceH hSRS, const char *pszTargetKey,
|
|
const char *pszXAxisName,
|
|
OGRAxisOrientation eXAxisOrientation,
|
|
const char *pszYAxisName,
|
|
OGRAxisOrientation eYAxisOrientation);
|
|
|
|
/** Data axis to CRS axis mapping strategy. */
|
|
typedef enum
|
|
{
|
|
OAMS_TRADITIONAL_GIS_ORDER, /**< Traditional GIS order */
|
|
OAMS_AUTHORITY_COMPLIANT, /**< Compliant with the order mandated by the CRS
|
|
authority */
|
|
OAMS_CUSTOM /**< Custom */
|
|
} OSRAxisMappingStrategy;
|
|
|
|
OSRAxisMappingStrategy CPL_DLL
|
|
OSRGetAxisMappingStrategy(OGRSpatialReferenceH hSRS);
|
|
|
|
void CPL_DLL OSRSetAxisMappingStrategy(OGRSpatialReferenceH hSRS,
|
|
OSRAxisMappingStrategy strategy);
|
|
|
|
const int CPL_DLL *OSRGetDataAxisToSRSAxisMapping(OGRSpatialReferenceH hSRS,
|
|
int *pnCount);
|
|
|
|
OGRErr CPL_DLL OSRSetDataAxisToSRSAxisMapping(OGRSpatialReferenceH hSRS,
|
|
int nMappingSize,
|
|
const int *panMapping);
|
|
|
|
/** Albers Conic Equal Area */
|
|
OGRErr CPL_DLL OSRSetACEA(OGRSpatialReferenceH hSRS, double dfStdP1,
|
|
double dfStdP2, double dfCenterLat,
|
|
double dfCenterLong, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Azimuthal Equidistant */
|
|
OGRErr CPL_DLL OSRSetAE(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Bonne */
|
|
OGRErr CPL_DLL OSRSetBonne(OGRSpatialReferenceH hSRS, double dfStandardParallel,
|
|
double dfCentralMeridian, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Cylindrical Equal Area */
|
|
OGRErr CPL_DLL OSRSetCEA(OGRSpatialReferenceH hSRS, double dfStdP1,
|
|
double dfCentralMeridian, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Cassini-Soldner */
|
|
OGRErr CPL_DLL OSRSetCS(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Equidistant Conic */
|
|
OGRErr CPL_DLL OSRSetEC(OGRSpatialReferenceH hSRS, double dfStdP1,
|
|
double dfStdP2, double dfCenterLat, double dfCenterLong,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Eckert I-VI */
|
|
OGRErr CPL_DLL OSRSetEckert(OGRSpatialReferenceH hSRS, int nVariation,
|
|
double dfCentralMeridian, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Eckert IV */
|
|
OGRErr CPL_DLL OSRSetEckertIV(OGRSpatialReferenceH hSRS,
|
|
double dfCentralMeridian, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Eckert VI */
|
|
OGRErr CPL_DLL OSRSetEckertVI(OGRSpatialReferenceH hSRS,
|
|
double dfCentralMeridian, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Equirectangular */
|
|
OGRErr CPL_DLL OSRSetEquirectangular(OGRSpatialReferenceH hSRS,
|
|
double dfCenterLat, double dfCenterLong,
|
|
double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Equirectangular generalized form */
|
|
OGRErr CPL_DLL OSRSetEquirectangular2(OGRSpatialReferenceH hSRS,
|
|
double dfCenterLat, double dfCenterLong,
|
|
double dfPseudoStdParallel1,
|
|
double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Gall Stereograpic */
|
|
OGRErr CPL_DLL OSRSetGS(OGRSpatialReferenceH hSRS, double dfCentralMeridian,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Goode Homolosine */
|
|
OGRErr CPL_DLL OSRSetGH(OGRSpatialReferenceH hSRS, double dfCentralMeridian,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Interrupted Goode Homolosine */
|
|
OGRErr CPL_DLL OSRSetIGH(OGRSpatialReferenceH hSRS);
|
|
|
|
/** GEOS - Geostationary Satellite View */
|
|
OGRErr CPL_DLL OSRSetGEOS(OGRSpatialReferenceH hSRS, double dfCentralMeridian,
|
|
double dfSatelliteHeight, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Gauss Schreiber Transverse Mercator */
|
|
OGRErr CPL_DLL OSRSetGaussSchreiberTMercator(
|
|
OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
|
|
double dfScale, double dfFalseEasting, double dfFalseNorthing);
|
|
/** Gnomonic */
|
|
OGRErr CPL_DLL OSRSetGnomonic(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
#ifdef undef
|
|
/** Oblique Mercator (aka HOM (variant B) */
|
|
OGRErr CPL_DLL OSRSetOM(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfAzimuth,
|
|
double dfRectToSkew, double dfScale,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
#endif
|
|
|
|
/** Hotine Oblique Mercator using azimuth angle */
|
|
OGRErr CPL_DLL OSRSetHOM(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfAzimuth,
|
|
double dfRectToSkew, double dfScale,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
OGRErr CPL_DLL OSRSetHOMAC(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfAzimuth,
|
|
double dfRectToSkew, double dfScale,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Hotine Oblique Mercator using two points on centerline */
|
|
OGRErr CPL_DLL OSRSetHOM2PNO(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfLat1, double dfLong1, double dfLat2,
|
|
double dfLong2, double dfScale,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** International Map of the World Polyconic */
|
|
OGRErr CPL_DLL OSRSetIWMPolyconic(OGRSpatialReferenceH hSRS, double dfLat1,
|
|
double dfLat2, double dfCenterLong,
|
|
double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Krovak Oblique Conic Conformal */
|
|
OGRErr CPL_DLL OSRSetKrovak(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfAzimuth,
|
|
double dfPseudoStdParallelLat, double dfScale,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Lambert Azimuthal Equal-Area */
|
|
OGRErr CPL_DLL OSRSetLAEA(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Lambert Conformal Conic */
|
|
OGRErr CPL_DLL OSRSetLCC(OGRSpatialReferenceH hSRS, double dfStdP1,
|
|
double dfStdP2, double dfCenterLat,
|
|
double dfCenterLong, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Lambert Conformal Conic 1SP */
|
|
OGRErr CPL_DLL OSRSetLCC1SP(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfScale,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Lambert Conformal Conic (Belgium) */
|
|
OGRErr CPL_DLL OSRSetLCCB(OGRSpatialReferenceH hSRS, double dfStdP1,
|
|
double dfStdP2, double dfCenterLat,
|
|
double dfCenterLong, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Miller Cylindrical */
|
|
OGRErr CPL_DLL OSRSetMC(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Mercator */
|
|
OGRErr CPL_DLL OSRSetMercator(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfScale,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Mercator 2SP */
|
|
OGRErr CPL_DLL OSRSetMercator2SP(OGRSpatialReferenceH hSRS, double dfStdP1,
|
|
double dfCenterLat, double dfCenterLong,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Mollweide */
|
|
OGRErr CPL_DLL OSRSetMollweide(OGRSpatialReferenceH hSRS,
|
|
double dfCentralMeridian, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** New Zealand Map Grid */
|
|
OGRErr CPL_DLL OSRSetNZMG(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Oblique Stereographic */
|
|
OGRErr CPL_DLL OSRSetOS(OGRSpatialReferenceH hSRS, double dfOriginLat,
|
|
double dfCMeridian, double dfScale,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Orthographic */
|
|
OGRErr CPL_DLL OSRSetOrthographic(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Polyconic */
|
|
OGRErr CPL_DLL OSRSetPolyconic(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Polar Stereographic */
|
|
OGRErr CPL_DLL OSRSetPS(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfScale,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Robinson */
|
|
OGRErr CPL_DLL OSRSetRobinson(OGRSpatialReferenceH hSRS, double dfCenterLong,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Sinusoidal */
|
|
OGRErr CPL_DLL OSRSetSinusoidal(OGRSpatialReferenceH hSRS, double dfCenterLong,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Stereographic */
|
|
OGRErr CPL_DLL OSRSetStereographic(OGRSpatialReferenceH hSRS,
|
|
double dfCenterLat, double dfCenterLong,
|
|
double dfScale, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Swiss Oblique Cylindrical */
|
|
OGRErr CPL_DLL OSRSetSOC(OGRSpatialReferenceH hSRS, double dfLatitudeOfOrigin,
|
|
double dfCentralMeridian, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Transverse Mercator
|
|
*
|
|
* Special processing available for Transverse Mercator with GDAL >= 1.10 and
|
|
* PROJ >= 4.8 : see OGRSpatialReference::exportToProj4().
|
|
*/
|
|
|
|
OGRErr CPL_DLL OSRSetTM(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfScale,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Transverse Mercator variant */
|
|
OGRErr CPL_DLL OSRSetTMVariant(OGRSpatialReferenceH hSRS,
|
|
const char *pszVariantName, double dfCenterLat,
|
|
double dfCenterLong, double dfScale,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Tunesia Mining Grid */
|
|
OGRErr CPL_DLL OSRSetTMG(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Transverse Mercator (South Oriented) */
|
|
OGRErr CPL_DLL OSRSetTMSO(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong, double dfScale,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** TPED (Two Point Equi Distant) */
|
|
OGRErr CPL_DLL OSRSetTPED(OGRSpatialReferenceH hSRS, double dfLat1,
|
|
double dfLong1, double dfLat2, double dfLong2,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** VanDerGrinten */
|
|
OGRErr CPL_DLL OSRSetVDG(OGRSpatialReferenceH hSRS, double dfCenterLong,
|
|
double dfFalseEasting, double dfFalseNorthing);
|
|
|
|
/** Wagner I -- VII */
|
|
OGRErr CPL_DLL OSRSetWagner(OGRSpatialReferenceH hSRS, int nVariation,
|
|
double dfCenterLat, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
/** Quadrilateralized Spherical Cube */
|
|
OGRErr CPL_DLL OSRSetQSC(OGRSpatialReferenceH hSRS, double dfCenterLat,
|
|
double dfCenterLong);
|
|
|
|
/** Spherical, Cross-track, Height */
|
|
OGRErr CPL_DLL OSRSetSCH(OGRSpatialReferenceH hSRS, double dfPegLat,
|
|
double dfPegLong, double dfPegHeading,
|
|
double dfPegHgt);
|
|
|
|
/** Vertical Perspective / Near-sided Perspective */
|
|
OGRErr CPL_DLL OSRSetVerticalPerspective(
|
|
OGRSpatialReferenceH hSRS, double dfTopoOriginLat, double dfTopoOriginLon,
|
|
double dfTopoOriginHeight, double dfViewPointHeight, double dfFalseEasting,
|
|
double dfFalseNorthing);
|
|
|
|
double CPL_DLL OSRCalcInvFlattening(double dfSemiMajor, double dfSemiMinor);
|
|
double CPL_DLL OSRCalcSemiMinorFromInvFlattening(double dfSemiMajor,
|
|
double dfInvFlattening);
|
|
|
|
void CPL_DLL OSRCleanup(void);
|
|
|
|
/** \brief Type of Coordinate Reference System (CRS). */
|
|
typedef enum
|
|
{
|
|
/** Geographic 2D CRS */
|
|
OSR_CRS_TYPE_GEOGRAPHIC_2D,
|
|
/** Geographic 3D CRS */
|
|
OSR_CRS_TYPE_GEOGRAPHIC_3D,
|
|
/** Geocentric CRS */
|
|
OSR_CRS_TYPE_GEOCENTRIC,
|
|
/** Projected CRS */
|
|
OSR_CRS_TYPE_PROJECTED,
|
|
/** Vertical CRS */
|
|
OSR_CRS_TYPE_VERTICAL,
|
|
/** Compound CRS */
|
|
OSR_CRS_TYPE_COMPOUND,
|
|
/** Other */
|
|
OSR_CRS_TYPE_OTHER,
|
|
} OSRCRSType;
|
|
|
|
/** \brief Structure given overall description of a CRS.
|
|
*
|
|
* This structure may grow over time, and should not be directly allocated by
|
|
* client code.
|
|
*/
|
|
typedef struct
|
|
{
|
|
/** Authority name. */
|
|
char *pszAuthName;
|
|
/** Object code. */
|
|
char *pszCode;
|
|
/** Object name. */
|
|
char *pszName;
|
|
/** Object type. */
|
|
OSRCRSType eType;
|
|
/** Whether the object is deprecated */
|
|
int bDeprecated;
|
|
/** Whereas the west_lon_degree, south_lat_degree, east_lon_degree and
|
|
* north_lat_degree fields are valid. */
|
|
int bBboxValid;
|
|
/** Western-most longitude of the area of use, in degrees. */
|
|
double dfWestLongitudeDeg;
|
|
/** Southern-most latitude of the area of use, in degrees. */
|
|
double dfSouthLatitudeDeg;
|
|
/** Eastern-most longitude of the area of use, in degrees. */
|
|
double dfEastLongitudeDeg;
|
|
/** Northern-most latitude of the area of use, in degrees. */
|
|
double dfNorthLatitudeDeg;
|
|
/** Name of the area of use. */
|
|
char *pszAreaName;
|
|
/** Name of the projection method for a projected CRS. Might be NULL even
|
|
*for projected CRS in some cases. */
|
|
char *pszProjectionMethod;
|
|
} OSRCRSInfo;
|
|
|
|
/** \brief Structure to describe optional parameters to
|
|
* OSRGetCRSInfoListFromDatabase()
|
|
*
|
|
* Unused for now.
|
|
*/
|
|
typedef struct OSRCRSListParameters OSRCRSListParameters;
|
|
|
|
OSRCRSInfo CPL_DLL **
|
|
OSRGetCRSInfoListFromDatabase(const char *pszAuthName,
|
|
const OSRCRSListParameters *params,
|
|
int *pnOutResultCount);
|
|
|
|
void CPL_DLL OSRDestroyCRSInfoList(OSRCRSInfo **list);
|
|
|
|
char CPL_DLL **OSRGetAuthorityListFromDatabase(void);
|
|
|
|
/* -------------------------------------------------------------------- */
|
|
/* OGRCoordinateTransform C API. */
|
|
/* -------------------------------------------------------------------- */
|
|
OGRCoordinateTransformationH CPL_DLL CPL_STDCALL OCTNewCoordinateTransformation(
|
|
OGRSpatialReferenceH hSourceSRS, OGRSpatialReferenceH hTargetSRS);
|
|
|
|
/** Coordinate transformation options. */
|
|
typedef struct OGRCoordinateTransformationOptions
|
|
*OGRCoordinateTransformationOptionsH;
|
|
|
|
OGRCoordinateTransformationOptionsH CPL_DLL
|
|
OCTNewCoordinateTransformationOptions(void);
|
|
|
|
int CPL_DLL OCTCoordinateTransformationOptionsSetOperation(
|
|
OGRCoordinateTransformationOptionsH hOptions, const char *pszCO,
|
|
int bReverseCO);
|
|
|
|
int CPL_DLL OCTCoordinateTransformationOptionsSetAreaOfInterest(
|
|
OGRCoordinateTransformationOptionsH hOptions, double dfWestLongitudeDeg,
|
|
double dfSouthLatitudeDeg, double dfEastLongitudeDeg,
|
|
double dfNorthLatitudeDeg);
|
|
|
|
int CPL_DLL OCTCoordinateTransformationOptionsSetDesiredAccuracy(
|
|
OGRCoordinateTransformationOptionsH hOptions, double dfAccuracy);
|
|
|
|
int CPL_DLL OCTCoordinateTransformationOptionsSetBallparkAllowed(
|
|
OGRCoordinateTransformationOptionsH hOptions, int bAllowBallpark);
|
|
|
|
int CPL_DLL OCTCoordinateTransformationOptionsSetOnlyBest(
|
|
OGRCoordinateTransformationOptionsH hOptions, bool bOnlyBest);
|
|
|
|
void CPL_DLL OCTDestroyCoordinateTransformationOptions(
|
|
OGRCoordinateTransformationOptionsH);
|
|
|
|
OGRCoordinateTransformationH CPL_DLL OCTNewCoordinateTransformationEx(
|
|
OGRSpatialReferenceH hSourceSRS, OGRSpatialReferenceH hTargetSRS,
|
|
OGRCoordinateTransformationOptionsH hOptions);
|
|
|
|
OGRCoordinateTransformationH CPL_DLL
|
|
OCTClone(OGRCoordinateTransformationH hTransform);
|
|
OGRSpatialReferenceH CPL_DLL
|
|
OCTGetSourceCS(OGRCoordinateTransformationH hTransform);
|
|
OGRSpatialReferenceH CPL_DLL
|
|
OCTGetTargetCS(OGRCoordinateTransformationH hTransform);
|
|
OGRCoordinateTransformationH CPL_DLL
|
|
OCTGetInverse(OGRCoordinateTransformationH hTransform);
|
|
|
|
void CPL_DLL CPL_STDCALL
|
|
OCTDestroyCoordinateTransformation(OGRCoordinateTransformationH);
|
|
|
|
int CPL_DLL CPL_STDCALL OCTTransform(OGRCoordinateTransformationH hCT,
|
|
int nCount, double *x, double *y,
|
|
double *z);
|
|
|
|
int CPL_DLL CPL_STDCALL OCTTransformEx(OGRCoordinateTransformationH hCT,
|
|
int nCount, double *x, double *y,
|
|
double *z, int *pabSuccess);
|
|
|
|
int CPL_DLL OCTTransform4D(OGRCoordinateTransformationH hCT, int nCount,
|
|
double *x, double *y, double *z, double *t,
|
|
int *pabSuccess);
|
|
|
|
int CPL_DLL OCTTransform4DWithErrorCodes(OGRCoordinateTransformationH hCT,
|
|
int nCount, double *x, double *y,
|
|
double *z, double *t,
|
|
int *panErrorCodes);
|
|
|
|
int CPL_DLL CPL_STDCALL OCTTransformBounds(OGRCoordinateTransformationH hCT,
|
|
const double xmin, const double ymin,
|
|
const double xmax, const double ymax,
|
|
double *out_xmin, double *out_ymin,
|
|
double *out_xmax, double *out_ymax,
|
|
const int densify_pts);
|
|
|
|
CPL_C_END
|
|
|
|
#endif /* ndef SWIG */
|
|
|
|
#endif /* ndef OGR_SRS_API_H_INCLUDED */
|