Opened 5 years ago
Closed 2 years ago
#9162 closed Bugs (fixed)
intersects returns incorrect result in spherical equatorial
Reported by: | Owned by: | Barend Gehrels | |
---|---|---|---|
Milestone: | Boost 1.61.0 | Component: | geometry |
Version: | Boost 1.54.0 | Severity: | Problem |
Keywords: | within, intersects, spherical | Cc: |
Description
Hi,
The intersects does not return the correct result for point in polygon with spherical equatorial. These are two cases:
- a polygon with pole (north/south) in it
assume polygon PL: POLYGON((0 80,-90 80, -180 80, 90 80, 0 80)) a point P: POINT(0 90)
boost::geometry::intersects(P, PL)
should return TRUE, but return false in boost 1.54.
- point in the opposite side of the polygon
assume polygon PL: POLYGON((30 0,30 30,90 30, 90 0, 30 0)) a point P: POINT(-120 21)
boost::geometry::intersects(P, PL)
should return FALSE, but return true in boost 1.54.
The issue may be caused by the spherical_side_formula can not handle this two cases.
Attachment is the test case for these two issues.
Attachments (1)
Change History (2)
Changed 5 years ago by
Attachment: | intersectstest.cpp added |
---|
comment:1 Changed 2 years ago by
Keywords: | within intersects spherical added |
---|---|
Milestone: | To Be Determined → Boost 1.61.0 |
Resolution: | → fixed |
Status: | new → closed |
Thanks! The bug was located in winding
strategy which was "scanning" segments using the second coordinate (latitude). In cartesian CS this is ok but in spherical and geographic it isn't. Fixed in Boost 1.61.
Sample test