/
githubmirror
/
omim
Обзор
Документация
Войти
/
githubmirror
/
omim
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
android-gr-922
map/promo_delegate.cpp
41 строка
1007 B
Arsentiy Milchakov
[promo] load cities section into delegate lazy
12 июл 2019, 14:05
12 июл 2019, 14:05
81ceea3
Код
Авторство
О чём код?
#include "map/promo_delegate.hpp" #include "search/city_finder.hpp" #include "indexer/data_source.hpp" #include "indexer/ftypes_sponsored.hpp" #include "base/string_utils.hpp" PromoDelegate::PromoDelegate(DataSource const & dataSource, search::CityFinder & cityFinder) : m_dataSource(dataSource), m_cityFinder(cityFinder) { } std::string PromoDelegate::GetCityId(m2::PointD const & point) { auto const featureId = m_cityFinder.GetCityFeatureID(point); if (!featureId.IsValid()) return {}; FeaturesLoaderGuard guard(m_dataSource, featureId.m_mwmId); auto feature = guard.GetOriginalFeatureByIndex(featureId.m_index); if (!feature) return {}; if (!ftypes::IsPromoCatalogChecker::Instance()(*feature)) return {}; if (!m_cities) { m_cities = std::make_unique<indexer::FeatureIdToGeoObjectIdBimap>(m_dataSource); m_cities->Load(); } base::GeoObjectId id; if (m_cities->GetGeoObjectId(feature->GetID(), id)) return strings::to_string(id); return {}; }