stream-line code in PolylineCompressor, apply range-based for loop again

This commit is contained in:
Dennis Luxen 2014-06-30 15:10:28 +02:00
parent 7817384e3c
commit 186ad5d444

View File

@ -76,17 +76,13 @@ JSON::String PolylineCompressor::printEncodedString(const std::vector<SegmentInf
std::vector<int> delta_numbers;
if (!polyline.empty())
{
FixedPointCoordinate last_coordinate = polyline[0].location;
delta_numbers.emplace_back(last_coordinate.lat);
delta_numbers.emplace_back(last_coordinate.lon);
// iterate after skipping the first, already handled, segment
for (auto it = ++polyline.cbegin(); it != polyline.cend(); ++it)
FixedPointCoordinate last_coordinate = FixedPointCoordinate{0, 0};
for (const auto &segment : polyline)
{
const auto &segment = *it;
if (segment.necessary)
{
int lat_diff = segment.location.lat - last_coordinate.lat;
int lon_diff = segment.location.lon - last_coordinate.lon;
const int lat_diff = segment.location.lat - last_coordinate.lat;
const int lon_diff = segment.location.lon - last_coordinate.lon;
delta_numbers.emplace_back(lat_diff);
delta_numbers.emplace_back(lon_diff);
last_coordinate = segment.location;