summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorasanoaozora <fifitaneki@hotmail.com>2017-03-24 14:47:45 +0100
committerasanoaozora <fifitaneki@hotmail.com>2017-03-24 14:47:45 +0100
commit3582c759b0c69d3799579c14a42d2441093850c5 (patch)
treee9261ce7b7eaca9772d2413368d00a390dabcb25 /src
parentef97f1a0866832f84f3f1780a407d6a98e24c8f2 (diff)
downloadpoi-service-3582c759b0c69d3799579c14a42d2441093850c5.tar.gz
implement GetScaleList
Diffstat (limited to 'src')
-rw-r--r--src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx94
-rw-r--r--src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx89
2 files changed, 181 insertions, 2 deletions
diff --git a/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx b/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx
index 1f64c8d..14f8cf0 100644
--- a/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx
+++ b/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx
@@ -79,6 +79,9 @@ enum {
CONNECTION_AMOUNT
};
+#define ZOOM_ZERO_METER_WIDTH 33250 //width in millimeter of the real area for the minimum zoom
+#define ZOOM_ZERO_METER_HEIGHT 21970 //height in millimeter of the real area for the minimum zoom
+
static DBus::Glib::BusDispatcher dispatchers[CONNECTION_AMOUNT];
static DBus::Connection *conns[CONNECTION_AMOUNT];
static uint32_t navigationcore_session=-1;
@@ -129,6 +132,9 @@ class MapViewerControlObj
Routing *m_routing;
struct point m_pan;
int m_pan_action;
+ uint16_t m_width;
+ uint16_t m_height;
+
void MoveMap(void);
void SetFollowCarMode(uint32_t SessionHandle, bool active);
void GetFollowCarMode(bool& active);
@@ -962,7 +968,89 @@ MapViewerControlObj::GetMapViewPerspective(uint16_t& MapViewPerspectiveMode)
void
MapViewerControlObj::GetScaleList(std::vector< ::DBus::Struct< uint16_t, uint16_t, DBusCommonAPIEnumeration, uint32_t > >& ScalesList)
{
- throw DBus::ErrorNotSupported("Not yet supported");
+ ::DBus::Struct< uint16_t, uint16_t, DBusCommonAPIEnumeration, uint32_t > scale;
+ uint32_t basisPixel = ZOOM_ZERO_METER_WIDTH/m_width;
+
+ scale._1=0;
+ scale._2=2;
+ scale._3=GENIVI_MAPVIEWER_METER;
+ scale._4=basisPixel;
+ ScalesList.push_back(scale);
+ scale._1=1;
+ scale._2=5;
+ scale._3=GENIVI_MAPVIEWER_METER;
+ scale._4=basisPixel<<1;
+ ScalesList.push_back(scale);
+ scale._1=2;
+ scale._2=10;
+ scale._3=GENIVI_MAPVIEWER_METER;
+ scale._4=basisPixel<<2;
+ ScalesList.push_back(scale);
+ scale._1=3;
+ scale._2=20;
+ scale._3=GENIVI_MAPVIEWER_METER;
+ scale._4=basisPixel<<3;
+ ScalesList.push_back(scale);
+ scale._1=4;
+ scale._2=50;
+ scale._3=GENIVI_MAPVIEWER_METER;
+ scale._4=basisPixel<<4;
+ ScalesList.push_back(scale);
+ scale._1=5;
+ scale._2=100;
+ scale._3=GENIVI_MAPVIEWER_METER;
+ scale._4=basisPixel<<5;
+ ScalesList.push_back(scale);
+ scale._1=6;
+ scale._2=200;
+ scale._3=GENIVI_MAPVIEWER_METER;
+ scale._4=basisPixel<<6;
+ ScalesList.push_back(scale);
+ scale._1=7;
+ scale._2=500;
+ scale._3=GENIVI_MAPVIEWER_METER;
+ scale._4=basisPixel<<7;
+ ScalesList.push_back(scale);
+ scale._1=8;
+ scale._2=1;
+ scale._3=GENIVI_MAPVIEWER_KM;
+ scale._4=basisPixel<<8;
+ ScalesList.push_back(scale);
+ scale._1=9;
+ scale._2=2;
+ scale._3=GENIVI_MAPVIEWER_KM;
+ scale._4=basisPixel<<9;
+ ScalesList.push_back(scale);
+ scale._1=10;
+ scale._2=5;
+ scale._3=GENIVI_MAPVIEWER_KM;
+ scale._4=basisPixel<<10;
+ ScalesList.push_back(scale);
+ scale._1=11;
+ scale._2=10;
+ scale._3=GENIVI_MAPVIEWER_KM;
+ scale._4=basisPixel<<11;
+ ScalesList.push_back(scale);
+ scale._1=12;
+ scale._2=20;
+ scale._3=GENIVI_MAPVIEWER_KM;
+ scale._4=basisPixel<<12;
+ ScalesList.push_back(scale);
+ scale._1=13;
+ scale._2=50;
+ scale._3=GENIVI_MAPVIEWER_KM;
+ scale._4=basisPixel<<13;
+ ScalesList.push_back(scale);
+ scale._1=14;
+ scale._2=100;
+ scale._3=GENIVI_MAPVIEWER_KM;
+ scale._4=basisPixel<<14;
+ ScalesList.push_back(scale);
+ scale._1=15;
+ scale._2=200;
+ scale._3=GENIVI_MAPVIEWER_KM;
+ scale._4=basisPixel<<15;
+ ScalesList.push_back(scale);
}
void
@@ -1556,6 +1644,10 @@ MapViewerControlObj::MapViewerControlObj(MapViewerControl *mapviewercontrol, uin
sel.u.p_rect.rl.y=MapViewSize._2;
transform_set_screen_selection(trans, &sel);
+ m_width=MapViewSize._1;
+ m_height=MapViewSize._2;
+
+
#if LM
t_ilm_nativedisplay display = (t_ilm_nativedisplay)graphics_get_data(m_graphics.u.graphics, "display");
diff --git a/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx b/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx
index c34df33..4982206 100644
--- a/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx
+++ b/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx
@@ -70,6 +70,9 @@
#define dbg(level,...) ;
#endif
+#define ZOOM_ZERO_METER_WIDTH 33250 //width in millimeter of the real area for the minimum zoom
+#define ZOOM_ZERO_METER_HEIGHT 21970 //height in millimeter of the real area for the minimum zoom
+
using namespace v4::org::genivi::navigation::mapviewer;
using namespace v4::org::genivi::navigation::navigationcore;
using namespace v4::org::genivi::navigation;
@@ -124,6 +127,8 @@ class MapViewerControlObj
std::vector<DisplayedRoute *> m_displayed_routes;
struct point m_pan;
int m_pan_action;
+ uint16_t m_width;
+ uint16_t m_height;
void MoveMap(void);
void SetFollowCarMode(NavigationTypes::Handle SessionHandle, bool active);
@@ -1100,7 +1105,89 @@ MapViewerControlObj::GetMapViewPerspective(MapViewerControl::MapPerspective& Map
void
MapViewerControlObj::GetScaleList(std::vector<MapViewerControl::MapScale> &ScalesList)
{
- throw DBus::ErrorNotSupported("Not yet supported");
+ MapViewerControl::MapScale scale;
+ uint32_t basisPixel = ZOOM_ZERO_METER_WIDTH/m_width;
+
+ scale.setScaleId(0);
+ scale.setScaleValue(2);
+ scale.setUnit(MapViewerControl::MapScaleUnit::METER);
+ scale.setMillimetersPerPixel(basisPixel);
+ ScalesList.push_back(scale);
+ scale.setScaleId(1);
+ scale.setScaleValue(5);
+ scale.setUnit(MapViewerControl::MapScaleUnit::METER);
+ scale.setMillimetersPerPixel(basisPixel<<1);
+ ScalesList.push_back(scale);
+ scale.setScaleId(2);
+ scale.setScaleValue(10);
+ scale.setUnit(MapViewerControl::MapScaleUnit::METER);
+ scale.setMillimetersPerPixel(basisPixel<<2);
+ ScalesList.push_back(scale);
+ scale.setScaleId(3);
+ scale.setScaleValue(20);
+ scale.setUnit(MapViewerControl::MapScaleUnit::METER);
+ scale.setMillimetersPerPixel(basisPixel<<3);
+ ScalesList.push_back(scale);
+ scale.setScaleId(4);
+ scale.setScaleValue(50);
+ scale.setUnit(MapViewerControl::MapScaleUnit::METER);
+ scale.setMillimetersPerPixel(basisPixel<<4);
+ ScalesList.push_back(scale);
+ scale.setScaleId(5);
+ scale.setScaleValue(100);
+ scale.setUnit(MapViewerControl::MapScaleUnit::METER);
+ scale.setMillimetersPerPixel(basisPixel<<5);
+ ScalesList.push_back(scale);
+ scale.setScaleId(6);
+ scale.setScaleValue(200);
+ scale.setUnit(MapViewerControl::MapScaleUnit::METER);
+ scale.setMillimetersPerPixel(basisPixel<<6);
+ ScalesList.push_back(scale);
+ scale.setScaleId(7);
+ scale.setScaleValue(500);
+ scale.setUnit(MapViewerControl::MapScaleUnit::METER);
+ scale.setMillimetersPerPixel(basisPixel<<7);
+ ScalesList.push_back(scale);
+ scale.setScaleId(8);
+ scale.setScaleValue(1);
+ scale.setUnit(MapViewerControl::MapScaleUnit::KM);
+ scale.setMillimetersPerPixel(basisPixel<<8);
+ ScalesList.push_back(scale);
+ scale.setScaleId(9);
+ scale.setScaleValue(2);
+ scale.setUnit(MapViewerControl::MapScaleUnit::KM);
+ scale.setMillimetersPerPixel(basisPixel<<9);
+ ScalesList.push_back(scale);
+ scale.setScaleId(10);
+ scale.setScaleValue(5);
+ scale.setUnit(MapViewerControl::MapScaleUnit::KM);
+ scale.setMillimetersPerPixel(basisPixel<<10);
+ ScalesList.push_back(scale);
+ scale.setScaleId(11);
+ scale.setScaleValue(10);
+ scale.setUnit(MapViewerControl::MapScaleUnit::KM);
+ scale.setMillimetersPerPixel(basisPixel<<11);
+ ScalesList.push_back(scale);
+ scale.setScaleId(12);
+ scale.setScaleValue(20);
+ scale.setUnit(MapViewerControl::MapScaleUnit::KM);
+ scale.setMillimetersPerPixel(basisPixel<<12);
+ ScalesList.push_back(scale);
+ scale.setScaleId(13);
+ scale.setScaleValue(50);
+ scale.setUnit(MapViewerControl::MapScaleUnit::KM);
+ scale.setMillimetersPerPixel(basisPixel<<13);
+ ScalesList.push_back(scale);
+ scale.setScaleId(14);
+ scale.setScaleValue(100);
+ scale.setUnit(MapViewerControl::MapScaleUnit::KM);
+ scale.setMillimetersPerPixel(basisPixel<<14);
+ ScalesList.push_back(scale);
+ scale.setScaleId(15);
+ scale.setScaleValue(200);
+ scale.setUnit(MapViewerControl::MapScaleUnit::KM);
+ scale.setMillimetersPerPixel(basisPixel<<15);
+ ScalesList.push_back(scale);
}
void