[overlay] fix cases where intersection point is in the middle of the

first segment, and not at the endpoint
This commit is contained in:
Barend Gehrels
2015-11-18 14:53:00 +01:00
parent 026abb015d
commit 67ac81e5b2
4 changed files with 15 additions and 1 deletions

View File

@@ -420,6 +420,12 @@ static std::string case_recursive_boxes_7[2] =
"MULTIPOLYGON(((0 0,1 1,1 0,0 0)),((0 1,0 2,1 2,0 1)),((3.5 2.5,4 3,4 2,3 2,3 3,3.5 2.5)),((3 2,4 1,1 1,1 2,3 2)))"
};
static std::string case_recursive_boxes_8[2] =
{
"MULTIPOLYGON(((3 4,3 3,2 3,2 2,0 2,0 3,1 3,1 4,1.5 3.5,2 4,3 4)),((2 5,2 4,1 4,0 3,0 5,2 5)))",
"MULTIPOLYGON(((3 4,4 4,4 3,3 3,3 1,0 1,0 2,1 2,1 3,0 2,0 4,3 4)))"
};
static std::string pie_21_7_21_0_3[2] =
{

View File

@@ -150,6 +150,10 @@ void test_areal()
case_recursive_boxes_7[0], case_recursive_boxes_7[1],
2, 9, 1.5);
test_one<Polygon, MultiPolygon, MultiPolygon>("case_recursive_boxes_8",
case_recursive_boxes_8[0], case_recursive_boxes_8[1],
3, 19, 3.75);
test_one<Polygon, MultiPolygon, MultiPolygon>("ggl_list_20120915_h2_a",
ggl_list_20120915_h2[0], ggl_list_20120915_h2[1],
2, 10, 6.0); // Area from SQL Server

View File

@@ -136,6 +136,10 @@ void test_areal()
case_recursive_boxes_7[0], case_recursive_boxes_7[1],
2, 0, 20, 7.0);
test_one<Polygon, MultiPolygon, MultiPolygon>("case_recursive_boxes_8",
case_recursive_boxes_8[0], case_recursive_boxes_8[1],
1, 0, 13, 12.0);
test_one<Polygon, MultiPolygon, MultiPolygon>("ggl_list_20120915_h2_a",
ggl_list_20120915_h2[0], ggl_list_20120915_h2[1],
1, 0, 12, 23.0); // Area from SQL Server