#include "generator/translator_region.hpp" #include "generator/feature_maker.hpp" #include "generator/filter_interface.hpp" #include "generator/generate_info.hpp" #include "generator/intermediate_data.hpp" #include "generator/osm_element.hpp" #include "generator/osm_element_helpers.hpp" #include "generator/regions/collector_region_info.hpp" #include #include #include namespace generator { namespace { class FilterRegions : public FilterInterface { public: // FilterInterface overrides: bool IsAccepted(OsmElement const & element) override { for (auto const & t : element.Tags()) { if (t.key == "place" && regions::EncodePlaceType(t.value) != regions::PlaceType::Unknown) return true; if (t.key == "boundary" && t.value == "administrative") return true; } return false; } bool IsAccepted(FeatureBuilder1 const & feature) override { return feature.GetParams().IsValid() && !feature.IsLine(); } }; } // namespace TranslatorRegion::TranslatorRegion(std::shared_ptr emitter, cache::IntermediateDataReader & cache, feature::GenerateInfo const & info) : Translator(emitter, cache, std::make_shared(cache)) { AddFilter(std::make_shared()); auto filename = info.GetTmpFileName(info.m_fileName, regions::CollectorRegionInfo::kDefaultExt); AddCollector(std::make_shared(filename)); } } // namespace generator