PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ clamp_srid()

int32_t clamp_srid ( int32_t  srid)
extern

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: