39 lines
1.3 KiB
C++
39 lines
1.3 KiB
C++
#ifndef MAP_MATCHING_HPP
|
|
#define MAP_MATCHING_HPP
|
|
|
|
#include "engine/algorithm.hpp"
|
|
#include "engine/datafacade.hpp"
|
|
#include "engine/map_matching/sub_matching.hpp"
|
|
#include "engine/search_engine_data.hpp"
|
|
|
|
#include <vector>
|
|
|
|
namespace osrm
|
|
{
|
|
namespace engine
|
|
{
|
|
namespace routing_algorithms
|
|
{
|
|
|
|
using CandidateList = std::vector<PhantomNodeWithDistance>;
|
|
using CandidateLists = std::vector<CandidateList>;
|
|
using SubMatchingList = std::vector<map_matching::SubMatching>;
|
|
static const constexpr double DEFAULT_GPS_PRECISION = 5;
|
|
|
|
//[1] "Hidden Markov Map Matching Through Noise and Sparseness";
|
|
// P. Newson and J. Krumm; 2009; ACM GIS
|
|
template <typename Algorithm>
|
|
SubMatchingList mapMatching(SearchEngineData<Algorithm> &engine_working_data,
|
|
const DataFacade<Algorithm> &facade,
|
|
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 bool allow_splitting);
|
|
|
|
} // namespace routing_algorithms
|
|
} // namespace engine
|
|
} // namespace osrm
|
|
|
|
#endif /* MAP_MATCHING_HPP */
|