def test_clip_geometry(self): """Test that we can clip a geometry using another geometry.""" geometry = QgsGeometry.fromPolyline([ QgsPoint(10, 10), QgsPoint(20, 20), QgsPoint(30, 30), QgsPoint(40, 40) ]) clip_polygon = QgsGeometry.fromPolygon([[ QgsPoint(20, 20), QgsPoint(20, 30), QgsPoint(30, 30), QgsPoint(30, 20), QgsPoint(20, 20) ]]) result = clip_geometry(clip_polygon, geometry) expected_wkt = 'LINESTRING(20.0 20.0, 30.0 30.0)' # There should only be one feature that intersects this clip # poly so this assertion should work. assert compare_wkt(expected_wkt, str(result.exportToWkt())) # Now poly on poly clip test clip_polygon = QgsGeometry.fromWkt( 'POLYGON((106.8218 -6.1842,106.8232 -6.1842,' '106.82304963 -6.18317148,106.82179736 -6.18314774,' '106.8218 -6.1842))') geometry = QgsGeometry.fromWkt( 'POLYGON((106.8216869 -6.1852067,106.8213233 -6.1843051,' '106.8212891 -6.1835559,106.8222566 -6.1835184,' '106.8227557 -6.1835076,106.8228588 -6.1851204,' '106.8216869 -6.1852067))') result = clip_geometry(clip_polygon, geometry) expected_wkt = ( 'POLYGON((106.82179833 -6.18353616,106.8222566 -6.1835184,' '106.8227557 -6.1835076,106.82279996 -6.1842,' '106.8218 -6.1842,106.82179833 -6.18353616))') # There should only be one feature that intersects this clip # poly so this assertion should work. assert compare_wkt(expected_wkt, str(result.exportToWkt())) # Now point on poly test clip geometry = QgsGeometry.fromWkt('POINT(106.82241 -6.18369)') result = clip_geometry(clip_polygon, geometry) if qgis_version() > 10800: expected_wkt = 'POINT(106.82241 -6.18369)' else: expected_wkt = 'POINT(106.822410 -6.183690)' # There should only be one feature that intersects this clip # poly so this assertion should work. assert compare_wkt(expected_wkt, str(result.exportToWkt()))
def test_clip_geometry(self): """Test that we can clip a geometry using another geometry.""" geometry = QgsGeometry.fromPolyline([ QgsPoint(10, 10), QgsPoint(20, 20), QgsPoint(30, 30), QgsPoint(40, 40)]) clip_polygon = QgsGeometry.fromPolygon([ [QgsPoint(20, 20), QgsPoint(20, 30), QgsPoint(30, 30), QgsPoint(30, 20), QgsPoint(20, 20)]]) result = clip_geometry(clip_polygon, geometry) expected_wkt = 'LINESTRING(20.0 20.0, 30.0 30.0)' # There should only be one feature that intersects this clip # poly so this assertion should work. assert compare_wkt(expected_wkt, str(result.exportToWkt())) # Now poly on poly clip test clip_polygon = QgsGeometry.fromWkt( 'POLYGON((106.8218 -6.1842,106.8232 -6.1842,' '106.82304963 -6.18317148,106.82179736 -6.18314774,' '106.8218 -6.1842))') geometry = QgsGeometry.fromWkt( 'POLYGON((106.8216869 -6.1852067,106.8213233 -6.1843051,' '106.8212891 -6.1835559,106.8222566 -6.1835184,' '106.8227557 -6.1835076,106.8228588 -6.1851204,' '106.8216869 -6.1852067))') result = clip_geometry(clip_polygon, geometry) expected_wkt = ( 'POLYGON((106.82179833 -6.18353616,106.8222566 -6.1835184,' '106.8227557 -6.1835076,106.82279996 -6.1842,' '106.8218 -6.1842,106.82179833 -6.18353616))') # There should only be one feature that intersects this clip # poly so this assertion should work. assert compare_wkt(expected_wkt, str(result.exportToWkt())) # Now point on poly test clip geometry = QgsGeometry.fromWkt('POINT(106.82241 -6.18369)') result = clip_geometry(clip_polygon, geometry) if qgis_version() > 10800: expected_wkt = 'POINT(106.82241 -6.18369)' else: expected_wkt = 'POINT(106.822410 -6.183690)' # There should only be one feature that intersects this clip # poly so this assertion should work. assert compare_wkt(expected_wkt, str(result.exportToWkt()))