diff options
author | Jonas Danielsson <jonas@threetimestwo.org> | 2016-02-23 21:03:39 +0100 |
---|---|---|
committer | Jonas Danielsson <jonas@threetimestwo.org> | 2016-02-23 21:03:39 +0100 |
commit | 61143956a40a7d8dd32b226fa5eef2167f724923 (patch) | |
tree | a542a239b93f2690630de7fe8bad20c90c9aeb0d | |
parent | 98dee3c31589b0c1d456402bfcb4a5b2ee0b2422 (diff) | |
download | gnome-maps-wip/jonasdn/printmarkers.tar.gz |
wip: add markers to printLayoutwip/jonasdn/printmarkers
-rw-r--r-- | src/printLayout.js | 23 |
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; }, |