A disjoint POLYGON( (0 0, 80 0, 80 80, 0 80, 0 0)) POLYGON( (100 200, 100 140, 180 140, 180 200, 100 200)) false false A contained in rectangle POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) POLYGON((10 10, 10 90, 90 90, 90 10, 10 10)) true true A containing rectangle POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) POLYGON ((60 180, -100 120, -140 60, -40 20, -100 -80, 40 -20, 140 -100, 140 40, 260 160, 80 120, 60 180)) true false mA containing rectangle POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) MULTIPOLYGON (((-60 180, -60 -60, 40 -20, 140 -100, 180 120, -20 140, -60 180)), ((20 280, 0 180, 180 160, 200 280, 20 280))) true false true false true L overlaps thru Y axis side POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) LINESTRING(10 10, 200 10) true L overlaps thru X axis side POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) LINESTRING(10 10, 10 2000) true false false L on upward diagonal crosses POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) LINESTRING (60 120, -20 20) true false false L on downward diagonal crosses POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) LINESTRING (50 120, 120 50) true false false L on downward diagonal does not intersect POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) LINESTRING (70 140, 150 50) false false false L with many segments crosses POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) LINESTRING (110 160, 150 70, 110 -20, 130 80, 90 150, 60 -20, 38 128) true false false L with many segments does not intersect POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) LINESTRING (110 160, 150 70, 110 -20, 130 80, 90 150, 90 110, 38 128) false false false L line intersection POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) LINESTRING( 10 10, -10 -20 ) true false L in polygon boundary POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) LINESTRING( 10 0, 90 0 ) true false true true L (3 pts) in polygon boundary POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) LINESTRING( 10 0, 100 0, 100 50 ) true false true true L (4 pts) in polygon boundary POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) LINESTRING( 10 0, 100 0, 100 100, 50 100 ) true false true true mL with one component contained and one in boundary POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) MULTILINESTRING( (10 0, 20 0), (10 10, 20 20) ) true true true true mL with one component contained POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) MULTILINESTRING( (10 10, 10 20), (200 10, 200 20) ) true false P in polygon boundary (Y axis) POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) POINT(100 50) true false true true P in polygon boundary (X axis) POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) POINT(50 100) true false true true P in polygon POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) POINT(60 60) true true true true mP in polygon boundary and interior POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) MULTIPOINT((50 100), (60 60)) true true true true GC as argument POLYGON((0 0, 100 0, 100 100, 0 100, 0 0)) GEOMETRYCOLLECTION ( POLYGON((10 10, 10 90, 90 90, 90 10, 10 10)), LINESTRING(10 10, 10 20), MULTIPOINT((50 100), (60 60)) ) true true true true