request polyline with precision of 5 or 6 positions (#3220)

This commit is contained in:
Kajari Ghosh
2016-11-07 15:11:21 -05:00
committed by GitHub
parent 1b03b8df6d
commit f33180f092
13 changed files with 247 additions and 66 deletions
+43
View File
@@ -44,4 +44,47 @@ BOOST_AUTO_TEST_CASE(decode)
}
}
BOOST_AUTO_TEST_CASE(encode)
{
// Coordinates; these would be the coordinates we give the loc parameter,
// e.g. loc=10.00,10.0&loc=10.01,10.1...
util::Coordinate coord1(util::FloatLongitude{10.0}, util::FloatLatitude{10.00});
util::Coordinate coord2(util::FloatLongitude{10.1}, util::FloatLatitude{10.01});
util::Coordinate coord3(util::FloatLongitude{10.2}, util::FloatLatitude{10.02});
util::Coordinate coord4(util::FloatLongitude{10.3}, util::FloatLatitude{10.03});
util::Coordinate coord5(util::FloatLongitude{10.4}, util::FloatLatitude{10.04});
// Test polyline string for the 5 coordinates
const std::string polyline = "_c`|@_c`|@o}@_pRo}@_pRo}@_pRo}@_pR";
// Put the test coordinates into the vector for comparison
std::vector<util::Coordinate> cmp_coords = {coord1, coord2, coord3, coord4, coord5};
const auto encodedPolyline = encodePolyline<100000>(cmp_coords.begin(), cmp_coords.end());
BOOST_CHECK_EQUAL(encodedPolyline, polyline);
}
BOOST_AUTO_TEST_CASE(encode6)
{
// Coordinates; these would be the coordinates we give the loc parameter,
// e.g. loc=10.00,10.0&loc=10.01,10.1...
util::Coordinate coord1(util::FloatLongitude{10.0}, util::FloatLatitude{10.00});
util::Coordinate coord2(util::FloatLongitude{10.1}, util::FloatLatitude{10.01});
util::Coordinate coord3(util::FloatLongitude{10.2}, util::FloatLatitude{10.02});
util::Coordinate coord4(util::FloatLongitude{10.3}, util::FloatLatitude{10.03});
util::Coordinate coord5(util::FloatLongitude{10.4}, util::FloatLatitude{10.04});
// Test polyline string for the 6 coordinates
const std::string polyline = "_gjaR_gjaR_pR_ibE_pR_ibE_pR_ibE_pR_ibE";
// Put the test coordinates into the vector for comparison
std::vector<util::Coordinate> cmp_coords = {coord1, coord2, coord3, coord4, coord5};
const auto encodedPolyline = encodePolyline<1000000>(cmp_coords.begin(), cmp_coords.end());
BOOST_CHECK_EQUAL(encodedPolyline, polyline);
}
BOOST_AUTO_TEST_SUITE_END()