<div dir="ltr">I had a bit of an unusual situation pop up and wondered if anyone here had any ideas.<div><br></div><div>Long story short, if you transform from EPSG:4326 to EPSG:4267 (wgs84 to NAD27) using longitude 180 and latitude 50, you wind up with a longitude of -179.997. Think of splitting a box across the antimeridian, like a big bounding box over Russia. Coming from the left, you'd have a longitude of around 25 to 180, then -180 to about -170. And if you were transforming them, you'd go 25 to -179.997, which would be the wrong way for the first section. (The second section would go from -179.997 to -170 in the correct direction.)</div><div><br></div><div>PROJ has that +over flag that generally works as expected, but in this case the transform's sign change is happening entirely in the hgridshift code (pj_hgrid_apply_internal to be exact). When it gets to "in.lam = adjlon(t.lam + extent->west);" it has become -179.997.</div><div><br></div><div>adjlon(t.lam + extent->west) * 180 / 3.14159265359<br>-179.99748513695496</div><div><br></div><div>Adding a P->over check around the adjlon call would still result in the same value.</div><div><br></div><div>(t.lam + extent->west)<br>-3.1415487609496271<br></div><div>(t.lam + extent->west)* 180 / 3.14159265359<br>-179.99748513695496</div><div><br></div><div>Is there any sort of change that could happen inside of that function that might keep it from changing its sign? Ideally it would be returning 180.003 instead of -179.997.<br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Peter Townsend<br></div>Senior Software Developer<br></div></div></div></div>