Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/map
diff options
context:
space:
mode:
authorDmitry Yunitsky <yunik@mapswithme.com>2015-02-24 19:37:54 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 02:37:51 +0300
commit51eaec33fd7b9e59631136a41ab56e260134712d (patch)
tree622927c18ab9d4c1cc258feb64419c7cdd2a5187 /map
parent569e8cbfe57e813083976ab961f4dd2acd2ed2a1 (diff)
Pass metadata for POI from core to java.
Diffstat (limited to 'map')
-rw-r--r--map/framework.cpp9
-rw-r--r--map/framework.hpp2
-rw-r--r--map/user_mark.hpp7
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