PostGIS  2.4.9dev-r@@SVN_REVISION@@

◆ BOX2D_in()

Datum BOX2D_in ( PG_FUNCTION_ARGS  )

Definition at line 58 of file lwgeom_box.c.

References BOX2D_out(), gbox_copy(), gbox_init(), PG_FUNCTION_INFO_V1(), GBOX::xmax, GBOX::xmin, GBOX::ymax, and GBOX::ymin.

59 {
60  char *str = PG_GETARG_CSTRING(0);
61  int nitems;
62  double tmp;
63  GBOX box;
64  int i;
65 
66  gbox_init(&box);
67 
68  for(i = 0; str[i]; i++) {
69  str[i] = tolower(str[i]);
70  }
71 
72  nitems = sscanf(str,"box(%lf %lf,%lf %lf)", &box.xmin, &box.ymin, &box.xmax, &box.ymax);
73  if (nitems != 4)
74  {
75  elog(ERROR,"box2d parser - couldnt parse. It should look like: BOX(xmin ymin,xmax ymax)");
76  PG_RETURN_NULL();
77  }
78 
79  if (box.xmin > box.xmax)
80  {
81  tmp = box.xmin;
82  box.xmin = box.xmax;
83  box.xmax = tmp;
84  }
85  if (box.ymin > box.ymax)
86  {
87  tmp = box.ymin;
88  box.ymin = box.ymax;
89  box.ymax = tmp;
90  }
91  PG_RETURN_POINTER(gbox_copy(&box));
92 }
GBOX * gbox_copy(const GBOX *box)
Return a copy of the GBOX, based on dimensionality of flags.
Definition: g_box.c:438
double xmax
Definition: liblwgeom.h:293
double ymin
Definition: liblwgeom.h:294
void gbox_init(GBOX *gbox)
Zero out all the entries in the GBOX.
Definition: g_box.c:51
double xmin
Definition: liblwgeom.h:292
double ymax
Definition: liblwgeom.h:295
Here is the call graph for this function: