43{
46 double start_measure = PG_GETARG_FLOAT8(1);
47 double end_measure = PG_GETARG_FLOAT8(2);
50
51
53 {
54 lwpgerror("Only LINESTRING and MULTILINESTRING are supported");
55 PG_RETURN_NULL();
56 }
57
61 else
63
65
66 if ( lwout == NULL )
67 PG_RETURN_NULL();
68
69 gout = geometry_serialize(lwout);
71
72 PG_RETURN_POINTER(gout);
73}
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,...
LWLINE * lwline_measured_from_lwline(const LWLINE *lwline, double m_start, double m_end)
Add a measure dimension to a line, interpolating linearly from the start to the end value.
void lwgeom_free(LWGEOM *geom)
LWMLINE * lwmline_measured_from_lwmline(const LWMLINE *lwmline, double m_start, double m_end)
Re-write the measure ordinate (or add one, if it isn't already there) interpolating the measure betwe...