Modify

Opened 4 years ago

Closed 18 months ago

#9162 closed Bugs (fixed)

intersects returns incorrect result in spherical equatorial

Reported by: hujie.eagle@… 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:

  1. 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.

  1. 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)

intersectstest.cpp (899 bytes) - added by anonymous 4 years ago.
Sample test

Download all attachments as: .zip

Change History (2)

Changed 4 years ago by anonymous

Attachment: intersectstest.cpp added

Sample test

comment:1 Changed 18 months ago by awulkiew

Keywords: within intersects spherical added
Milestone: To Be DeterminedBoost 1.61.0
Resolution: fixed
Status: newclosed

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.

Last edited 18 months ago by awulkiew (previous) (diff)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Barend Gehrels.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.