Ticket #1324 (closed task: fixed)

Opened 18 months ago

Last modified 18 months ago

Provide a function to read an LWGEOM bounding box and stop reading it directly

Reported by: strk Owned by: strk
Priority: medium Milestone: PostGIS 2.0.0
Component: postgis Version: trunk
Keywords: Cc:

Description (last modified by strk) (diff)

In order to simplify the code, we'd need a function that returns an LWGEOM's bounding box optionally caching it in the structure if not available.

I belive computing the BBOX of a multigeometry by combining the rounded BBOX of component geometries should yeld the same numbers as computing everything using doubles and rounding only at the end, although the operation would be slightly less performance (could be impossible to note even by a performance analisys tool).

Such new function could replace the public compute_bbox functions (there are 3 of them: wrapper, geodetic, cartesian) which could then be moved to the internal header.

Change History

Changed 18 months ago by strk

  • description modified (diff)

An open question is if such method should also take care of rounding the BBOX to floats or not. Such rounding would serve the purpose of always having the _same_ BBOX for the _same_ geometry, no matter if the BBOX was read from the serialized format (which uses floats) or computed from the actual coordinates.

Changed 18 months ago by strk

A good companion to this function would be one that tells you if a geometry has a box known already or not. For GEOS shortcuts, for instance, it probably woulnd't make sense to force computation at the postgis side as GEOS will have to recompute the box anyway and will most likely have shortcircuits itself.

Changed 18 months ago by strk

  • owner changed from pramsey to strk
  • status changed from new to assigned

Changed 18 months ago by strk

lwgeom_add_bbox() does the lazy addition already. I've stubbed a lwgeom_get_bbox() function calling the lazy computer and returning what it gets as part of r8333 but found out that in case of an _empty_ geometry the lazy computer computes a bounding box composed by all zeroes. I don't think I like that.

What's the bounding box of an EMPTY geometry ? /me hopes we wont go to BOX EMPTY ...

Changed 18 months ago by strk

  • status changed from assigned to closed
  • resolution set to fixed

r8335 make the new function public

Note: See TracTickets for help on using tickets.