186 GSERIALIZED *gser_line = PG_GETARG_GSERIALIZED_P(0);
187 GSERIALIZED *gser_point = PG_GETARG_GSERIALIZED_P(1);
193 elog(ERROR,
"ST_InterpolatePoint: 1st argument isn't a line");
198 elog(ERROR,
"ST_InterpolatePoint: 2st argument isn't a point");
206 elog(ERROR,
"ST_InterpolatePoint only accepts geometries that have an M dimension");
uint32_t gserialized_get_type(const GSERIALIZED *s)
Extract the geometry type from the serialized form (it hides in the anonymous data area...
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
int gserialized_has_m(const GSERIALIZED *gser)
Check if a GSERIALIZED has an M ordinate.
void error_if_srid_mismatch(int srid1, int srid2)
LWPOINT * lwgeom_as_lwpoint(const LWGEOM *lwgeom)
double lwgeom_interpolate_point(const LWGEOM *lwin, const LWPOINT *lwpt)
Find the measure value at the location on the line closest to the point.
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
int32_t gserialized_get_srid(const GSERIALIZED *s)
Extract the SRID from the serialized form (it is packed into three bytes so this is a handy function)...