diff options
Diffstat (limited to 'src/iso19111/io.cpp')
| -rw-r--r-- | src/iso19111/io.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index d4c6aec1..e09aee93 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -10525,12 +10525,18 @@ PROJStringParser::createFromPROJString(const std::string &projString) { } auto geogCRS = dynamic_cast<GeographicCRS *>(crs); if (geogCRS) { + const auto &cs = geogCRS->coordinateSystem(); // Override with longitude latitude in degrees return GeographicCRS::create( properties, geogCRS->datum(), geogCRS->datumEnsemble(), - EllipsoidalCS::createLongitudeLatitude( - UnitOfMeasure::DEGREE)); + cs->axisList().size() == 2 + ? EllipsoidalCS::createLongitudeLatitude( + UnitOfMeasure::DEGREE) + : EllipsoidalCS:: + createLongitudeLatitudeEllipsoidalHeight( + UnitOfMeasure::DEGREE, + cs->axisList()[2]->unit())); } auto projCRS = dynamic_cast<ProjectedCRS *>(crs); if (projCRS) { |
