Tidying prarameter for the map matching plugin.

This commit is contained in:
Lev Dragunov
2017-03-06 16:11:38 +03:00
committed by Patrick Niklaus
parent bfc272f3e8
commit 441eae9df2
7 changed files with 45 additions and 22 deletions
+1 -1
View File
@@ -189,7 +189,7 @@ Status MatchPlugin::HandleRequest(const datafacade::ContiguousInternalMemoryData
// call the actual map matching
SubMatchingList sub_matchings = algorithms.MapMatching(
candidates_lists, parameters.coordinates, parameters.timestamps, parameters.radiuses);
candidates_lists, parameters.coordinates, parameters.timestamps, parameters.radiuses, parameters.use_tidying);
if (sub_matchings.size() == 0)
{
+24 -11
View File
@@ -54,7 +54,8 @@ mapMatchingImpl(SearchEngineData &engine_working_data,
const CandidateLists &candidates_list,
const std::vector<util::Coordinate> &trace_coordinates,
const std::vector<unsigned> &trace_timestamps,
const std::vector<boost::optional<double>> &trace_gps_precision)
const std::vector<boost::optional<double>> &trace_gps_precision,
const bool use_tidying)
{
map_matching::MatchingConfidence confidence;
map_matching::EmissionLogProbability default_emission_log_probability(DEFAULT_GPS_PRECISION);
@@ -156,16 +157,24 @@ mapMatchingImpl(SearchEngineData &engine_working_data,
for (auto t = initial_timestamp + 1; t < candidates_list.size(); ++t)
{
const bool gap_in_trace = [&, use_timestamps]() {
// use temporal information if available to determine a split
if (use_timestamps)
const bool gap_in_trace = [&]() {
// do not determine split if wasn't asked about it
if (!use_tidying)
{
return trace_timestamps[t] - trace_timestamps[prev_unbroken_timestamps.back()] >
max_broken_time;
return false;
}
else
{
return t - prev_unbroken_timestamps.back() > MAX_BROKEN_STATES;
// use temporal information if available to determine a split
if (use_timestamps)
{
return trace_timestamps[t] - trace_timestamps[prev_unbroken_timestamps.back()] >
max_broken_time;
}
else
{
return t - prev_unbroken_timestamps.back() > MAX_BROKEN_STATES;
}
}
}();
@@ -416,14 +425,16 @@ mapMatching(SearchEngineData &engine_working_data,
const CandidateLists &candidates_list,
const std::vector<util::Coordinate> &trace_coordinates,
const std::vector<unsigned> &trace_timestamps,
const std::vector<boost::optional<double>> &trace_gps_precision)
const std::vector<boost::optional<double>> &trace_gps_precision,
const bool use_tidying)
{
return mapMatchingImpl(engine_working_data,
facade,
candidates_list,
trace_coordinates,
trace_timestamps,
trace_gps_precision);
trace_gps_precision,
use_tidying);
}
SubMatchingList
@@ -432,7 +443,8 @@ mapMatching(SearchEngineData &engine_working_data,
const CandidateLists &candidates_list,
const std::vector<util::Coordinate> &trace_coordinates,
const std::vector<unsigned> &trace_timestamps,
const std::vector<boost::optional<double>> &trace_gps_precision)
const std::vector<boost::optional<double>> &trace_gps_precision,
const bool use_tidying)
{
return mapMatchingImpl(engine_working_data,
@@ -440,7 +452,8 @@ mapMatching(SearchEngineData &engine_working_data,
candidates_list,
trace_coordinates,
trace_timestamps,
trace_gps_precision);
trace_gps_precision,
use_tidying);
}
} // namespace routing_algorithms