aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-02-16 23:06:34 +0100
committerEven Rouault <even.rouault@spatialys.com>2019-02-16 23:07:27 +0100
commitacd7dda78bfeeff5a035215e852dd0da44dfcde8 (patch)
tree0076d52af795973709766f5182d6f01da614554f /src
parentaacbcb8361c547d1ebc05b8438859229fd517ef2 (diff)
downloadPROJ-acd7dda78bfeeff5a035215e852dd0da44dfcde8.tar.gz
PROJ-acd7dda78bfeeff5a035215e852dd0da44dfcde8.zip
Make sure proj_get_source_crs() and proj_get_target_crs() work on 'pseudo' PJ object returned by proj_create_crs_to_crs() when there are several alternatives
Diffstat (limited to 'src')
-rw-r--r--src/iso19111/c_api.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp
index 240d11b3..79732bab 100644
--- a/src/iso19111/c_api.cpp
+++ b/src/iso19111/c_api.cpp
@@ -1736,6 +1736,10 @@ PJ *proj_get_source_crs(PJ_CONTEXT *ctx, const PJ *obj) {
}
return nullptr;
}
+ if (!obj->alternativeCoordinateOperations.empty()) {
+ return proj_get_source_crs(ctx,
+ obj->alternativeCoordinateOperations[0].pj);
+ }
proj_log_error(ctx, __FUNCTION__,
"Object is not a BoundCRS or a CoordinateOperation");
return nullptr;
@@ -1771,6 +1775,10 @@ PJ *proj_get_target_crs(PJ_CONTEXT *ctx, const PJ *obj) {
}
return nullptr;
}
+ if (!obj->alternativeCoordinateOperations.empty()) {
+ return proj_get_target_crs(ctx,
+ obj->alternativeCoordinateOperations[0].pj);
+ }
proj_log_error(ctx, __FUNCTION__,
"Object is not a BoundCRS or a CoordinateOperation");
return nullptr;