LA - A and B simple LINESTRING(240 190, 120 120) POLYGON( (110 240, 50 80, 240 70, 110 240)) LINESTRING(177 153, 120 120) GEOMETRYCOLLECTION( LINESTRING(240 190, 177 153), POLYGON( (177 153, 240 70, 50 80, 110 240, 177 153))) LINESTRING(240 190, 177 153) GEOMETRYCOLLECTION( LINESTRING(240 190, 177 153), POLYGON( (177 153, 240 70, 50 80, 110 240, 177 153))) LA - A intersects B-hole LINESTRING(0 100, 100 100, 200 200) POLYGON( (30 240, 260 30, 30 30, 30 240), (80 140, 80 80, 140 80, 80 140)) MULTILINESTRING( (30 100, 80 100), (110 110, 140 140)) GEOMETRYCOLLECTION( LINESTRING(0 100, 30 100), LINESTRING(80 100, 100 100, 110 110), LINESTRING(140 140, 200 200), POLYGON( (30 240, 140 140, 260 30, 30 30, 30 100, 30 240), (80 140, 80 100, 80 80, 140 80, 110 110, 80 140))) MULTILINESTRING( (0 100, 30 100), (80 100, 100 100, 110 110), (140 140, 200 200)) GEOMETRYCOLLECTION( LINESTRING(0 100, 30 100), LINESTRING(80 100, 100 100, 110 110), LINESTRING(140 140, 200 200), POLYGON( (30 240, 140 140, 260 30, 30 30, 30 100, 30 240), (80 140, 80 100, 80 80, 140 80, 110 110, 80 140))) LA - A intersects B-hole #2 LINESTRING(40 340, 200 250, 120 180, 160 110, 270 40) POLYGON( (160 330, 60 260, 20 150, 60 40, 190 20, 270 130, 260 250, 160 330), (140 240, 80 190, 90 100, 160 70, 210 130, 210 210, 140 240)) MULTILINESTRING( (114 298, 200 250, 173 226), (182 96, 225 68)) GEOMETRYCOLLECTION( LINESTRING(40 340, 114 298), LINESTRING(173 226, 120 180, 160 110, 182 96), LINESTRING(225 68, 270 40), POLYGON( (114 298, 160 330, 260 250, 270 130, 225 68, 190 20, 60 40, 20 150, 60 260, 114 298), (140 240, 80 190, 90 100, 160 70, 182 96, 210 130, 210 210, 173 226, 140 240))) MULTILINESTRING( (40 340, 114 298), (173 226, 120 180, 160 110, 182 96), (225 68, 270 40)) GEOMETRYCOLLECTION( LINESTRING(40 340, 114 298), LINESTRING(173 226, 120 180, 160 110, 182 96), LINESTRING(225 68, 270 40), POLYGON( (114 298, 160 330, 260 250, 270 130, 225 68, 190 20, 60 40, 20 150, 60 260, 114 298), (140 240, 80 190, 90 100, 160 70, 182 96, 210 130, 210 210, 173 226, 140 240))) mLmA - A and B complex, disjoint MULTIPOLYGON( ( (60 320, 60 80, 300 80, 60 320), (80 280, 80 100, 260 100, 80 280)), ( (120 160, 140 160, 140 140, 120 160))) MULTILINESTRING( (100 240, 100 180, 160 180, 160 120, 220 120), (40 360, 40 60, 340 60, 40 360, 40 20), (120 120, 120 140, 100 140, 100 120, 140 120)) POLYGON( (60 80, 60 320, 300 80, 60 80)) MULTILINESTRING( (60 320, 60 80, 300 80, 60 320), (80 280, 80 100, 260 100, 80 280), (120 160, 140 160, 140 140, 120 160)) GEOMETRYCOLLECTION( LINESTRING(100 240, 100 180, 160 180, 160 120, 220 120), LINESTRING(40 360, 40 60), LINESTRING(40 60, 340 60, 40 360), LINESTRING(40 60, 40 20), LINESTRING(120 120, 120 140, 100 140, 100 120, 120 120), LINESTRING(120 120, 140 120), POLYGON( (60 320, 300 80, 60 80, 60 320), (80 280, 80 100, 260 100, 80 280)), POLYGON( (120 160, 140 160, 140 140, 120 160))) MULTIPOLYGON( ( (60 320, 300 80, 60 80, 60 320), (80 280, 80 100, 260 100, 80 280)), ( (120 160, 140 160, 140 140, 120 160))) GEOMETRYCOLLECTION( LINESTRING(100 240, 100 180, 160 180, 160 120, 220 120), LINESTRING(40 360, 40 60), LINESTRING(40 60, 340 60, 40 360), LINESTRING(40 60, 40 20), LINESTRING(120 120, 120 140, 100 140, 100 120, 120 120), LINESTRING(120 120, 140 120), POLYGON( (60 320, 300 80, 60 80, 60 320), (80 280, 80 100, 260 100, 80 280)), POLYGON( (120 160, 140 160, 140 140, 120 160))) LINESTRING EMPTY mLmA - A and B complex, overlapping and touching #1 MULTIPOLYGON( ( (60 260, 60 120, 220 120, 220 260, 60 260), (80 240, 80 140, 200 140, 200 240, 80 240)), ( (100 220, 100 160, 180 160, 180 220, 100 220), (120 200, 120 180, 160 180, 160 200, 120 200))) MULTILINESTRING( (40 260, 240 260, 240 240, 40 240, 40 220, 240 220), (120 300, 120 80, 140 80, 140 300, 140 80, 120 80, 120 320)) MULTILINESTRING( (60 260, 60 120, 220 120, 220 260, 60 260), (80 240, 80 140, 200 140, 200 240, 80 240), (100 220, 100 160, 180 160, 180 220, 100 220), (120 200, 120 180, 160 180, 160 200, 120 200)) POLYGON( (60 120, 60 260, 220 260, 220 120, 60 120)) MULTILINESTRING( (220 260, 140 260), (140 260, 120 260), (120 260, 60 260), (200 240, 140 240), (140 240, 120 240), (120 240, 80 240), (180 220, 140 220), (140 220, 120 220), (120 220, 100 220), (120 200, 120 180), (220 240, 200 240), (80 240, 60 240), (60 220, 80 220), (200 220, 220 220), (120 260, 120 240), (120 220, 120 200), (120 180, 120 160), (120 140, 120 120), (140 120, 140 140), (140 160, 140 180), (140 200, 140 220), (140 240, 140 260)) GEOMETRYCOLLECTION( LINESTRING(40 260, 60 260), LINESTRING(220 260, 240 260, 240 240, 220 240), LINESTRING(60 240, 40 240, 40 220, 60 220), LINESTRING(80 220, 100 220), LINESTRING(180 220, 200 220), LINESTRING(220 220, 240 220), LINESTRING(120 300, 120 260), LINESTRING(120 240, 120 220), LINESTRING(120 160, 120 140), LINESTRING(120 120, 120 80), LINESTRING(120 80, 140 80), LINESTRING(140 80, 140 120), LINESTRING(140 140, 140 160), LINESTRING(140 180, 140 200), LINESTRING(140 220, 140 240), LINESTRING(140 260, 140 300), LINESTRING(120 300, 120 320), POLYGON( (60 240, 60 260, 120 260, 140 260, 220 260, 220 240, 220 220, 220 120, 140 120, 120 120, 60 120, 60 220, 60 240), (80 240, 80 220, 80 140, 120 140, 140 140, 200 140, 200 220, 200 240, 140 240, 120 240, 80 240)), POLYGON( (120 160, 100 160, 100 220, 120 220, 140 220, 180 220, 180 160, 140 160, 120 160), (120 200, 120 180, 140 180, 160 180, 160 200, 140 200, 120 200))) MULTIPOLYGON( ( (60 240, 60 260, 120 260, 140 260, 220 260, 220 240, 220 220, 220 120, 140 120, 120 120, 60 120, 60 220, 60 240), (80 240, 80 220, 80 140, 120 140, 140 140, 200 140, 200 220, 200 240, 140 240, 120 240, 80 240)), ( (120 160, 100 160, 100 220, 120 220, 140 220, 180 220, 180 160, 140 160, 120 160), (120 200, 120 180, 140 180, 160 180, 160 200, 140 200, 120 200))) GEOMETRYCOLLECTION( LINESTRING(40 260, 60 260), LINESTRING(220 260, 240 260, 240 240, 220 240), LINESTRING(60 240, 40 240, 40 220, 60 220), LINESTRING(80 220, 100 220), LINESTRING(180 220, 200 220), LINESTRING(220 220, 240 220), LINESTRING(120 300, 120 260), LINESTRING(120 240, 120 220), LINESTRING(120 160, 120 140), LINESTRING(120 120, 120 80), LINESTRING(120 80, 140 80), LINESTRING(140 80, 140 120), LINESTRING(140 140, 140 160), LINESTRING(140 180, 140 200), LINESTRING(140 220, 140 240), LINESTRING(140 260, 140 300), LINESTRING(120 300, 120 320), POLYGON( (60 240, 60 260, 120 260, 140 260, 220 260, 220 240, 220 220, 220 120, 140 120, 120 120, 60 120, 60 220, 60 240), (80 240, 80 220, 80 140, 120 140, 140 140, 200 140, 200 220, 200 240, 140 240, 120 240, 80 240)), POLYGON( (120 160, 100 160, 100 220, 120 220, 140 220, 180 220, 180 160, 140 160, 120 160), (120 200, 120 180, 140 180, 160 180, 160 200, 140 200, 120 200))) mLmA - A and B complex, overlapping and touching #2 MULTIPOLYGON( ( (60 320, 60 120, 280 120, 280 320, 60 320), (120 260, 120 180, 240 180, 240 260, 120 260)), ( (280 400, 320 400, 320 360, 280 360, 280 400)), ( (300 240, 300 220, 320 220, 320 240, 300 240))) MULTILINESTRING( (80 300, 80 160, 260 160, 260 300, 80 300, 80 140), (220 360, 220 240, 300 240, 300 360)) POLYGON( (60 120, 60 320, 280 400, 320 400, 320 220, 280 120, 60 120)) MULTILINESTRING( (60 320, 60 120, 280 120, 280 320, 60 320), (120 260, 120 180, 240 180, 240 260, 120 260), (280 400, 320 400, 320 360, 280 360, 280 400), (300 240, 300 220, 320 220, 320 240, 300 240)) GEOMETRYCOLLECTION( LINESTRING(220 360, 220 320), LINESTRING(220 260, 220 240, 240 240), LINESTRING(280 240, 300 240), LINESTRING(300 240, 300 360), POLYGON( (280 240, 280 120, 60 120, 60 320, 220 320, 280 320, 280 240), (120 260, 120 180, 240 180, 240 240, 240 260, 220 260, 120 260)), POLYGON( (280 400, 320 400, 320 360, 300 360, 280 360, 280 400)), POLYGON( (300 240, 320 240, 320 220, 300 220, 300 240))) MULTIPOLYGON( ( (280 240, 280 120, 60 120, 60 320, 220 320, 280 320, 280 240), (120 260, 120 180, 240 180, 240 240, 240 260, 220 260, 120 260)), ( (280 400, 320 400, 320 360, 300 360, 280 360, 280 400)), ( (300 240, 320 240, 320 220, 300 220, 300 240))) GEOMETRYCOLLECTION( LINESTRING(220 360, 220 320), LINESTRING(220 260, 220 240, 240 240), LINESTRING(280 240, 300 240), LINESTRING(300 240, 300 360), POLYGON( (280 240, 280 120, 60 120, 60 320, 220 320, 280 320, 280 240), (120 260, 120 180, 240 180, 240 240, 240 260, 220 260, 120 260)), POLYGON( (280 400, 320 400, 320 360, 300 360, 280 360, 280 400)), POLYGON( (300 240, 320 240, 320 220, 300 220, 300 240))) GEOMETRYCOLLECTION( POINT(300 240), POINT(300 360), LINESTRING(80 300, 80 160), LINESTRING(80 160, 260 160, 260 240), LINESTRING(260 240, 260 300, 220 300), LINESTRING(220 300, 80 300), LINESTRING(80 160, 80 140), LINESTRING(220 320, 220 300), LINESTRING(220 300, 220 260), LINESTRING(240 240, 260 240), LINESTRING(260 240, 280 240)) mLmA - A and B complex, overlapping and touching #3 MULTIPOLYGON( ( (120 180, 60 80, 180 80, 120 180)), ( (100 240, 140 240, 120 220, 100 240))) MULTILINESTRING( (180 260, 120 180, 60 260, 180 260), (60 300, 60 40), (100 100, 140 100)) POLYGON( (60 80, 100 240, 140 240, 180 80, 60 80)) MULTILINESTRING( (120 180, 60 80, 180 80, 120 180), (100 240, 140 240, 120 220, 100 240)) GEOMETRYCOLLECTION( LINESTRING(180 260, 120 180), LINESTRING(120 180, 60 260), LINESTRING(60 260, 180 260), LINESTRING(60 300, 60 260), LINESTRING(60 260, 60 80), LINESTRING(60 80, 60 40), POLYGON( (60 80, 120 180, 180 80, 60 80)), POLYGON( (100 240, 140 240, 120 220, 100 240))) MULTIPOLYGON( ( (60 80, 120 180, 180 80, 60 80)), ( (100 240, 140 240, 120 220, 100 240))) GEOMETRYCOLLECTION( LINESTRING(180 260, 120 180), LINESTRING(120 180, 60 260), LINESTRING(60 260, 180 260), LINESTRING(60 300, 60 260), LINESTRING(60 260, 60 80), LINESTRING(60 80, 60 40), POLYGON( (60 80, 120 180, 180 80, 60 80)), POLYGON( (100 240, 140 240, 120 220, 100 240))) GEOMETRYCOLLECTION( POINT(60 80), POINT(120 180), LINESTRING(100 100, 140 100))