On 09/12/2014 11:28 AM, Sandro Santilli wrote:
On Thu, Sep 11, 2014 at 07:30:45PM +0300, Mika Heiskanen wrote:
On 09/11/2014 06:57 PM, Sandro Santilli wrote:
Did you take a look at the algorithm ?
It sounds like by the end of operations the class is left with a bunch
of lines to work with, not much to build a result w/out going back
to look at which sides of those lines are internal or external of the
originals.
At the time of insertion into the builder it is known for all
linestrings whether they are part of a hole or the exterior of
a polygon. This information can be inserted into the builder
along with the linestring, and used in the rebuild phase.
Not only whether the linestring was part of an hole or a shell, but
in case it was part of the hole, we must also pass along which side
of boundary segments had the area. Look here:
Clipping rectangle Expected result
and input ( a poligon + a line )
+-------+ . . . . .
|rect | . .
| +----:-----+ . +----+
| | : | . | |
| | +--+ | . | +--+
| | |h | | . | | | <-- dangling line
| | +--+ s | . | +--+
| | : | . | |
| | +--+ | . | |
| | |h | | . | | <-- dissolved
| | +--+ | . | |
| | : | . | |
| +----:-----+ . +----+
| : . .
+-------+ . . . . .
I do not think the extra information is necessary, since if the input
is a valid geometry, the hole is counter-clockwise. The direction of the
shared partial edge should dictate the position of the hole with
respect to the rectangle. In the above example the upper edge is
counter-clockwise in the rectangle while the lower edge is clockwise.
Regards,
Mika Heiskanen / Finnish Meteorological Institute
_______________________________________________
geos-devel mailing list
geos-devel@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/geos-devel