Opened 8 years ago

Closed 8 years ago

#620 closed defect (wontfix)

Incorrect intersection between geometries

Reported by: rhf Owned by: geos-devel@…
Priority: major Milestone: 3.3.9
Component: Default Version: 3.3.7
Severity: Unassigned Keywords:
Cc:

Description

I have two polylines A, B which partly overlap.

When computing the intersection C = intersection(A, B), geos reports the correct result, which is a simple linestring with two points. One of them is a noded intersection. The other one is not.

Hereafter I compute D = intersection(B, C). Of course D should equal C. Instead I will only get a single point: the noded intersection.

This seems strange to me: either I would expect C also to be incorrect or both queries to give the same result. The same issue occurs when I try to compute B - C.

With similar cases involving a noded and none-noded intersection, I get the correct results in all cases. For example when trying to reproduce the issue with simple horizontal lines.

I have attached to small files in WKB format: A.txt, B.txt to be used as input to reproduce the issue. Actually the original polygons used as input where much larger, but I was able to reduce their sizes such that they only have a few points. Also I am working with geos via Spatialite, but I do not think this is relevant for this issue.

Attachments (2)

A.txt (96 bytes) - added by rhf 8 years ago.
polyline A
B.txt (112 bytes) - added by rhf 8 years ago.
polyline B

Download all attachments as: .zip

Change History (3)

Changed 8 years ago by rhf

Attachment: A.txt added

polyline A

Changed 8 years ago by rhf

Attachment: B.txt added

polyline B

comment:1 Changed 8 years ago by mdavis

Resolution: wontfix
Status: newclosed

In general JTS/GEOS overaly operations do not obey the mathematical axioms of pure set theory.

See D7 in the JTS FAQ:

http://tsusiatsoftware.net/jts/jts-faq/jts-faq.html

Note: See TracTickets for help on using tickets.