diff --git a/map/feature_vec_model.hpp b/map/feature_vec_model.hpp index f7a2a60409..bc395a157b 100644 --- a/map/feature_vec_model.hpp +++ b/map/feature_vec_model.hpp @@ -31,6 +31,9 @@ namespace model index_t m_multiIndex; + // Cached query, which stores several caches for the index. + mutable index_t::Query m_multiIndexQuery; + public: void InitClassificator(); @@ -43,7 +46,8 @@ namespace model template void ForEachFeature(m2::RectD const & rect, ToDo toDo) const { - m_multiIndex.ForEachInViewport(toDo, rect); + m_multiIndexQuery.Clear(); + m_multiIndex.ForEachInViewport(toDo, rect, m_multiIndexQuery); // Uncomment to traverse all features (SLOW!!): // m_multiIndex.ForEachInScale(toDo, GetScaleLevel(rect)); }