osrm-backend/include/engine/routing_algorithms/map_matching.hpp

39 lines
1.3 KiB
C++
Raw Normal View History

#ifndef MAP_MATCHING_HPP
#define MAP_MATCHING_HPP
2014-09-23 12:46:14 -04:00
#include "engine/algorithm.hpp"
#include "engine/datafacade.hpp"
2016-05-27 15:05:04 -04:00
#include "engine/map_matching/sub_matching.hpp"
#include "engine/search_engine_data.hpp"
#include <vector>
2014-09-23 12:46:14 -04:00
namespace osrm
{
2016-01-05 10:51:13 -05:00
namespace engine
{
namespace routing_algorithms
2014-09-23 12:46:14 -04:00
{
2015-02-17 06:22:11 -05:00
2015-12-09 16:34:22 -05:00
using CandidateList = std::vector<PhantomNodeWithDistance>;
2015-02-17 06:22:11 -05:00
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
2016-01-05 10:51:13 -05:00
#endif /* MAP_MATCHING_HPP */