Well, I'm slightly embarassed to admit that for the case of an envelope for a horizontal or vertical line, JTS actually returns an invalid polygon. (For point envelopes however it does return a Point geometry).

There's a couple of reasons for this. One is that the OGC SFS seems to imply that when returning envelopes as a Geometry, a Polygon should be returned. The other is simply that the original JTS behaviour was to always return a Polygon, and when the code was enhanced to return Points for zero-area envelopes, the linear case was omitted.

In its defence I'll point out that in my experience working with JTS it is *very* rare to need to obtain a Geometry as an envelope. Usually when doing "Envelopey" kinds of things it is much faster, simpler, and more robust to simply work with actual Envelope objects.
Charlie Savage wrote:
Paul,

Hmmm... for an linear envelope would returning a linestring not make more sense?

That does raise another question.

select astext(envelope('LINESTRING(0 0, 0 10)'))

"POLYGON((0 0,0 10,0 10,0 0,0 0))"

select valid(envelope('LINESTRING(0 0, 0 10)'))

false

Should envelope should do the same?  What does JTS/GEOS do in this case?

Charlie
------------------------------------------------------------------------

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

--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022

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

Reply via email to