/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU AFFERO General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or see http://www.gnu.org/licenses/agpl.txt. */ // OSRM printing // [printing support] OSRM.Printing = { // create UI for printing in mainwindow init: function() { var icon = document.createElement('div'); icon.id = "gui-printer-inactive"; icon.className = "iconic-button top-right-button"; var spacer = document.createElement('div'); spacer.className = "quad top-right-button"; var input_mask_header = document.getElementById('input-mask-header'); input_mask_header.appendChild(spacer,input_mask_header.lastChild); input_mask_header.appendChild(icon,input_mask_header.lastChild); document.getElementById("gui-printer-inactive").onclick = OSRM.Printing.print; }, // switch printer button on/off activate: function() { // use showing route description as trigger if( document.getElementById("gui-printer-inactive") ) document.getElementById("gui-printer-inactive").id = "gui-printer"; }, deactivate: function() { // use hide route as trigger if( document.getElementById("gui-printer") ) document.getElementById("gui-printer").id = "gui-printer-inactive"; }, // create UI in printwindow show: function(response) { // create header var header = '' + '
' + '
' + '
' + '
' + '
' + '
' + OSRM.loc("GUI_START")+ ':
' + '
' + document.getElementById("gui-input-source").value + '
' + '
' + '
' + '
' + OSRM.loc("GUI_END")+ ':
' + '
' + document.getElementById("gui-input-target").value + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + OSRM.loc("DISTANCE")+':
' + '
' + OSRM.Utils.metersToDistance(response.route_summary.total_distance) + '
' + '
' + '
' + '
' + OSRM.loc("DURATION")+':
' + '
' + OSRM.Utils.secondsToTime(response.route_summary.total_time) + '
' + '
' + '
' + '
' + '
' + '
' + '
' + ''; // create route description var body = ''; for(var i=0; i < response.route_instructions.length; i++){ //odd or even ? var rowstyle='description-body-odd'; if(i%2==0) { rowstyle='description-body-even'; } body += ''; body += ''; body += ''; body += ""; // build route description body += ''; if( response.route_instructions[i][1] != "" ) body += OSRM.loc(OSRM.RoutingDescription._getDrivingInstruction(response.route_instructions[i][0])).replace(/\[(.*)\]/,"$1").replace(/%s/, response.route_instructions[i][1]).replace(/%d/, OSRM.loc(response.route_instructions[i][6])); else body += OSRM.loc(OSRM.RoutingDescription._getDrivingInstruction(response.route_instructions[i][0])).replace(/\[(.*)\]/,"").replace(/%d/, OSRM.loc(response.route_instructions[i][6])); body += ""; body += ''; if( i != response.route_instructions.length-1 ) body += ''+OSRM.Utils.metersToDistance(response.route_instructions[i][2])+''; body += ""; body += ""; } body += ''; // put everything in DOM OSRM.G.printwindow.document.getElementById('description').innerHTML = '' + header + body + '
'; OSRM.G.printwindow.document.getElementById('overview-map-description').innerHTML = '' + header + '
'; // draw map var tile_server_id = OSRM.G.map.getActiveLayerId(); var map = OSRM.G.printwindow.initialize( OSRM.DEFAULTS.TILE_SERVERS[tile_server_id] ); // draw markers var markers = OSRM.G.markers.route; map.addLayer( new L.MouseMarker( markers[0].getPosition(), {draggable:false,clickable:false,icon:OSRM.G.icons['marker-source']} ) ); for(var i=1, size=markers.length-1; i