diff options
author | zmiao <miao.zhao@mapbox.com> | 2020-03-10 23:19:44 +0200 |
---|---|---|
committer | zmiao <miao.zhao@mapbox.com> | 2020-03-10 23:22:08 +0200 |
commit | ad4b00d4722432d58710ea82254ac845615b65e4 (patch) | |
tree | 00c13fdc0b1a87d674d1114eea10d9d633db1a4e | |
parent | 518b8ce36a5ad72b16d056ebc0318551f8a1964d (diff) | |
download | qtlocation-mapboxgl-upstream/zmiao-geometry-buffer.tar.gz |
Using existing function in cheap rulerupstream/zmiao-geometry-buffer
-rw-r--r-- | test/util/geometry_buffer.test.cpp | 27 | ||||
m--------- | vendor/cheap-ruler-cpp | 0 |
2 files changed, 15 insertions, 12 deletions
diff --git a/test/util/geometry_buffer.test.cpp b/test/util/geometry_buffer.test.cpp index a1ea8ec366..923d03bd7f 100644 --- a/test/util/geometry_buffer.test.cpp +++ b/test/util/geometry_buffer.test.cpp @@ -122,11 +122,12 @@ TEST(GeometryBuffer, BufferForLine) { ASSERT_EQ(1, polygon1.size()); const auto& ring1 = polygon1[0]; ASSERT_EQ(10, ring1.size()); - const mapbox::geometry::point<double> a(24.93696391582489, 60.16926456940512), - b(24.938240647315975, 60.16974755943638); - mapbox::cheap_ruler::CheapRuler ruler2(a.y, mapbox::cheap_ruler::CheapRuler::Unit::Meters); + const mapbox::geometry::line_string<double> lineString{{24.93696391582489, 60.16926456940512}, + {24.938240647315975, 60.16974755943638}}; + mapbox::cheap_ruler::CheapRuler ruler2(lineString[0].y, mapbox::cheap_ruler::CheapRuler::Unit::Meters); for (size_t i = 0; i < ring1.size(); i++) { - auto actualDistance = ruler2.distanceToLineSegment(ring1[i], a, b); + auto nearestPoint = std::get<0>(ruler2.pointOnLine(lineString, ring1[i])); + auto actualDistance = ruler2.distance(nearestPoint, ring1[i]); // Allow 0.5 meter's error, which is 5 meters per 1km EXPECT_NEAR(100.0, actualDistance, 0.5); } @@ -167,11 +168,12 @@ TEST(GeometryBuffer, BufferForLines) { ASSERT_EQ(1, polygon1.size()); const auto& ring1 = polygon1[0]; ASSERT_EQ(20, ring1.size()); - const mapbox::geometry::point<double> a1(24.93696391582489, 60.16926456940512), - b1(24.938240647315975, 60.16974755943638); - mapbox::cheap_ruler::CheapRuler ruler1(a1.y, mapbox::cheap_ruler::CheapRuler::Unit::Meters); + const mapbox::geometry::line_string<double> lineString{{24.93696391582489, 60.16926456940512}, + {24.938240647315975, 60.16974755943638}}; + mapbox::cheap_ruler::CheapRuler ruler1(lineString[0].y, mapbox::cheap_ruler::CheapRuler::Unit::Meters); for (size_t i = 0; i < ring1.size(); i++) { - auto actualDistance = ruler1.distanceToLineSegment(ring1[i], a1, b1); + auto nearestPoint = std::get<0>(ruler1.pointOnLine(lineString, ring1[i])); + auto actualDistance = ruler1.distance(nearestPoint, ring1[i]); // Allow 0.25 meter's error, which is 5 meters per 1km EXPECT_NEAR(50.0, actualDistance, 0.25); } @@ -180,11 +182,12 @@ TEST(GeometryBuffer, BufferForLines) { ASSERT_EQ(1, polygon2.size()); const auto& ring2 = polygon2[0]; ASSERT_EQ(20, ring2.size()); - const mapbox::geometry::point<double> a2(24.93122935295105, 60.167383242200444), - b2(24.931269586086273, 60.16739658532588); - mapbox::cheap_ruler::CheapRuler ruler2(a1.y, mapbox::cheap_ruler::CheapRuler::Unit::Meters); + const mapbox::geometry::line_string<double> lineString2{{24.93122935295105, 60.167383242200444}, + {24.931269586086273, 60.16739658532588}}; + mapbox::cheap_ruler::CheapRuler ruler2(lineString2[0].y, mapbox::cheap_ruler::CheapRuler::Unit::Meters); for (size_t i = 0; i < ring2.size(); i++) { - auto actualDistance = ruler2.distanceToLineSegment(ring2[i], a2, b2); + auto nearestPoint = std::get<0>(ruler2.pointOnLine(lineString, ring1[i])); + auto actualDistance = ruler2.distance(nearestPoint, ring1[i]); // Allow 0.25 meter's error, which is 5 meters per 1km EXPECT_NEAR(50.0, actualDistance, 0.25); } diff --git a/vendor/cheap-ruler-cpp b/vendor/cheap-ruler-cpp -Subproject a65a1438c70bc2433abda383e3bd64d98cc50d0 +Subproject 98cbe70dab74c5b77f139013ea5b3623d3ba3dc |