When features are snapped or sometimes they are just this way, they are very close to the geodetic bounds but slightly over.
This routine nudges those points, and only those points, back over to the bounds. http://trac.osgeo.org/postgis/ticket/1292
Definition at line 3352 of file lwgeodetic.c.
3353{
3354
3355 uint32_t i;
3359 static double tolerance = 1e-10;
3360
3361 if ( ! pa )
3362 lwerror(
"ptarray_nudge_geodetic called with null input");
3363
3364 for(i = 0; i < pa->
npoints; i++ )
3365 {
3367 if ( p.
x < -180.0 && (-180.0 - p.
x < tolerance) )
3368 {
3371 }
3372 if ( p.
x > 180.0 && (p.
x - 180.0 < tolerance) )
3373 {
3376 }
3377 if ( p.
y < -90.0 && (-90.0 - p.
y < tolerance) )
3378 {
3381 }
3382 if ( p.
y > 90.0 && (p.
y - 90.0 < tolerance) )
3383 {
3386 }
3388 {
3392 }
3393 }
3394 return rv;
3395}
int getPoint4d_p(const POINTARRAY *pa, uint32_t n, POINT4D *point)
#define LW_TRUE
Return types for functions with status returns.
void ptarray_set_point4d(POINTARRAY *pa, uint32_t n, const POINT4D *p4d)
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
References getPoint4d_p(), LW_FALSE, LW_TRUE, lwerror(), POINTARRAY::npoints, ptarray_set_point4d(), POINT4D::x, and POINT4D::y.
Referenced by lwgeom_nudge_geodetic().