aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/datum.cpp
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2019-02-14 13:43:30 +0100
committerKristian Evers <kristianevers@gmail.com>2019-02-14 13:43:30 +0100
commit365526921aa330fbfb185569cbfbb54ca5714f6c (patch)
tree75db358cce9695e32d5f4ced13c77dc31939830f /src/iso19111/datum.cpp
parent82855db893dd66de9588497e5748e64a9622ea66 (diff)
parent94f0d87714a86385a0102f1cbd086f888475912f (diff)
downloadPROJ-365526921aa330fbfb185569cbfbb54ca5714f6c.tar.gz
PROJ-365526921aa330fbfb185569cbfbb54ca5714f6c.zip
Merge remote-tracking branch 'osgeo/master' into remove-t_obs
Diffstat (limited to 'src/iso19111/datum.cpp')
-rw-r--r--src/iso19111/datum.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/iso19111/datum.cpp b/src/iso19111/datum.cpp
index 4df1b319..66717f70 100644
--- a/src/iso19111/datum.cpp
+++ b/src/iso19111/datum.cpp
@@ -646,7 +646,8 @@ EllipsoidNNPtr Ellipsoid::createSphere(const util::PropertyMap &properties,
* @param properties See \ref general_properties.
* At minimum the name should be defined.
* @param semiMajorAxisIn the semi-major axis.
- * @param invFlattening the inverse/reverse flattening.
+ * @param invFlattening the inverse/reverse flattening. If set to 0, this will
+ * be considered as a sphere.
* @param celestialBody Name of the celestial body on which the ellipsoid refers
* to.
* @return new Ellipsoid.
@@ -654,8 +655,11 @@ EllipsoidNNPtr Ellipsoid::createSphere(const util::PropertyMap &properties,
EllipsoidNNPtr Ellipsoid::createFlattenedSphere(
const util::PropertyMap &properties, const common::Length &semiMajorAxisIn,
const common::Scale &invFlattening, const std::string &celestialBody) {
- auto ellipsoid(Ellipsoid::nn_make_shared<Ellipsoid>(
- semiMajorAxisIn, invFlattening, celestialBody));
+ auto ellipsoid(invFlattening.value() == 0
+ ? Ellipsoid::nn_make_shared<Ellipsoid>(semiMajorAxisIn,
+ celestialBody)
+ : Ellipsoid::nn_make_shared<Ellipsoid>(
+ semiMajorAxisIn, invFlattening, celestialBody));
ellipsoid->setProperties(properties);
return ellipsoid;
}