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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user