aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/io.cpp
AgeCommit message (Collapse)Author
2020-04-24Merge pull request #2188 from rouault/backport_6_3_pr2183Even Rouault
[Backport 6.3] io.hpp: avoid dependency to proj_json_streaming_writer.hpp (fixes #2182)
2020-04-23Fix support of WKT1_GDAL with netCDF rotated pole formulation (#2185)Even Rouault
Contributes to fixing issue raised in https://lists.osgeo.org/pipermail/gdal-dev/2020-April/052003.html
2020-04-23io.hpp: avoid dependency to proj_json_streaming_writer.hpp (fixes #2182) (#2183)Even Rouault
2020-04-22PROJ4 string import: take into correctly non-metre unit when the string ↵Even Rouault
looks like the one for WGS 84 / Pseudo Mercator (fixes https://github.com/OSGeo/gdal/issues/2433) (#2174)
2020-04-19Ingestion of WKT1_GDAL: correctly map 'Cylindrical_Equal_Area'Even Rouault
Map it to 'Lambert Cylindrical Equal Area' / EPSG:9835 non-spherical method, when the ellipsoid is not a sphere. And rationalize the handling of this for other methods with spherical vs non-spherical formulations
2020-04-10proj_create(): improve error message in case of PJ* failure instanciationEven Rouault
2020-04-09createFromPROJString(): ignore +wktext in '+init=epsg:XXX +wktext' string ↵Even Rouault
(refs https://github.com/OSGeo/gdal/issues/2392)
2020-04-03Make sure that importing a Projected 3D CRS from WKT:2019 keeps the base ↵github-actions[bot]
geographic CRS as 3D (fixes #2122)
2020-03-01createOperations(): fix wrong pipeline generation with CRS that has ↵Even Rouault
+nadgrids= and +pm= (#1998) Fixes issue reported at https://lists.osgeo.org/pipermail/gdal-dev/2020-February/051749.html The generated pipeline assumes that the input coordinates for the grid transformation were related to the non-Greenwich based datum, so we must compensate for that and add logic to go back to Greenwich.
2020-02-06Fix identification of ESRI-style datum names starting with D_ but without aliasEven Rouault
Fixes #1911
2020-02-06Fix ingestion of +proj=cea with +k_0Even Rouault
Fixes #1881 Digging into the implementation of proj=cea, it appears that k_0 and lat_ts are intended to be exclusive ways of specifying the same concept. EPSG only models the variant using lat_s. So if k_0 is found and lat_ts is absent, compute the equivalent value of lat_ts from k_0. Note: k_0 should normally be in the [0,1] range. In case creative users would use something outside, we raise an exception, even if the cea implementation could potentially deal with any k_0 value. Hopefully this is a (reasonable) limitation that will address nominal use cases.
2020-01-23Fix wrong use of derivingConversionRef() that caused GDAL bugEven Rouault
Hopefully final cut at solving the same class of bug that the one that affected QGIS in December. This time, this hit GDAL in the situation of https://lists.osgeo.org/pipermail/gdal-dev/2020-January/051500.html The bug fix for that particular issue is in PROJStringParser::createFromPROJString() But grepping more in the code base, I could find other potential smelly situations (might not be issues, but better be safe than sorry), so let's fix them too. Bottom line is: derivingConversionRef() should *only* be used for consultation, and never to create a new ProjectedCRS()
2019-12-16Merge pull request #1786 from rouault/fake_EPSG_102100Kristian Evers
Make EPSG:102100 resolve to ESRI:102100 (fixes #1730)
2019-12-13PROJStringFormatter: make startInversion/stopInversion properly deal with ↵Even Rouault
omit_fwd/omit_inv
2019-12-13WKTParser: fix assertion that can trigger on corrupted input. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19367
2019-12-11Make EPSG:102100 resolve to ESRI:102100 (fixes #1730)Even Rouault
2019-12-09CRS identification: use case insensitive comparison for authority name ↵Even Rouault
(fixes #1779)
2019-12-05import from PROJ string CRS: better deal with strings that look like Google ↵Even Rouault
Mercator projection, but with subtlely different parameters (fixes https://github.com/OSGeo/gdal/issues/2087)
2019-11-25PROJStringFormatter::toString(): optimize hgridshift, vgridshift, hgridshift ↵Even Rouault
inv constructs Given an initial pipeline with +step +proj=hgridshift +grids=foo +step +proj=vgridshift +grids=bar +step +inv +proj=hgridshift +grids=foo Transform it as +step +proj=push +v_1 +v_2 +step +proj=hgridshift +grids=foo +omit_inv +step +proj=vgridshift +grids=bar +step +inv +proj=hgridshift +grids=foo +omit_fwd +step +proj=pop +v_1 +v_2 So as to avoid doing a double application of the hgridshift.
2019-11-25Pipeline: support +omit_fwd and +omit_inv keywordsEven Rouault
Inspired from syntax of https://github.com/OSGeo/PROJ/pull/453/files but 'rebased' on top of previous commit that cleans up the pipeline implementation Different situations: - +omit_fwd: the step when followed in the forward path will be omitted the step when followed in the reverse path will be executed - +omit_fwd +inv: the step when followed in the forward path will be omitted the step when followed in the reverse path will be executed (with the inv method) - +omit_inv: the step when followed in the forward path will be executed the step when followed in the reverse path will be omitted - +omit_inv +inv: the step when followed in the forward path will be executed (with the inv method) the step when followed in the reverse path will be omitted This will be used in the next commit to optimize constructs like +step +proj=hgridshift +grids=foo +step +proj=vgridshift +grids=bar +step +inv +proj=hgridshift +grids=foo Such steps are used for CRS to CRS transformations where applying the vertical grid requires to do a transformation to an interpolating CRS. One can notice that in the last step will just restore the horizontal coordinates before the first step, so doing an inverse hgridshift is overkill. So that could be optimized as: +step +proj=push +v_1 +v_2 +step +proj=hgridshift +grids=foo +omit_inv +step +proj=vgridshift +grids=bar +step +inv +proj=hgridshift +grids=foo +omit_fwd +step +proj=pop +v_1 +v_2 In the forward path, this will be equivalent to: +step +proj=push +v_1 +v_2 +step +proj=hgridshift +grids=foo +step +proj=vgridshift +grids=bar +step +prop=pop +v_1 +v_2 And similarly in the reverse path, this will be quivalent to: +step +proj=push +v_1 +v_2 +step +proj=hgridshift +grids=foo +step +inv +proj=vgridshift +grids=bar +step +proj=pop +v_1 +v_2
2019-11-21Fix typos in code commentsEven Rouault
2019-11-14import/export PROJJSON: support a interpolation_crs key to geoid_model for ↵Even Rouault
faithful serialization of the geoid_geog_crs parameter of proj_create_vertical_crs_ex()
2019-11-14createOperations(): fix transformation computation from/to a CRS with ↵Even Rouault
+geoidgrids and +vunits != m
2019-11-04Merge remote-tracking branch 'origin/master' into geoid_modelEven Rouault
2019-11-03Import from WKT of VERT_CS: remove outdated EXTENSION.PROJ4_GRIDS for NAVD88Even Rouault
2019-11-03Import from WKT: add tweaks for Lidar WKT1 VERT_CS that embeds geoid model ↵Even Rouault
in CRS name
2019-11-02WKT and PROJJSON: add import/export of geoid model of VertCRSEven Rouault
2019-10-30createFromWkt(): be tolerant to missing scale_factor parameter (fixes #1700)Even Rouault
This is invalid WKT, but GDAL 2.4 used to accept it and make a reasonable use of it... Currently we default it to 0 which is non sensical. Better use 1 as GDAL 2.4 did, and emit a warning. Other fix: proj_create_from_wkt() was documented to operate by default in non-strict validation mode, but it was actually in strict mode. So do as documented.
2019-10-25importFromWkt(): fix axis orientation for non-standard ESRI WKT (fixes #1690)Even Rouault
2019-10-19createFromPROJString(): do not loop forever on malformed string. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17923. master only
2019-09-28PROJ string CRS ingester: recognize more unit-less parameters, and general ↵Even Rouault
handling of +key=string_value parameters
2019-09-24io.cpp: fix build on SolarisEven Rouault
Rename CS template argument, to avoid conflict with macro in Solaris system headers. Similar to 2f8bd934860b135044c5122e3272f7cc41ba81e7
2019-09-15createFromPROJString(): ignore +no_defs when instanciating a ↵Even Rouault
'+init=epsg:xxxx +no_defs' string (related to #1597)
2019-09-15Ingestion of +proj=somerc +type=crs: avoid adding twice alpha, gamma, lon_0 ↵Even Rouault
(related to #1597)
2019-09-13Fix support for +proj=ob_tran +o_proj=lonlat/latlong/latlon (only ↵Even Rouault
+o_proj=longlat worked) (fixes #1601)
2019-09-08Merge pull request #1585 from rouault/replace_2018_by_2019Kristian Evers
Use in API and utilities WKT2_2019 instead of WKT2_2018 (fixes #1578)
2019-09-08Use in API and utilities WKT2_2019 instead of WKT2_2018 (fixes #1518)Even Rouault
- C API: PJ_GUESSED_WKT2_2019 is added, PJ_GUESSED_WKT2_2018 aliased to it - C API: PJ_WKT2_2019[_SIMPLIFIED] is added, PJ_WKT2_2018[_SIMPLIFIED] alias to it - C++ API: similarly for WKTFormatter::Convention::WKT2_2019[_SIMPLIFIED] Those above changes should be fully backward API and ABI compatible. projinfo changes: - accept WKT2_2019 as value for -o switch. WKT2_2018 is still accepted (undocumented) - output now uses 'WKT2_2019 string:', so might break scripts that would rely on that. Other internal code references to WKT2_2018 changes to WKT2_2019, included in tests.
2019-09-05PROJStringParser::createFromPROJString(): avoid potential infinite recursion ↵Even Rouault
(fixes #1574) The exact circumstances are a bit difficult to explain, but they involve using a non-default context, enabling proj_context_use_proj4_init_rules() on it, using proj_create(ctxt, "+init=epsg:XXXX +type=crs"), whereas PROJ_LIB is defined to a directory that has a 'epsg' file in it.
2019-08-30Fix spelling of potsdam datumKai Pastor
2019-08-26Fix 6.0 regression regarding +init=epsg:4326 +over +to +init=epsg:3857 +over ↵Even Rouault
with longitudes outside of [-180,180]
2019-08-26createOperations(): fix pipeline generation when a CRS has terms like ↵Even Rouault
+datum=NAD27 and +over, where the datum was just replaced by its ellipsoid
2019-08-25Import WebMercator from PROJ string: make sure the WGS84 datum is setEven Rouault
2019-08-24createFromUserInput(): speed-up instanciation with +init=epsg: prefix in ↵Even Rouault
lowercase. This showed in MapServer use cases
2019-08-20C API: add proj_context_set_autoclose_database() to automatically close ↵Even Rouault
database (fixes #1565)
2019-08-17PROJJSON: rename file as projjson.schema.json, and add versionning to it and ↵Even Rouault
to exported PROJJSON strings
2019-08-12PROJJSON: add support for importing 'ids'Even Rouault
2019-08-10PROJJSON: a few fixes, and add import of DerivedCRS, EngineeringCRS, ↵Even Rouault
ParametricCRS and TemporalCRS
2019-08-10PROJJSON: add support for DatumEnsemble and ↵Even Rouault
Dynamic[Geodetic|Vertical]ReferenceFrame
2019-08-09PROJSJON: add import/export of VerticalCRS, CompoundCRS, BoundCRS, ↵Even Rouault
Transformation and ConcatenatedOperation
2019-08-09createFromUserInput(): add capability to import PROJJSONEven Rouault