osrm-backend/src/extractor/intersection/have_identical_names.cpp
2022-12-20 18:00:11 +01:00

25 lines
945 B
C++

#include "extractor/intersection/have_identical_names.hpp"
#include "util/guidance/name_announcements.hpp"
namespace osrm::extractor::intersection
{
// check if two name ids can be seen as identical (in presence of refs/others)
// in our case this translates into no name announcement in either direction (lhs->rhs and
// rhs->lhs)
bool HaveIdenticalNames(const NameID lhs,
const NameID rhs,
const NameTable &name_table,
const extractor::SuffixTable &street_name_suffix_table)
{
const auto non_empty = (lhs != EMPTY_NAMEID) && (rhs != EMPTY_NAMEID);
// symmetrical check for announcements
return non_empty &&
!util::guidance::requiresNameAnnounced(lhs, rhs, name_table, street_name_suffix_table) &&
!util::guidance::requiresNameAnnounced(rhs, lhs, name_table, street_name_suffix_table);
}
} // namespace osrm::extractor::intersection