forked from organicmaps/organicmaps
[search] Use the nearest street (in 100 meters) in search process if there is no stored feature’s street.
This commit is contained in:
parent
d73fc8b5e4
commit
516f4e4652
1 changed files with 8 additions and 7 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue