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

◆ ST_OrientedEnvelope()

Datum ST_OrientedEnvelope ( PG_FUNCTION_ARGS  )

Definition at line 2651 of file postgis/lwgeom_geos.c.

2652{
2653 GSERIALIZED* input;
2655 GEOSGeometry* input_geos;
2656 GEOSGeometry* result_geos;
2657 int32_t srid;
2658
2659 initGEOS(lwpgnotice, lwgeom_geos_error);
2660
2661 input = PG_GETARG_GSERIALIZED_P(0);
2662 srid = gserialized_get_srid(input);
2663 input_geos = POSTGIS2GEOS(input);
2664 if (!input_geos)
2665 HANDLE_GEOS_ERROR("Geometry could not be converted to GEOS");
2666
2667 result_geos = GEOSMinimumRotatedRectangle(input_geos);
2668 GEOSGeom_destroy(input_geos);
2669 if (!result_geos)
2670 HANDLE_GEOS_ERROR("Error computing oriented envelope");
2671
2672 GEOSSetSRID(result_geos, srid);
2673 result = GEOS2POSTGIS(result_geos, LW_FALSE);
2674 GEOSGeom_destroy(result_geos);
2675
2676 PG_FREE_IF_COPY(input, 0);
2677 PG_RETURN_POINTER(result);
2678}
char result[OUT_DOUBLE_BUFFER_SIZE]
Definition cu_print.c:267
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)...
void lwgeom_geos_error(const char *fmt,...)
#define LW_FALSE
Definition liblwgeom.h:94
GSERIALIZED * GEOS2POSTGIS(GEOSGeom geom, char want3d)
GEOSGeometry * POSTGIS2GEOS(const GSERIALIZED *pglwgeom)
#define HANDLE_GEOS_ERROR(label)

References GEOS2POSTGIS(), gserialized_get_srid(), HANDLE_GEOS_ERROR, LW_FALSE, lwgeom_geos_error(), POSTGIS2GEOS(), and result.

Here is the call graph for this function: