summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Danielsson <jonas@threetimestwo.org>2016-02-23 21:03:39 +0100
committerJonas Danielsson <jonas@threetimestwo.org>2016-02-23 21:03:39 +0100
commit61143956a40a7d8dd32b226fa5eef2167f724923 (patch)
treea542a239b93f2690630de7fe8bad20c90c9aeb0d
parent98dee3c31589b0c1d456402bfcb4a5b2ee0b2422 (diff)
downloadgnome-maps-wip/jonasdn/printmarkers.tar.gz
wip: add markers to printLayoutwip/jonasdn/printmarkers
-rw-r--r--src/printLayout.js23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/printLayout.js b/src/printLayout.js
index b4e72fad..8ae35ea7 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;
},