[gnome-maps/wip/jonasdn/printmarkers: 2/2] wip: add markers to printLayout



commit 61143956a40a7d8dd32b226fa5eef2167f724923
Author: Jonas Danielsson <jonas threetimestwo org>
Date:   Tue Feb 23 21:03:39 2016 +0100

    wip: add markers to printLayout

 src/printLayout.js |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)
---
diff --git a/src/printLayout.js b/src/printLayout.js
index b4e72fa..8ae35ea 100644
--- a/src/printLayout.js
+++ b/src/printLayout.js
@@ -30,7 +30,6 @@ const Application = imports.application;
 const InstructionRow = imports.instructionRow;
 const MapMarker = imports.mapMarker;
 const MapView = imports.mapView;
-const TurnPointMarker = imports.turnPointMarker;
 
 /* Following constant has unit as meters */
 const _SHORT_LAYOUT_MAX_DISTANCE = 3000;
@@ -138,19 +137,37 @@ const PrintLayout = new Lang.Class({
         }).bind(this));
     },
 
-    _drawMapView: function(width, height, zoomLevel, locations) {
+    _drawMapView: function(width, height, zoomLevel, turnPoints) {
         let pageNum = this.numPages - 1;
         let x = this._cursorX;
         let y = this._cursorY;
         let factory = Champlain.MapSourceFactory.dup_default();
         let mapSource = factory.create_cached_source(MapView.MapType.STREET);
+        let locations = [];
+        let markerLayer = new Champlain.MarkerLayer();
         let view = new Champlain.View({ width: width,
                                         height: height,
                                         zoom_level: zoomLevel });
         view.set_map_source(mapSource);
+        view.add_layer(markerLayer);
 
         this._addRouteLayer(view);
 
+        turnPoints.forEach(function(turnPoint) {
+            locations.push(turnPoint.coordinate);
+            if (turnPoint.isStop()) {
+                print('turnpoint is stop! %s %f %f'.format(turnPoint.iconName,
+                                                           turnPoint.coordinate.latitude, 
turnPoint.coordinate.longitude));
+                let actor = MapMarker.actorFromIconName(turnPoint.iconName, 0);
+                let marker = new Champlain.Marker({
+                    latitude: turnPoint.coordinate.latitude,
+                    longitude: turnPoint.coordinate.longitude
+                });
+                marker.add_actor(actor);
+                markerLayer.add_marker(marker);
+            }
+        });
+
         view.ensure_visible(this._route.createBBox(locations), false);
         if (view.state !== Champlain.State.DONE) {
             let notifyId = view.connect('notify::state', (function() {
@@ -171,7 +188,7 @@ const PrintLayout = new Lang.Class({
     _createLocationArray: function(startIndex, endIndex) {
         let locationArray = [];
         for (let i = startIndex; i < endIndex; i++) {
-            locationArray.push(this._route.turnPoints[i].coordinate);
+            locationArray.push(this._route.turnPoints[i]);
         }
         return locationArray;
     },


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]