This commit is contained in:
Siarhei Fedartsou
2024-07-28 12:04:19 +02:00
parent e5e25a1aca
commit f1ce2e6384
3 changed files with 76 additions and 0 deletions
@@ -460,6 +460,17 @@ void search(SearchEngineData<Algorithm> &engine_working_data,
duration_upper_bound);
}
inline std::vector<double> getNetworkDistances(SearchEngineData<Algorithm> &,
const DataFacade<ch::Algorithm> &,
SearchEngineData<Algorithm>::QueryHeap &,
SearchEngineData<Algorithm>::QueryHeap &,
const PhantomNode &,
const std::vector<PhantomNode> &,
EdgeWeight /*duration_upper_bound*/ = INVALID_EDGE_WEIGHT) {
std::vector<double> distances;
return distances;
}
// Requires the heaps for be empty
// If heaps should be adjusted to be initialized outside of this function,
// the addition of force_step parameters might be required
@@ -705,6 +705,8 @@ void unpackPath(const FacadeT &facade,
annotatePath(facade, route_endpoints, unpacked_nodes, unpacked_edges, unpacked_path);
}
template <typename Algorithm>
double getNetworkDistance(SearchEngineData<Algorithm> &engine_working_data,
const DataFacade<Algorithm> &facade,
@@ -763,6 +765,29 @@ double getNetworkDistance(SearchEngineData<Algorithm> &engine_working_data,
return from_alias<double>(distance);
}
template <typename Algorithm>
std::vector<double> getNetworkDistances(SearchEngineData<Algorithm> &engine_working_data,
const DataFacade<Algorithm> &facade,
typename SearchEngineData<Algorithm>::MapMatchingQueryHeap &forward_heap,
typename SearchEngineData<Algorithm>::MapMatchingQueryHeap &reverse_heap,
const PhantomNode &source_phantom,
const std::vector<PhantomNode> &target_phantoms,
EdgeWeight duration_upper_bound = INVALID_EDGE_WEIGHT) {
std::vector<double> distances;
for (const auto &target_phantom : target_phantoms)
{
auto distance = getNetworkDistance(engine_working_data,
facade,
forward_heap,
reverse_heap,
source_phantom,
target_phantom,
duration_upper_bound);
distances.push_back(distance);
}
return distances;
}
} // namespace osrm::engine::routing_algorithms::mld
#endif // OSRM_ENGINE_ROUTING_BASE_MLD_HPP