fix wrong bucket calculation for western hemisphere, close to poles, full-degree-longitude calculations.

set_bucket computed false left border, if the span was greater than 1, longitudes were less than zero
and longitudes were within SG_EPSILON on a full degree. Example: -179.0, +87.5 returned -176, 87
but should return -180, 87.
Discovered by Brian Schack
This commit is contained in:
torsten
2009-03-27 22:38:54 +00:00
committed by Tim Moore
parent 81a44d1340
commit 26b4776394

View File

@@ -106,7 +106,7 @@ void SGBucket::set_bucket( double dlon, double dlat ) {
} else if ( span <= 1.0 ) {
x = (int)((dlon - lon) / span);
} else {
if ( (dlon >= 0) || (fabs(diff) < SG_EPSILON) ) {
if ( dlon >= 0 ) {
lon = (int)( (int)(lon / span) * span);
} else {
// cout << " lon = " << lon