mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-12 00:06:43 -04:00
Quick fix for a bug in QgsGeos::reshapeLine that causes QGIS to crash because of an unhandled geos exception.
This commit is contained in:
parent
ddb589a3c8
commit
03db73d9f1
@ -2344,7 +2344,7 @@ static geos::unique_ptr _mergeLinestrings( const GEOSGeometry *line1, const GEOS
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
bool intersectionAtOrigLineEndpoint =
|
bool intersectionAtOrigLineEndpoint =
|
||||||
( intersectionPoint.x() == x1 && intersectionPoint.y() == y1 ) ||
|
( intersectionPoint.x() == x1 && intersectionPoint.y() == y1 ) !=
|
||||||
( intersectionPoint.x() == x2 && intersectionPoint.y() == y2 );
|
( intersectionPoint.x() == x2 && intersectionPoint.y() == y2 );
|
||||||
bool intersectionAtReshapeLineEndpoint =
|
bool intersectionAtReshapeLineEndpoint =
|
||||||
( intersectionPoint.x() == rx1 && intersectionPoint.y() == ry1 ) ||
|
( intersectionPoint.x() == rx1 && intersectionPoint.y() == ry1 ) ||
|
||||||
|
@ -2334,6 +2334,18 @@ class TestQgsGeometry(unittest.TestCase):
|
|||||||
wkt = g.asWkt()
|
wkt = g.asWkt()
|
||||||
assert compareWkt(expWkt, wkt), "testReshape failed: mismatch Expected:\n%s\nGot:\n%s\n" % (expWkt, wkt)
|
assert compareWkt(expWkt, wkt), "testReshape failed: mismatch Expected:\n%s\nGot:\n%s\n" % (expWkt, wkt)
|
||||||
|
|
||||||
|
# Test reshape a polygon with a line starting or ending at the polygon's first vertex, no change expexted
|
||||||
|
g = QgsGeometry.fromWkt('Polygon ((0 0, 1 0, 1 1, 0 1, 0 0))')
|
||||||
|
expWkt = g.asWkt()
|
||||||
|
g.reshapeGeometry(QgsLineString([QgsPoint(0, 0), QgsPoint(-1, -1)]))
|
||||||
|
assert compareWkt(g.asWkt(), expWkt), "testReshape failed: mismatch Expected:\n%s\nGot:\n%s\n" % (expWkt, wkt)
|
||||||
|
|
||||||
|
# Test reshape a polygon with a line starting or ending at the polygon's first vertex
|
||||||
|
g = QgsGeometry.fromWkt('Polygon ((0 0, 1 0, 1 1, 0 1, 0 0))')
|
||||||
|
g.reshapeGeometry(QgsLineString([QgsPoint(0, 0), QgsPoint(0.5, 0.5), QgsPoint(0, 1)]))
|
||||||
|
expWkt = 'Polygon ((0 0, 1 0, 1 1, 0 1, 0.5 0.5, 0 0))'
|
||||||
|
assert compareWkt(g.asWkt(), expWkt), "testReshape failed: mismatch Expected:\n%s\nGot:\n%s\n" % (expWkt, wkt)
|
||||||
|
|
||||||
# Test reshape a line from first/last vertex
|
# Test reshape a line from first/last vertex
|
||||||
g = QgsGeometry.fromWkt('LineString (0 0, 5 0, 5 1)')
|
g = QgsGeometry.fromWkt('LineString (0 0, 5 0, 5 1)')
|
||||||
# extend start
|
# extend start
|
||||||
|
Loading…
x
Reference in New Issue
Block a user