PostGIS  2.4.9dev-r@@SVN_REVISION@@

◆ clamp_srid()

int clamp_srid ( int  srid)

Return a valid SRID from an arbitrary integer Raises a notice if what comes out is different from what went in.

Raises an error if SRID value is out of bounds.

Definition at line 380 of file lwutil.c.

References lwnotice(), SRID_MAXIMUM, SRID_UNKNOWN, and SRID_USER_MAXIMUM.

Referenced by gserialized_set_srid(), gserialized_typmod_in(), lwgeom_from_wkb_state(), RASTER_asGDALRaster(), RASTER_asRaster(), RASTER_clip(), RASTER_fromGDALRaster(), RASTER_GDALWarp(), RASTER_nearestValue(), RASTER_setPixelValuesGeomval(), rt_raster_from_wkb(), rt_raster_get_srid(), rt_raster_set_srid(), and wkt_lexer_read_srid().

381 {
382  int newsrid = srid;
383 
384  if ( newsrid <= 0 ) {
385  if ( newsrid != SRID_UNKNOWN ) {
386  newsrid = SRID_UNKNOWN;
387  lwnotice("SRID value %d converted to the officially unknown SRID value %d", srid, newsrid);
388  }
389  } else if ( srid > SRID_MAXIMUM ) {
390  newsrid = SRID_USER_MAXIMUM + 1 +
391  /* -1 is to reduce likelyhood of clashes */
392  /* NOTE: must match implementation in postgis_restore.pl */
393  ( srid % ( SRID_MAXIMUM - SRID_USER_MAXIMUM - 1 ) );
394  lwnotice("SRID value %d > SRID_MAXIMUM converted to %d", srid, newsrid);
395  }
396 
397  return newsrid;
398 }
#define SRID_USER_MAXIMUM
Maximum valid SRID value for the user We reserve 1000 values for internal use.
Definition: liblwgeom.h:185
#define SRID_UNKNOWN
Unknown SRID value.
Definition: liblwgeom.h:188
void lwnotice(const char *fmt,...)
Write a notice out to the notice handler.
Definition: lwutil.c:177
#define SRID_MAXIMUM
Maximum allowed SRID value in serialized geometry.
Definition: liblwgeom.h:179
Here is the call graph for this function:
Here is the caller graph for this function: