53         int32 srid_to, srid_from;
 
   55         srid_to = PG_GETARG_INT32(1);
 
   58                 elog(ERROR, 
"ST_Transform: %d is an invalid target SRID", 
SRID_UNKNOWN);
 
   62         geom = PG_GETARG_GSERIALIZED_P_COPY(0);
 
   67                 PG_FREE_IF_COPY(geom, 0);
 
   68                 elog(ERROR, 
"ST_Transform: Input geometry has unknown (%d) SRID", 
SRID_UNKNOWN);
 
   73         if ( srid_from == srid_to )
 
   74                 PG_RETURN_POINTER(geom);
 
   76         postgis_initialize_cache();
 
   77         if ( GetLWPROJ(srid_from, srid_to, &pj) == 
LW_FAILURE )
 
   79                 PG_FREE_IF_COPY(geom, 0);
 
   80                 elog(ERROR, 
"ST_Transform: Failure reading projections from spatial_ref_sys.");
 
   87         lwgeom->
srid = srid_to;
 
   95         result = geometry_serialize(lwgeom);
 
   97         PG_FREE_IF_COPY(geom, 0);
 
char result[OUT_DOUBLE_BUFFER_SIZE]
int32_t gserialized_get_srid(const GSERIALIZED *g)
Extract the SRID from the serialized form (it is packed into three bytes so this is a handy function)...
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
void lwgeom_refresh_bbox(LWGEOM *lwgeom)
Drop current bbox and calculate a fresh one.
int lwgeom_transform(LWGEOM *geom, LWPROJ *pj)
Transform (reproject) a geometry in-place.
void lwgeom_free(LWGEOM *geom)
#define SRID_UNKNOWN
Unknown SRID value.