# HG changeset patch # User jbe # Date 1581509464 -3600 # Node ID 8fa0ef5e4ee6fba99d6749ce6434779a8a43a3f3 # Parent 57ec3281fbb7be84db950792e17b371b3ad2bab9 Fixed longitude wraparound for values equal to or greater than 360 degrees diff -r 57ec3281fbb7 -r 8fa0ef5e4ee6 latlon-v0010.c --- a/latlon-v0010.c Wed Feb 12 12:43:46 2020 +0100 +++ b/latlon-v0010.c Wed Feb 12 13:11:04 2020 +0100 @@ -271,12 +271,14 @@ if (warn) { ereport(NOTICE, (errmsg("longitude west of 180th meridian normalized"))); } - lon += 360 - trunc(lon / 360) * 360; + lon = fmod(lon, 360); + if (lon < -180) lon += 360; } else if (lon > 180) { if (warn) { ereport(NOTICE, (errmsg("longitude east of 180th meridian normalized"))); } - lon -= 360 + trunc(lon / 360) * 360; + lon = fmod(lon, 360); + if (lon > 180) lon -= 360; } return lon; }