Fix min average sample time

This commit is contained in:
Patrick Niklaus 2015-12-18 23:28:16 +01:00
parent 326f2d2743
commit f9f3d43152

View File

@ -106,20 +106,23 @@ class MapMatching final : public BasicRoutingInterface<DataFacadeT, MapMatching<
osrm::matching::SubMatchingList &sub_matchings) const osrm::matching::SubMatchingList &sub_matchings) const
{ {
BOOST_ASSERT(candidates_list.size() == trace_coordinates.size()); BOOST_ASSERT(candidates_list.size() == trace_coordinates.size());
BOOST_ASSERT(candidates_list.size() > 1);
const bool use_timestamps = trace_timestamps.size() > 1;
const auto median_sample_time = [&]() { const auto median_sample_time = [&]() {
if (trace_timestamps.size() > 1) if (use_timestamps)
{ {
return GetMedianSampleTime(trace_timestamps); return std::max(1u, GetMedianSampleTime(trace_timestamps));
} }
else else
{ {
return 0u; return 1u;
} }
}(); }();
const auto max_broken_time = median_sample_time * osrm::matching::MAX_BROKEN_STATES; const auto max_broken_time = median_sample_time * osrm::matching::MAX_BROKEN_STATES;
const auto max_distance_delta = [&]() { const auto max_distance_delta = [&]() {
if (trace_timestamps.size() > 1) if (use_timestamps)
{ {
return median_sample_time * osrm::matching::MAX_SPEED; return median_sample_time * osrm::matching::MAX_SPEED;
} }
@ -161,7 +164,7 @@ class MapMatching final : public BasicRoutingInterface<DataFacadeT, MapMatching<
bool trace_split = prev_unbroken_timestamps.empty(); bool trace_split = prev_unbroken_timestamps.empty();
// use temporal information if available to determine a split // use temporal information if available to determine a split
if (!trace_timestamps.empty()) if (use_timestamps)
{ {
trace_split = trace_split =
trace_split || trace_split ||