PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ geometry_from_geography()

Datum geometry_from_geography ( PG_FUNCTION_ARGS  )

Definition at line 582 of file geography_inout.c.

583 {
584  LWGEOM *lwgeom = NULL;
585  GSERIALIZED *ret = NULL;
586  GSERIALIZED *g_ser = PG_GETARG_GSERIALIZED_P(0);
587 
588  lwgeom = lwgeom_from_gserialized(g_ser);
589 
590  /* Recalculate the boxes after re-setting the geodetic bit */
591  lwgeom_set_geodetic(lwgeom, false);
592  lwgeom_refresh_bbox(lwgeom);
593 
594  /* We want "geometry" to think all our "geography" has an SRID, and the
595  implied SRID is the default, so we fill that in if our SRID is actually unknown. */
596  if ( (int)lwgeom->srid <= 0 )
597  lwgeom->srid = SRID_DEFAULT;
598 
599  ret = geometry_serialize(lwgeom);
600  lwgeom_free(lwgeom);
601 
602  PG_RETURN_POINTER(ret);
603 }
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
Definition: gserialized.c:239
void lwgeom_refresh_bbox(LWGEOM *lwgeom)
Drop current bbox and calculate a fresh one.
Definition: lwgeom.c:689
void lwgeom_set_geodetic(LWGEOM *geom, int value)
Set the FLAGS geodetic bit on geometry an all sub-geometries and pointlists.
Definition: lwgeom.c:946
void lwgeom_free(LWGEOM *geom)
Definition: lwgeom.c:1138
#define SRID_DEFAULT
Definition: liblwgeom.h:239
GSERIALIZED * geometry_serialize(LWGEOM *lwgeom)
int32_t srid
Definition: liblwgeom.h:446

References geometry_serialize(), lwgeom_free(), lwgeom_from_gserialized(), lwgeom_refresh_bbox(), lwgeom_set_geodetic(), LWGEOM::srid, and SRID_DEFAULT.

Here is the call graph for this function: