2408 geom = PG_GETARG_GSERIALIZED_P(0);
2412 PG_FREE_IF_COPY(geom, 0);
2413 lwpgerror(
"Argument must be POINT geometries");
2416 srid = lwpoint->
srid;
2419 PG_FREE_IF_COPY(geom, 0);
2420 lwpgerror(
"Error extracting point");
2424 PG_FREE_IF_COPY(geom, 0);
2427 geom = PG_GETARG_GSERIALIZED_P(1);
2431 PG_FREE_IF_COPY(geom, 1);
2432 lwpgerror(
"Argument must be POINT geometries");
2435 if (lwpoint->
srid != srid)
2437 PG_FREE_IF_COPY(geom, 1);
2438 lwpgerror(
"Operation on mixed SRID geometries");
2443 PG_FREE_IF_COPY(geom, 1);
2444 lwpgerror(
"Error extracting point");
2448 PG_FREE_IF_COPY(geom, 1);
2451 if ((p1.
x == p2.
x) && (p1.
y == p2.
y))
2462 PG_RETURN_FLOAT8(
result);
char result[OUT_DOUBLE_BUFFER_SIZE]
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
int azimuth_pt_pt(const POINT2D *p1, const POINT2D *p2, double *ret)
Compute the azimuth of segment AB in radians.
void lwpoint_free(LWPOINT *pt)
int getPoint2d_p(const POINTARRAY *pa, uint32_t n, POINT2D *point)
static LWPOINT * lwgeom_as_lwpoint(const LWGEOM *lwgeom)