aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Karney <charles@karney.com>2018-07-12 09:10:13 -0400
committerGitHub <noreply@github.com>2018-07-12 09:10:13 -0400
commit2fe6db2d398a1d6790ad1b487eb6796cc855174a (patch)
tree8c04c4aea34f431fc11a123a5fe9cd1994dd5a0c
parent98ead006b9d8b116fdd4f12fd6f45b58ad1ab94a (diff)
parent3efab3e9ee22de67651ee24c89ac750c212cc9a0 (diff)
downloadPROJ-2fe6db2d398a1d6790ad1b487eb6796cc855174a.tar.gz
PROJ-2fe6db2d398a1d6790ad1b487eb6796cc855174a.zip
Merge pull request #1075 from cffk/geod-unit-fix
Fix #1074. Fix unit conversion factors for geod.
-rw-r--r--src/geod_set.c5
-rw-r--r--src/pj_units.c16
2 files changed, 11 insertions, 10 deletions
diff --git a/src/geod_set.c b/src/geod_set.c
index 479f18da..bd388d34 100644
--- a/src/geod_set.c
+++ b/src/geod_set.c
@@ -37,9 +37,10 @@ geod_set(int argc, char **argv) {
for (i = 0; (s = unit_list[i].id) && strcmp(name, s) ; ++i) ;
if (!s)
emess(1,"%s unknown unit conversion id", name);
- fr_meter = 1. / (to_meter = atof(unit_list[i].to_meter));
+ to_meter = unit_list[i].factor;
+ fr_meter = 1 / to_meter;
} else
- to_meter = fr_meter = 1.;
+ to_meter = fr_meter = 1;
geod_f = es/(1 + sqrt(1 - es));
geod_ini();
/* check if line or arc mode */
diff --git a/src/pj_units.c b/src/pj_units.c
index 59ff1ebe..44abaf34 100644
--- a/src/pj_units.c
+++ b/src/pj_units.c
@@ -12,12 +12,12 @@
** numerator/denomenator values (e.g. 1/1000) */
C_NAMESPACE_VAR const struct PJ_UNITS
pj_units[] = {
- {"km", "1000.", "Kilometer", 1000.0},
- {"m", "1.", "Meter", 1.0},
+ {"km", "1000", "Kilometer", 1000.0},
+ {"m", "1", "Meter", 1.0},
{"dm", "1/10", "Decimeter", 0.1},
{"cm", "1/100", "Centimeter", 0.01},
{"mm", "1/1000", "Millimeter", 0.001},
- {"kmi", "1852.0", "International Nautical Mile", 1852.0},
+ {"kmi", "1852", "International Nautical Mile", 1852.0},
{"in", "0.0254", "International Inch", 0.0254},
{"ft", "0.3048", "International Foot", 0.3048},
{"yd", "0.9144", "International Yard", 0.9144},
@@ -25,11 +25,11 @@ pj_units[] = {
{"fath", "1.8288", "International Fathom", 1.8288},
{"ch", "20.1168", "International Chain", 20.1168},
{"link", "0.201168", "International Link", 0.201168},
- {"us-in", "1./39.37", "U.S. Surveyor's Inch", 0.0254},
- {"us-ft", "0.304800609601219", "U.S. Surveyor's Foot", 0.304800609601219},
- {"us-yd", "0.914401828803658", "U.S. Surveyor's Yard", 0.914401828803658},
- {"us-ch", "20.11684023368047", "U.S. Surveyor's Chain", 20.11684023368047},
- {"us-mi", "1609.347218694437", "U.S. Surveyor's Statute Mile", 1609.347218694437},
+ {"us-in", "1/39.37", "U.S. Surveyor's Inch", 100/3937.0},
+ {"us-ft", "0.304800609601219", "U.S. Surveyor's Foot", 1200/3937.0},
+ {"us-yd", "0.914401828803658", "U.S. Surveyor's Yard", 3600/3937.0},
+ {"us-ch", "20.11684023368047", "U.S. Surveyor's Chain", 79200/3937.0},
+ {"us-mi", "1609.347218694437", "U.S. Surveyor's Statute Mile", 6336000/3937.0},
{"ind-yd", "0.91439523", "Indian Yard", 0.91439523},
{"ind-ft", "0.30479841", "Indian Foot", 0.30479841},
{"ind-ch", "20.11669506", "Indian Chain", 20.11669506},