PostGIS  2.5.7dev-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 347 of file lwutil.c.

348 {
349  int newsrid = srid;
350 
351  if ( newsrid <= 0 ) {
352  if ( newsrid != SRID_UNKNOWN ) {
353  newsrid = SRID_UNKNOWN;
354  lwnotice("SRID value %d converted to the officially unknown SRID value %d", srid, newsrid);
355  }
356  } else if ( srid > SRID_MAXIMUM ) {
357  newsrid = SRID_USER_MAXIMUM + 1 +
358  /* -1 is to reduce likelyhood of clashes */
359  /* NOTE: must match implementation in postgis_restore.pl */
360  ( srid % ( SRID_MAXIMUM - SRID_USER_MAXIMUM - 1 ) );
361  lwnotice("SRID value %d > SRID_MAXIMUM converted to %d", srid, newsrid);
362  }
363 
364  return newsrid;
365 }
#define SRID_USER_MAXIMUM
Maximum valid SRID value for the user We reserve 1000 values for internal use.
Definition: liblwgeom.h:185
#define SRID_MAXIMUM
Maximum allowed SRID value in serialized geometry.
Definition: liblwgeom.h:179
#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

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().

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