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

◆ LWGEOM_line_from_mpoint()

Datum LWGEOM_line_from_mpoint ( PG_FUNCTION_ARGS  )

Definition at line 1350 of file lwgeom_functions_basic.c.

1351{
1352 GSERIALIZED *ingeom, *result;
1353 LWLINE *lwline;
1354 LWMPOINT *mpoint;
1355
1356 POSTGIS_DEBUG(2, "LWGEOM_line_from_mpoint called");
1357
1358 /* Get input GSERIALIZED and deserialize it */
1359 ingeom = PG_GETARG_GSERIALIZED_P(0);
1360
1361 if (gserialized_get_type(ingeom) != MULTIPOINTTYPE)
1362 {
1363 elog(ERROR, "makeline: input must be a multipoint");
1364 PG_RETURN_NULL(); /* input is not a multipoint */
1365 }
1366
1368 lwline = lwline_from_lwmpoint(mpoint->srid, mpoint);
1369 if (!lwline)
1370 {
1371 PG_FREE_IF_COPY(ingeom, 0);
1372 elog(ERROR, "makeline: lwline_from_lwmpoint returned NULL");
1373 PG_RETURN_NULL();
1374 }
1375
1376 result = geometry_serialize(lwline_as_lwgeom(lwline));
1377
1378 PG_FREE_IF_COPY(ingeom, 0);
1379 lwline_free(lwline);
1380
1381 PG_RETURN_POINTER(result);
1382}
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
uint32_t gserialized_get_type(const GSERIALIZED *g)
Extract the geometry type from the serialized form (it hides in the anonymous data area,...
Definition gserialized.c:89
#define MULTIPOINTTYPE
Definition liblwgeom.h:119
LWGEOM * lwline_as_lwgeom(const LWLINE *obj)
Definition lwgeom.c:321
LWMPOINT * lwgeom_as_lwmpoint(const LWGEOM *lwgeom)
Definition lwgeom.c:224
void lwline_free(LWLINE *line)
Definition lwline.c:67
LWLINE * lwline_from_lwmpoint(int32_t srid, const LWMPOINT *mpoint)
Definition lwline.c:275
GSERIALIZED * geometry_serialize(LWGEOM *lwgeom)
int32_t srid
Definition liblwgeom.h:520

References geometry_serialize(), gserialized_get_type(), lwgeom_as_lwmpoint(), lwgeom_from_gserialized(), lwline_as_lwgeom(), lwline_free(), lwline_from_lwmpoint(), MULTIPOINTTYPE, and LWMPOINT::srid.

Here is the call graph for this function: