diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-11-14 14:26:31 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-11-14 14:41:05 +0100 |
| commit | 2305dec4384365524cef76db4f84214746c4bd95 (patch) | |
| tree | f5f8ff41bbeb32e0b1b67c31017d219ccf814570 /src/iso19111/io.cpp | |
| parent | 541ace23427371975a5aa6506120b41ef6c16aae (diff) | |
| download | PROJ-2305dec4384365524cef76db4f84214746c4bd95.tar.gz PROJ-2305dec4384365524cef76db4f84214746c4bd95.zip | |
import/export PROJJSON: support a interpolation_crs key to geoid_model for faithful serialization of the geoid_geog_crs parameter of proj_create_vertical_crs_ex()
Diffstat (limited to 'src/iso19111/io.cpp')
| -rw-r--r-- | src/iso19111/io.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index a0a87f65..4d9e8633 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -5129,8 +5129,16 @@ VerticalCRSNNPtr JSONParser::buildVerticalCRS(const json &j) { auto propsModel = buildProperties(geoidModelJ); const auto dummyCRS = VerticalCRS::create( PropertyMap(), datum, datumEnsemble, NN_NO_CHECK(verticalCS)); + CRSPtr interpolationCRS; + if (geoidModelJ.contains("interpolation_crs")) { + auto interpolationCRSJ = + getObject(geoidModelJ, "interpolation_crs"); + interpolationCRS = buildCRS(interpolationCRSJ).as_nullable(); + } const auto model(Transformation::create( - propsModel, dummyCRS, dummyCRS, nullptr, + propsModel, dummyCRS, + GeographicCRS::EPSG_4979, // arbitrarily chosen. Ignored, + interpolationCRS, OperationMethod::create(PropertyMap(), std::vector<OperationParameterNNPtr>()), {}, {})); |
