Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#10957 closed Bugs (fixed)

Various bugs in relational operations (spatial predicates)

Reported by: awulkiew Owned by: awulkiew
Milestone: Boost 1.58.0 Component: geometry
Version: Boost 1.57.0 Severity: Problem
Keywords: relate, within, disjoint, overlaps, crosses Cc:

Description (last modified by awulkiew)

  1. Assertion failure in relate(L,A) for invalid polygon containing spike.
    "LINESTRING(6 3,9 0)"
    "POLYGON((0 0,5 8,6 1,6 3,8 1,5 4,9 6,2 5,7 4,1 7,0 0))"
    
  1. Invalid result of relate(L,A), the second Ls is not handled properly.
    "MULTILINESTRING((6 6,15 15),(0 0, 7 7))"
    "POLYGON((5 5,5 15,15 15,15 5,5 5))"
    
  1. Invalid result of relate(L,MPoly) because it assumes that a single u/u for an Areal ring means that the Linear geometry is in the exterior of Areal.
    "LINESTRING(5 5,0 0,10 0)"
    "MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((0 0,0 -10,-10 -10,-10 0,0 0)))"
    
  1. Invalid result of relate(A,MPoly), similar to the above.
    "MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((0 0,0 -10,-10 -10,-10 0,0 0)))"
    "POLYGON((0 0,0 5,5 5,5 0,0 0))"
    
  1. Invalid result of relate(MLs,A), second entering linestring not handled properly.
    "MULTILINESTRING((4 10, 3 10, 10 6),(5 0, 7 5, 9 10))"
    "POLYGON((0 0,0 10,10 10,10 0,5 5,0 0))"
    
  1. Invalid result of relate(Ls,MLs) for a collinear spike contained in one Ls of a MLs and touching the other one (blocking turn detected as exit).
    "LINESTRING(1 1, 5 5, 4 4)"
    "MULTILINESTRING((2 5, 7 5, 8 3, 6 3, 4 0),(0 0,10 10))"
    

Change History (3)

comment:1 by awulkiew, 8 years ago

Description: modified (diff)

comment:3 by awulkiew, 8 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.