From 3582c759b0c69d3799579c14a42d2441093850c5 Mon Sep 17 00:00:00 2001 From: asanoaozora Date: Fri, 24 Mar 2017 14:47:45 +0100 Subject: implement GetScaleList --- .../genivi_mapviewer_mapviewercontrol.cxx | 94 +++++++++++++++++++++- .../genivi_mapviewer_mapviewercontrol.cxx | 89 +++++++++++++++++++- 2 files changed, 181 insertions(+), 2 deletions(-) (limited to 'src') 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 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 &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 -- cgit v1.2.1