diff options
author | Dmitry Yunitsky <yunik@mapswithme.com> | 2015-02-24 19:37:54 +0300 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 02:37:51 +0300 |
commit | 51eaec33fd7b9e59631136a41ab56e260134712d (patch) | |
tree | 622927c18ab9d4c1cc258feb64419c7cdd2a5187 /map | |
parent | 569e8cbfe57e813083976ab961f4dd2acd2ed2a1 (diff) |
Pass metadata for POI from core to java.
Diffstat (limited to 'map')
-rw-r--r-- | map/framework.cpp | 9 | ||||
-rw-r--r-- | map/framework.hpp | 2 | ||||
-rw-r--r-- | map/user_mark.hpp | 7 |
3 files changed, 15 insertions, 3 deletions
diff --git a/map/framework.cpp b/map/framework.cpp index 466f117d97..c352b0b041 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -1677,7 +1677,7 @@ OEPointerT GetClosestToPivot(list<OEPointerT> const & l, m2::PointD const & pxPo #endif // USE_DRAPE bool Framework::GetVisiblePOI(m2::PointD const & pxPoint, m2::PointD & pxPivot, - search::AddressInfo & info) const + search::AddressInfo & info, feature::FeatureMetadata & metadata) const { #ifndef USE_DRAPE graphics::OverlayElement::UserInfo ui; @@ -1714,6 +1714,9 @@ bool Framework::GetVisiblePOI(m2::PointD const & pxPoint, m2::PointD & pxPivot, FeatureType ft; guard.GetFeature(ui.m_offset, ft); + ft.ParseMetadata(); + metadata = ft.GetMetadata(); + // @TODO experiment with other pivots ASSERT_NOT_EQUAL(ft.GetFeatureType(), feature::GEOM_LINE, ()); m2::PointD const center = feature::GetCenter(ft); @@ -1817,7 +1820,8 @@ UserMark const * Framework::GetUserMark(m2::PointD const & pxPoint, bool isLongP bool needMark = false; m2::PointD pxPivot; search::AddressInfo info; - if (GetVisiblePOI(pxPoint, pxPivot, info)) + feature::FeatureMetadata metadata; + if (GetVisiblePOI(pxPoint, pxPivot, info, metadata)) needMark = true; else if (isLongPress) { @@ -1831,6 +1835,7 @@ UserMark const * Framework::GetUserMark(m2::PointD const & pxPoint, bool isLongP PoiMarkPoint * poiMark = UserMarkContainer::UserMarkForPoi(); poiMark->SetPtOrg(m_navigator.PtoG(pxPivot)); poiMark->SetInfo(info); + poiMark->SetMetadata(metadata); mark = poiMark; } } diff --git a/map/framework.hpp b/map/framework.hpp index 2850fe9456..91de7a28fe 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -357,7 +357,7 @@ private: void GetLocality(m2::PointD const & pt, search::AddressInfo & info) const; public: - bool GetVisiblePOI(m2::PointD const & pxPoint, m2::PointD & pxPivot, search::AddressInfo & info) const; + bool GetVisiblePOI(m2::PointD const & pxPoint, m2::PointD & pxPivot, search::AddressInfo & info, feature::FeatureMetadata & metadata) const; #ifndef USE_DRAPE virtual void BeginPaint(shared_ptr<PaintEvent> const & e); diff --git a/map/user_mark.hpp b/map/user_mark.hpp index fb0b55cb51..5bf34c0db3 100644 --- a/map/user_mark.hpp +++ b/map/user_mark.hpp @@ -2,6 +2,8 @@ #include "../geometry/point2d.hpp" +#include "../indexer/feature.hpp" + #include "../search/result.hpp" #include "../std/string.hpp" @@ -123,6 +125,10 @@ public: search::AddressInfo const & GetInfo() const { return m_info; } void SetInfo(search::AddressInfo const & info) { m_info = info; } + + feature::FeatureMetadata const & GetMetadata() const { return m_metadata; } + void SetMetadata(feature::FeatureMetadata const & metadata) { m_metadata = metadata; } + virtual UserMarkCopy * Copy() const { return new UserMarkCopy(new SearchMarkPoint(m_info, m_ptOrg, m_container)); @@ -130,6 +136,7 @@ public: protected: search::AddressInfo m_info; + feature::FeatureMetadata m_metadata; }; class PoiMarkPoint : public SearchMarkPoint |