closestSegmentWithContext() doc and test fix

This commit is contained in:
Radim Blazek 2017-11-28 18:38:40 +01:00 committed by Nyall Dawson
parent 07fd713647
commit 2f43deb9da
3 changed files with 13 additions and 9 deletions

View File

@ -500,7 +500,7 @@ Returns true if WKB of the geometry is of WKBMulti* type
\param minDistPoint Receives the nearest point on the segment
\param afterVertex Receives index of the vertex after the closest segment. The vertex
before the closest segment is always afterVertex - 1
\param leftOf Out: Returns if the point lies on the left of right side of the segment ( < 0 means left, > 0 means right )
\param leftOf Out: Returns if the point lies on the left of right side of the segment ( > 0 means left, < 0 means right )
\param epsilon epsilon for segment snapping
:return: The squared Cartesian distance is also returned in sqrDist, negative number on error
:rtype: float

View File

@ -555,7 +555,7 @@ class CORE_EXPORT QgsGeometry
* \param minDistPoint Receives the nearest point on the segment
* \param afterVertex Receives index of the vertex after the closest segment. The vertex
* before the closest segment is always afterVertex - 1
* \param leftOf Out: Returns if the point lies on the left of right side of the segment ( < 0 means left, > 0 means right )
* \param leftOf Out: Returns if the point lies on the left of right side of the segment ( > 0 means left, < 0 means right )
* \param epsilon epsilon for segment snapping
* \returns The squared Cartesian distance is also returned in sqrDist, negative number on error
*/

View File

@ -499,10 +499,11 @@ class TestQgsGeometry(unittest.TestCase):
self.assertEqual(afterVertex, 5)
self.assertEqual(dist, 1)
(dist, minDistPoint, afterVertex) = polyline.closestSegmentWithContext(QgsPointXY(6, 2))
(dist, minDistPoint, afterVertex, leftOf) = polyline.closestSegmentWithContext(QgsPointXY(6, 2))
self.assertEqual(dist, 1)
self.assertEqual(minDistPoint, QgsPointXY(5, 2))
self.assertEqual(afterVertex, 4)
self.assertTrue(leftOf > 0)
(point, atVertex, beforeVertex, afterVertex, dist) = polyline.closestVertex(QgsPointXY(6, 0))
self.assertEqual(point, QgsPointXY(5, 0))
@ -511,7 +512,7 @@ class TestQgsGeometry(unittest.TestCase):
self.assertEqual(afterVertex, 1)
self.assertEqual(dist, 1)
(dist, minDistPoint, afterVertex) = polyline.closestSegmentWithContext(QgsPointXY(6, 0))
(dist, minDistPoint, afterVertex, leftOf) = polyline.closestSegmentWithContext(QgsPointXY(6, 0))
self.assertEqual(dist, 1)
self.assertEqual(minDistPoint, QgsPointXY(5, 0))
self.assertEqual(afterVertex, 1)
@ -523,7 +524,7 @@ class TestQgsGeometry(unittest.TestCase):
self.assertEqual(afterVertex, 2)
self.assertEqual(dist, 1)
(dist, minDistPoint, afterVertex) = polyline.closestSegmentWithContext(QgsPointXY(0, 1))
(dist, minDistPoint, afterVertex, leftOf) = polyline.closestSegmentWithContext(QgsPointXY(0, 1))
self.assertEqual(dist, 0)
self.assertEqual(minDistPoint, QgsPointXY(0, 1))
self.assertEqual(afterVertex, 2)
@ -544,7 +545,7 @@ class TestQgsGeometry(unittest.TestCase):
self.assertEqual(afterVertex, 8)
self.assertEqual(dist, 1)
(dist, minDistPoint, afterVertex) = polyline.closestSegmentWithContext(QgsPointXY(7, 0))
(dist, minDistPoint, afterVertex, leftOf) = polyline.closestSegmentWithContext(QgsPointXY(7, 0))
self.assertEqual(dist, 1)
self.assertEqual(minDistPoint, QgsPointXY(6, 0))
self.assertEqual(afterVertex, 9)
@ -566,11 +567,12 @@ class TestQgsGeometry(unittest.TestCase):
self.assertEqual(afterVertex, 3)
assert abs(dist - 0.1) < 0.00001, "Expected: %f; Got:%f" % (dist, 0.1)
(dist, minDistPoint, afterVertex) = polygon.closestSegmentWithContext(QgsPointXY(0.7, 1.1))
(dist, minDistPoint, afterVertex, leftOf) = polygon.closestSegmentWithContext(QgsPointXY(0.7, 1.1))
self.assertEqual(afterVertex, 2)
self.assertEqual(minDistPoint, QgsPointXY(1, 1))
exp = 0.3 ** 2 + 0.1 ** 2
assert abs(dist - exp) < 0.00001, "Expected: %f; Got:%f" % (exp, dist)
self.assertTrue(leftOf > 0)
# 3-+-+-2
# | |
@ -592,11 +594,12 @@ class TestQgsGeometry(unittest.TestCase):
self.assertEqual(afterVertex, 9)
assert abs(dist - 0.02) < 0.00001, "Expected: %f; Got:%f" % (dist, 0.02)
(dist, minDistPoint, afterVertex) = polygon.closestSegmentWithContext(QgsPointXY(1.2, 1.9))
(dist, minDistPoint, afterVertex, leftOf) = polygon.closestSegmentWithContext(QgsPointXY(1.2, 1.9))
self.assertEqual(afterVertex, 8)
self.assertEqual(minDistPoint, QgsPointXY(1.2, 2))
exp = 0.01
assert abs(dist - exp) < 0.00001, "Expected: %f; Got:%f" % (exp, dist)
self.assertTrue(leftOf > 0)
# 5-+-4 0-+-9
# | | | |
@ -616,11 +619,12 @@ class TestQgsGeometry(unittest.TestCase):
self.assertEqual(afterVertex, 13)
assert abs(dist - 0.02) < 0.00001, "Expected: %f; Got:%f" % (dist, 0.02)
(dist, minDistPoint, afterVertex) = polygon.closestSegmentWithContext(QgsPointXY(4.1, 1.1))
(dist, minDistPoint, afterVertex, leftOf) = polygon.closestSegmentWithContext(QgsPointXY(4.1, 1.1))
self.assertEqual(afterVertex, 12)
self.assertEqual(minDistPoint, QgsPointXY(4, 1))
exp = 0.02
assert abs(dist - exp) < 0.00001, "Expected: %f; Got:%f" % (exp, dist)
self.assertTrue(leftOf > 0)
def testAdjacentVertex(self):
# 2-+-+-+-+-3