[geos-devel] Dimension of EMPTY geoms

hrz at geodata.soton.ac.uk hrz at geodata.soton.ac.uk
Mon Dec 4 08:40:24 EST 2006


On Mon, Dec 04, 2006 at 01:52:33PM +0100, strk at refractions.net wrote:
> See bug http://postgis.refractions.net/bugs/bug.php?op=show&bugid=135&pos=5

For the context, these questions came up whilst developing a Python
interface to GEOS.

> Questions are:
> 
> 1) Should EMPTY geometries of *any* kind return 0 from getDimension() ?

Nothing serious; I just expected empty geometries to be
dimensionless! At least there should be some consistency between
GEOMETRYCOLLECTIONs and typed geometries?

> 2) Should CAPI's GEOSCoordSeq_create() raise an error if requested
>    to create anything but a 3d geom ? (the only one supported)

I suppose the root of this question was that I expected geometries
(and CoordSequences) with only x and y coordinates to have a dimension
of 2. If I obtain the CoordSequence from a geometry where hasZ() returns
false, it has a dimension of 3 and (on my machine) the 3rd ordinate (z
value) has a value of 1.7e-308. I know that this is an inordinately
small value (excuse the pun!), but it is a value
nonetheless. Currently, because I can't check the dimensions as to
whether or not I should return this value, users end up with a z value
that wasn't initially specified when iterating over CoordSequences.

Some searching led me to the post at
<http://lists.refractions.net/pipermail/geos-devel/2003-August/000515.html>
and the fact that GEOS treats 1.7e-308 as NaN. Being able to check for
this from the CAPI (perhaps exposing the ISNAN macro in
source/headers/geos/platform.h) would enable me to work around the
dimensions issue.

Kind regards,

Homme.





More information about the geos-devel mailing list