[geos-devel] Difference operation not always working as expected
Kevin Weller
kweller at asapwebsoft.com
Wed Nov 28 16:22:43 EST 2007
All,
Hopefully it's not merely due to my own idiocy, but I'm experiencing
some weird results from difference and snap operations that may or may
not imply GEOS3 bugs. I'm using the latest and greatest from trunk.
Here's what I'm trying to do:
I've got a smaller polygon (which I call the negating polygon) which
partially covers a larger polygon (which I call the primary polygon).
The negating polygon is always flush with one side or corner of the
primary polygon. The goal is to subtract the negating polygon from
the primary polygon such that there is a resulting "notch" in the
primary. You can see an example of this actually working by looking
at http://www.asapwebsoft.com/files/working_primary_and_negating_plot.png
and http://www.asapwebsoft.com/files/working_result_plot.png
Sometimes, with only slightly different input (in this case, I move
the negating polygon to the East), it doesn't work. See http://www.asapwebsoft.com/files/broken_primary_and_negating_plot.png
and http://www.asapwebsoft.com/files/broken_result_plot.png
(interior ring not shown on the plot, but I've checked, and it's there)
In the latter case, instead of a notch in the resulting polygon, I get
an interior ring (hole), even though the negating polygon is as close
to overlapping as I can get it. I've even tried using the
GeometrySnapper to snap the negating polygon to the primary polygon,
in case they weren't quite lined up, but no luck. In fact, snapTo
seems to have no effect for any of the inputs I provide, so the
function must consider the polygon edges in question to be flush
already. But I still get holes instead of notches.
I'm scripting this in Ruby, and an excerpt from my Ruby driver code is
at http://www.asapwebsoft.com/files/geos_client_code_excerpt.rb
Also, the current output from geos_tests.rb (showing a handful of
failures, probably not related, but I don't know that for sure) is at http://www.asapwebsoft.com/files/test_output.txt
I'm not exactly sure what to try next, but I'm hoping that someone out
there has some ideas.
Oh, in the process of working on this, I've added the snapping
features to the C API and the SWIG bindings...hopefully correctly.
I'll be happy to share those changes if the community wants them.
Since I'm not a committer, what would I do? Send patches to the list?
- Kevin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3818 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/geos-devel/attachments/20071128/29378884/smime.bin
More information about the geos-devel
mailing list