aboutsummaryrefslogtreecommitdiff
path: root/src/proj_internal.h
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/proj_internal.h
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/proj_internal.h')
-rw-r--r--src/proj_internal.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/proj_internal.h b/src/proj_internal.h
index c102d910..253c647b 100644
--- a/src/proj_internal.h
+++ b/src/proj_internal.h
@@ -339,6 +339,13 @@ struct CoordOperation
}
};
+enum class TMercAlgo
+{
+ AUTO, // Poder/Engsager if far from central meridian, otherwise Evenden/Snyder
+ EVENDEN_SNYDER,
+ PODER_ENGSAGER,
+};
+
/* base projection data structure */
struct PJconsts {
@@ -741,6 +748,8 @@ struct projCtx_t {
int projStringParserCreateFromPROJStringRecursionCounter = 0; // to avoid potential infinite recursion in PROJStringParser::createFromPROJString()
+ TMercAlgo defaultTmercAlgo = TMercAlgo::PODER_ENGSAGER; // can be overriden by content of proj.ini
+
projCtx_t() = default;
projCtx_t(const projCtx_t&);
~projCtx_t();