From 1f3b3f3d26ffd9a585ce8204c215b9bcbd6f119a Mon Sep 17 00:00:00 2001 From: vng Date: Tue, 5 Aug 2014 16:54:53 +0300 Subject: [PATCH] [search] Put search mark on the correct point (not approximate from Result). --- map/framework.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/map/framework.cpp b/map/framework.cpp index b51574ad95..3903b45167 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -1347,7 +1347,7 @@ bool Framework::GetCurrentPosition(double & lat, double & lon) const void Framework::ShowSearchResult(search::Result const & res) { - UserMarkContainer::Type type = UserMarkContainer::SEARCH_MARK; + UserMarkContainer::Type const type = UserMarkContainer::SEARCH_MARK; m_bmManager.UserMarksSetVisible(type, true); m_bmManager.UserMarksClear(type); m_bmManager.UserMarksSetDrawable(type, false); @@ -1355,15 +1355,6 @@ void Framework::ShowSearchResult(search::Result const & res) m_lastSearch.Clear(); m_fixedSearchResults = 0; - search::AddressInfo info; - info.MakeFrom(res); - - m2::PointD const ptOrg = res.GetFeatureCenter(); - SearchMarkPoint * mark = static_cast(m_bmManager.UserMarksAddMark(type, ptOrg)); - mark->SetInfo(info); - - m_balloonManager.OnShowMark(mark); - int scale; m2::PointD center; @@ -1396,6 +1387,14 @@ void Framework::ShowSearchResult(search::Result const & res) ShowRectExVisibleScale(m_scales.GetRectForDrawScale(scale, center)); StopLocationFollow(); + + search::AddressInfo info; + info.MakeFrom(res); + + SearchMarkPoint * mark = static_cast(m_bmManager.UserMarksAddMark(type, center)); + mark->SetInfo(info); + + m_balloonManager.OnShowMark(mark); } size_t Framework::ShowAllSearchResults()