Add scene updates for toggling buildings, public transit, and setting language 92/88392/1
authorVarun <tallytalwar@gmail.com>
Wed, 14 Sep 2016 15:49:38 +0000 (11:49 -0400)
committerVarun <tallytalwar@gmail.com>
Sat, 17 Sep 2016 05:24:33 +0000 (01:24 -0400)
- Also updated the scene min and max zooms to 0 and 20 respectively

Change-Id: I0eee7ed1186e493fa2f487ec24a53d3c5b8fc883

src/mapzen/tangram_view.cpp
src/mapzen/tangram_view.hpp

index 9cc7b2b..497e96b 100644 (file)
@@ -393,15 +393,13 @@ mapzen_error_e TangramView::convertGeolocationToScreen(maps_view_h view, const m
 
 mapzen_error_e TangramView::getMinZoomLevel(maps_view_h view, int *zoom)
 {
-       // TODO: Get the minimum zoom level from the tangram scene.
-       *zoom = 2;
+       *zoom = 0;
        return MAPZEN_ERROR_NONE;
 }
 
 mapzen_error_e TangramView::getMaxZoomLevel(maps_view_h view, int *zoom)
 {
-       // TODO: Get the maximum zoom level from the tangram scene.
-       *zoom = 18;
+       *zoom = 20;
        return MAPZEN_ERROR_NONE;
 }
 
@@ -737,17 +735,6 @@ void TangramView::setMapType(maps_view_h view)
                return;
        }
 
-       // Switches for buildings, traffic, and public transit are not currently implemented.
-
-       // bool buildings_enabled = false;
-       // maps_view_get_buildings_enabled(view, &buildings_enabled);
-
-       // bool traffic_enabled = false;
-       // maps_view_get_traffic_enabled(view, &traffic_enabled);
-
-       // bool public_transit_enabled = false;
-       // maps_view_get_public_transit_enabled(view, &public_transit_enabled);
-
        maps_view_type_e map_type;
        maps_view_get_type(view, &map_type);
 
@@ -769,6 +756,40 @@ void TangramView::setMapType(maps_view_h view)
                m_viewType = newViewType;
                m_map->loadScene(newSceneFile);
        }
+
+       bool buildings_enabled = false;
+       maps_view_get_buildings_enabled(view, &buildings_enabled);
+       if (buildings_enabled != m_buildingsEnabled) {
+               m_buildingsEnabled = buildings_enabled;
+               if (m_buildingsEnabled) {
+                       m_map->queueSceneUpdate("global.building_extrude", "true");
+               } else {
+                       m_map->queueSceneUpdate("global.building_extrude", "false");
+               }
+       }
+
+       bool public_transit_enabled = false;
+       maps_view_get_public_transit_enabled(view, &public_transit_enabled);
+       if (public_transit_enabled != m_publicTransitEnabled) {
+               m_publicTransitEnabled = public_transit_enabled;
+               if (m_publicTransitEnabled) {
+                       m_map->queueSceneUpdate("global.sdk_transit_overlay", "true");
+               } else {
+                       m_map->queueSceneUpdate("global.sdk_transit_overlay", "false");
+               }
+       }
+
+       char* language = nullptr;
+       maps_view_get_language(view, &language);
+       if (std::string(language) != m_language) {
+               m_language = language;
+               m_map->queueSceneUpdate("global.ux_language: ", m_language.c_str());
+       }
+       free(language);
+
+       // bool traffic_enabled = false;
+       // maps_view_get_traffic_enabled(view, &traffic_enabled);
+       m_map->applySceneUpdates();
 }
 
 void TangramView::readyMapCb(void *data)
index 490b795..b059538 100644 (file)
@@ -86,6 +86,9 @@ private:
        Evas_GL_API *m_api = nullptr;
 
        bool m_isInitialized = false;
+       bool m_publicTransitEnabled = false;
+       bool m_buildingsEnabled = true;
+       std::string m_language = "eng";
 
        int m_x = 0;
        int m_y = 0;