PostGIS  2.2.7dev-r@@SVN_REVISION@@
GEOSGeometry* GBOX2GEOS ( const GBOX box)

Definition at line 279 of file liblwgeom/lwgeom_geos.c.

References GBOX::xmax, GBOX::xmin, GBOX::ymax, and GBOX::ymin.

Referenced by make_strtree(), and union_pairs_within_distance().

280 {
281  GEOSGeometry* envelope;
282  GEOSGeometry* ring;
283  GEOSCoordSequence* seq = GEOSCoordSeq_create(5, 2);
284  if (!seq)
285  {
286  return NULL;
287  }
288 
289  GEOSCoordSeq_setX(seq, 0, box->xmin);
290  GEOSCoordSeq_setY(seq, 0, box->ymin);
291 
292  GEOSCoordSeq_setX(seq, 1, box->xmax);
293  GEOSCoordSeq_setY(seq, 1, box->ymin);
294 
295  GEOSCoordSeq_setX(seq, 2, box->xmax);
296  GEOSCoordSeq_setY(seq, 2, box->ymax);
297 
298  GEOSCoordSeq_setX(seq, 3, box->xmin);
299  GEOSCoordSeq_setY(seq, 3, box->ymax);
300 
301  GEOSCoordSeq_setX(seq, 4, box->xmin);
302  GEOSCoordSeq_setY(seq, 4, box->ymin);
303 
304  ring = GEOSGeom_createLinearRing(seq);
305  if (!ring)
306  {
307  GEOSCoordSeq_destroy(seq);
308  return NULL;
309  }
310 
311  envelope = GEOSGeom_createPolygon(ring, NULL, 0);
312  if (!envelope)
313  {
314  GEOSGeom_destroy(ring);
315  return NULL;
316  }
317 
318  return envelope;
319 }
double xmax
Definition: liblwgeom.h:277
double ymin
Definition: liblwgeom.h:278
double xmin
Definition: liblwgeom.h:276
double ymax
Definition: liblwgeom.h:279

Here is the caller graph for this function: