PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ clamp_srid()

int32_t clamp_srid ( int32_t  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 333 of file lwutil.c.

334 {
335  int newsrid = srid;
336 
337  if ( newsrid <= 0 ) {
338  if ( newsrid != SRID_UNKNOWN ) {
339  newsrid = SRID_UNKNOWN;
340  lwnotice("SRID value %d converted to the officially unknown SRID value %d", srid, newsrid);
341  }
342  } else if ( srid > SRID_MAXIMUM ) {
343  newsrid = SRID_USER_MAXIMUM + 1 +
344  /* -1 is to reduce likelyhood of clashes */
345  /* NOTE: must match implementation in postgis_restore.pl */
346  ( srid % ( SRID_MAXIMUM - SRID_USER_MAXIMUM - 1 ) );
347  lwnotice("SRID value %d > SRID_MAXIMUM converted to %d", srid, newsrid);
348  }
349 
350  return newsrid;
351 }
#define SRID_USER_MAXIMUM
Maximum valid SRID value for the user We reserve 1000 values for internal use.
Definition: liblwgeom.h:226
#define SRID_MAXIMUM
Maximum allowed SRID value in serialized geometry.
Definition: liblwgeom.h:220
#define SRID_UNKNOWN
Unknown SRID value.
Definition: liblwgeom.h:229
void lwnotice(const char *fmt,...)
Write a notice out to the notice handler.
Definition: lwutil.c:177

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

Referenced by gserialized1_set_srid(), gserialized2_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().

Here is the call graph for this function:
Here is the caller graph for this function: