aboutsummaryrefslogtreecommitdiff
path: root/include/proj/io.hpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2018-11-19 11:44:03 +0100
committerEven Rouault <even.rouault@spatialys.com>2018-11-19 12:39:13 +0100
commitcf54b0b10cf015d15de39f4ab6542f0925d15478 (patch)
tree84365df91b1ba6e20dbbfaf617336e87a667bd1a /include/proj/io.hpp
parent229bc49f7ad1bd024fc503f68d6705f3b0adcdf2 (diff)
downloadPROJ-cf54b0b10cf015d15de39f4ab6542f0925d15478.tar.gz
PROJ-cf54b0b10cf015d15de39f4ab6542f0925d15478.zip
Assorted set of fixes for PROJString to ISO19111 model:
- createFromPROJString(): take into account axisswap step for Krovak and Transverse Mercator (South Orientated) - Geocentric export to PROJ4: use datum when possible, and add explicit units=m - ESRI WKT parser: make it case insensitive to parameter and projection names, and more tolerant about possible parameter name aliases - import from WKT1 for Polar_Stereographic: don't be case sensitive - importFromPROJString: allow pm to override datum - Equidistant cylindrical: add support for non-standard latitude of natural origin, used in a GDAL test case - tmerc export to PROJString: use 'k' instead of 'k_0' - pj_ellps: use official value from EPSG for reverse flattening of Airy ellipsoid - GDAL compatibility: add support for importing odd formulations of Mercator as WKT1, but rejecting them when exporting to PROJ - Add export of 'Geostationary Satellite (Sweep X)' to WKT1_GDAL via EXTENSION.PROJ4 node - importFromPROJString: add support for +f - WKT1 / PROJ4: add support for EXTENSION.PROJ4 nodes and +wktext - exportToWKT: change way we deal with AXIS by default for WKT1_GDAL - Improve etmerc handling - Fix WKT import of peg_point_heading for Spherical_Cross_Track_Height - International Map of the World Polyconic: change parameter mapping - exportToPROJ: add alpha parameter - Hotine_Oblique_Mercator_Two_Point_Natural_Origin: GDAL_WKT1 related fix - GDAL compatibility improvements in import from PROJ4 / WKT1 for polar stereographic - Add support for +towgs84 when importing a +proj=geocent - import from WKT1: add support for an odd Mercator_1SP formulation handled by GDAL - export to proj4 strings: add +units=m to projected CRS for better GDAL compatibility - export to proj4 strings: add +no_defs to CRS for better GDAL compatibility
Diffstat (limited to 'include/proj/io.hpp')
-rw-r--r--include/proj/io.hpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/include/proj/io.hpp b/include/proj/io.hpp
index 689fede1..c649fa9f 100644
--- a/include/proj/io.hpp
+++ b/include/proj/io.hpp
@@ -206,7 +206,19 @@ class PROJ_GCC_DLL WKTFormatter {
PROJ_DLL WKTFormatter &setMultiLine(bool multiLine) noexcept;
PROJ_DLL WKTFormatter &setIndentationWidth(int width) noexcept;
- PROJ_DLL WKTFormatter &setOutputAxis(bool outputAxis) noexcept;
+
+ /** Rule for output AXIS nodes */
+ enum class OutputAxisRule {
+ /** Always include AXIS nodes */
+ YES,
+ /** Never include AXIS nodes */
+ NO,
+ /** Includes them only on PROJCS node if it uses Easting/Northing
+ *ordering. Typically used for WKT1_GDAL */
+ WKT1_GDAL_EPSG_STYLE,
+ };
+
+ PROJ_DLL WKTFormatter &setOutputAxis(OutputAxisRule outputAxis) noexcept;
PROJ_DLL WKTFormatter &setStrict(bool strict) noexcept;
PROJ_DLL bool isStrict() const noexcept;
@@ -273,7 +285,7 @@ class PROJ_GCC_DLL WKTFormatter {
PROJ_INTERNAL bool isInverted() const;
#endif
- PROJ_INTERNAL bool outputAxis() const;
+ PROJ_INTERNAL OutputAxisRule outputAxis() const;
PROJ_INTERNAL bool outputAxisOrder() const;
PROJ_INTERNAL bool primeMeridianOmittedIfGreenwich() const;
PROJ_INTERNAL bool ellipsoidUnitOmittedIfMetre() const;
@@ -352,7 +364,7 @@ class PROJ_GCC_DLL PROJStringFormatter {
startInversion();
PROJ_DLL void stopInversion();
PROJ_INTERNAL bool isInverted() const;
- PROJ_INTERNAL bool getUseETMercForTMerc() const;
+ PROJ_INTERNAL bool getUseETMercForTMerc(bool &settingSetOut) const;
PROJ_DLL void
ingestPROJString(const std::string &str); // throw ParsingException
@@ -373,6 +385,11 @@ class PROJ_GCC_DLL PROJStringFormatter {
PROJ_DLL void addParam(const char *paramName,
const std::vector<double> &vals);
+ PROJ_INTERNAL bool hasParam(const char *paramName) const;
+
+ PROJ_INTERNAL void addNoDefs(bool b);
+ PROJ_INTERNAL bool getAddNoDefs() const;
+
PROJ_INTERNAL std::set<std::string> getUsedGridNames() const;
PROJ_INTERNAL void setTOWGS84Parameters(const std::vector<double> &params);