Files
comaps/routing/city_roads.hpp
Konstantin Pastbin e3e4a1985a Organic Maps sources as of 02.04.2025 (fad26bbf22ac3da75e01e62aa01e5c8e11861005)
To expand with full Organic Maps and Maps.ME commits history run:
  git remote add om-historic [om-historic.git repo url]
  git fetch --tags om-historic
  git replace squashed-history historic-commits
2025-05-08 21:10:51 +07:00

35 lines
962 B
C++

#pragma once
#include "indexer/mwm_set.hpp"
#include "coding/memory_region.hpp"
#include "coding/reader.hpp"
#include <memory>
#include "3party/succinct/elias_fano.hpp"
namespace routing
{
class CityRoads
{
public:
bool HaveCityRoads() const { return m_cityRoads.size() > 0; }
/// \returns true if |fid| is a feature id of a road (for cars, bicycles or pedestrians) in city
/// or town.
/// \note if there's no section with city roads returns false. That means for maps without
/// city roads section features are considered as features outside cities.
bool IsCityRoad(uint32_t fid) const;
using ReaderT = ModelReaderPtr;
void Load(ReaderT const & reader);
private:
std::unique_ptr<CopiedMemoryRegion> m_cityRoadsRegion;
// |m_cityRoads| contains true for feature ids which are roads in cities.
succinct::elias_fano m_cityRoads;
};
std::unique_ptr<CityRoads> LoadCityRoads(MwmSet::MwmHandle const & handle);
} // namespace routing