PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ LWGEOM_makepoint()

Datum LWGEOM_makepoint ( PG_FUNCTION_ARGS  )

Definition at line 2125 of file lwgeom_functions_basic.c.

2126 {
2127  double x, y, z, m;
2128  LWPOINT *point;
2129  GSERIALIZED *result;
2130 
2131  POSTGIS_DEBUG(2, "LWGEOM_makepoint called");
2132 
2133  x = PG_GETARG_FLOAT8(0);
2134  y = PG_GETARG_FLOAT8(1);
2135 
2136  if (PG_NARGS() == 2)
2137  point = lwpoint_make2d(SRID_UNKNOWN, x, y);
2138  else if (PG_NARGS() == 3)
2139  {
2140  z = PG_GETARG_FLOAT8(2);
2141  point = lwpoint_make3dz(SRID_UNKNOWN, x, y, z);
2142  }
2143  else if (PG_NARGS() == 4)
2144  {
2145  z = PG_GETARG_FLOAT8(2);
2146  m = PG_GETARG_FLOAT8(3);
2147  point = lwpoint_make4d(SRID_UNKNOWN, x, y, z, m);
2148  }
2149  else
2150  {
2151  elog(ERROR, "LWGEOM_makepoint: unsupported number of args: %d", PG_NARGS());
2152  PG_RETURN_NULL();
2153  }
2154 
2155  result = geometry_serialize((LWGEOM *)point);
2156 
2157  PG_RETURN_POINTER(result);
2158 }
LWPOINT * lwpoint_make4d(int32_t srid, double x, double y, double z, double m)
Definition: lwpoint.c:195
LWPOINT * lwpoint_make2d(int32_t srid, double x, double y)
Definition: lwpoint.c:163
LWPOINT * lwpoint_make3dz(int32_t srid, double x, double y, double z)
Definition: lwpoint.c:173
#define SRID_UNKNOWN
Unknown SRID value.
Definition: liblwgeom.h:229
GSERIALIZED * geometry_serialize(LWGEOM *lwgeom)

References geometry_serialize(), lwpoint_make2d(), lwpoint_make3dz(), lwpoint_make4d(), SRID_UNKNOWN, pixval::x, and pixval::y.

Here is the call graph for this function: