From 516f4e4652db929831028398e55a624861a851a9 Mon Sep 17 00:00:00 2001 From: vng Date: Thu, 28 Jan 2016 16:40:58 +0300 Subject: [PATCH] =?UTF-8?q?[search]=20Use=20the=20nearest=20street=20(in?= =?UTF-8?q?=20100=20meters)=20in=20search=20process=20if=20there=20is=20no?= =?UTF-8?q?=20stored=20feature=E2=80=99s=20street.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- search/v2/features_layer_matcher.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/search/v2/features_layer_matcher.cpp b/search/v2/features_layer_matcher.cpp index 9355431b35..b638bc1077 100644 --- a/search/v2/features_layer_matcher.cpp +++ b/search/v2/features_layer_matcher.cpp @@ -107,14 +107,15 @@ uint32_t FeaturesLayerMatcher::GetMatchingStreetImpl(uint32_t houseId, FeatureTy { auto const & streets = GetNearbyStreets(houseId, houseFeature); - uint32_t streetId = kInvalidId; - uint32_t streetIndex; - if (!m_houseToStreetTable->Get(houseId, streetIndex)) - streetIndex = streets.size(); + uint32_t index; + if (m_houseToStreetTable->Get(houseId, index) && index < streets.size()) + return streets[index].m_id.m_index; - if (streetIndex < streets.size() && streets[streetIndex].m_id.m_mwmId == m_context->m_id) - streetId = streets[streetIndex].m_id.m_index; - return streetId; + // If there is no saved street for feature, assume that it's a nearest street if it's too close. + if (!streets.empty() && streets[0].m_distanceMeters < 100.0) + return streets[0].m_id.m_index; + + return kInvalidId; } } // namespace v2