On Jun 4, 2008, at 11:49 AM, Martin Davis wrote:
To answer a question you posed on your blog, the reason that when
you subtract a line from a polygon you get basically the same
polygon, rather than say the polygon split into two halves, is that
if the latter was provided as a MultiPolygon it would be invalid,
because the halves would share line segments down the middle. Also,
if the line did not fully overlap the polygon there's no choice -
you have to return the original poly. The behaviour is thus
consistent between the two cases.
Unfortunately the SFS (and no other standard I'm aware of) doesn't
define the precise semantics of the overlay operations. So I made
'em up! Hopefully they are consistent and reasonable. There's no
doubt alternative definitions which might be useful in some cases -
but you have to choose one definition for any given function. (For
the situation above, many people would like a "cut polygon by line"
operation - hopefully that will get provided as a new function
sometime soon).
I've seen "split" as a term that is commonly used for such operations,
e.g.
geometry = ST_Split(geometry1, geometry2)
This should be defined for geometry1 of dimensionality D ≥ 1 and
geometry2 of dimensionality D or D-1, i.e. (polygon, polygon),
(polygon, line), (line, line), and (line, point). The result should be
GeometryType(geometry) == 'GeometryCollection' where for any n
GeometryType(ST_GeometryN(geometry, n)) == GeometryType(geometry1).
-- Andy
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users