Hi Paul,

Well, clearly there's a bug to be fixed.
In the meanwhile, since these are just boxes,

makepoint((minx+maxx)/2, (miny+maxy)/2)

Right, makes sense. Except I couldn't find an api that actually lets you get at the information in the Box2D.

But I just looked again, and in fact there is one I missed:

select xmax(extent('POINT(10 10)'))
select xmin(extent('POINT(10 10)'))

So cool - that will do the trick.  Thanks.

As an aside, its not obvious to me how to actually fix this bug. Somehow the conversion from Box2D/Box3D to geometry needs to figure out if the bbox has 0 width and/or 0 height and if so create a Point instead of a Polygon. Would a check for xmin=xmax work - it seems dubious since these are floating point numbers. Does the precision stuff in Geos help with this somehow (except this is in PostGis not Geos)? Anyway, just curious. I'll file a bug report.

Thanks,

Charlie



P.

On 18-Sep-07, at 8:56 PM, Charlie Savage wrote:

It turns out that st_extent is hundreds of times faster than Envelope. But I run into a problem when using it:

select st_extent('POINT(10 10)')
"BOX(10 10,10 10)"

But if you do this:

select asText(centroid(st_extent('POINT(10 10)')))
"GEOMETRYCOLLECTION EMPTY"


Which is the same issue I mentioned a couple weeks ago where Envelope('POINT(10 10)') doesn't return a point like it should.

So I'd like to use st_extent, but a need a way to get a valid point that represents the center of the bounds instead of an empty collection. How?

Charlie
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to