aboutsummaryrefslogtreecommitdiff
path: root/src/filemanager.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-04-14 17:17:55 +0200
committerEven Rouault <even.rouault@spatialys.com>2020-04-15 01:07:18 +0200
commit964569728722e9e91f152410a4747a0ba078bd84 (patch)
tree54369133947916e20bbe9004eb16857f3f1b72cd /src/filemanager.cpp
parent5b017a8a78acc1f8b086ae339ecec257ee9d9684 (diff)
downloadPROJ-964569728722e9e91f152410a4747a0ba078bd84.tar.gz
PROJ-964569728722e9e91f152410a4747a0ba078bd84.zip
tmerc/utm: add a +algo=auto/evenden_snyder/poder_engsager parameter
The default remains +alg=poder_engsager. This default value can be changed in proj.ini +algo=auto will use Evenden Synder implementation if the error in doing so remains below 0.1 mm on Earth-sized ellipsoid
Diffstat (limited to 'src/filemanager.cpp')
-rw-r--r--src/filemanager.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/filemanager.cpp b/src/filemanager.cpp
index 5904c4fb..2a5678b7 100644
--- a/src/filemanager.cpp
+++ b/src/filemanager.cpp
@@ -1848,6 +1848,18 @@ void pj_load_ini(projCtx ctx) {
val > 0 ? static_cast<long long>(val) * 1024 * 1024 : -1;
} else if (key == "cache_ttl_sec") {
ctx->gridChunkCache.ttl = atoi(value.c_str());
+ } else if (key == "tmerc_default_algo") {
+ if (value == "auto") {
+ ctx->defaultTmercAlgo = TMercAlgo::AUTO;
+ } else if (value == "evenden_snyder") {
+ ctx->defaultTmercAlgo = TMercAlgo::EVENDEN_SNYDER;
+ } else if (value == "poder_engsager") {
+ ctx->defaultTmercAlgo = TMercAlgo::PODER_ENGSAGER;
+ } else {
+ pj_log(
+ ctx, PJ_LOG_ERROR,
+ "pj_load_ini(): Invalid value for tmerc_default_algo");
+ }
}
}