continued printing work

This commit is contained in:
DennisSchiefer 2012-04-23 17:30:09 +01:00
parent 3444499cf4
commit dffd67ef72
5 changed files with 74 additions and 35 deletions

View File

@ -22,6 +22,22 @@ or see http://www.gnu.org/licenses/agpl.txt.
OSRM.GLOBALS.map = null; OSRM.GLOBALS.map = null;
L.MyLayers = L.Control.Layers.extend({
getActive: function () {
var i, input, obj,
inputs = this._form.getElementsByTagName('input'),
inputsLen = inputs.length;
for (i = 0; i < inputsLen; i++) {
input = inputs[i];
obj = this._layers[input.layerId];
if (input.checked && !obj.overlay) {
return obj.name;
}
}
}
});
// map controller // map controller
// [map initialization, event handling] // [map initialization, event handling]
OSRM.Map = { OSRM.Map = {
@ -50,7 +66,8 @@ init: function() {
}); });
// add layer control // add layer control
var layersControl = new L.Control.Layers(base_maps, {}); var layersControl = new L.MyLayers(base_maps, {});
OSRM.G.map.layerControl = layersControl;
OSRM.G.map.addControl(layersControl); OSRM.G.map.addControl(layersControl);
// move zoom markers // move zoom markers

View File

@ -15,9 +15,10 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt. or see http://www.gnu.org/licenses/agpl.txt.
*/ */
// OSRM printer // OSRM printing
// [printing support] // [printing support]
OSRM.Printing = { OSRM.Printing = {
// create UI for printing in mainwindow // create UI for printing in mainwindow
@ -36,15 +37,9 @@ init: function() {
document.getElementById("gui-printer").onclick = OSRM.Printing.print; document.getElementById("gui-printer").onclick = OSRM.Printing.print;
}, },
// create UI in printwindow // create UI in printwindow
show: function(response) { show: function(response) {
// add events
OSRM.printwindow.document.getElementById('gui-printer').onclick = OSRM.printwindow.printWindow;
// localization
OSRM.printwindow.document.getElementById('description-label').innerHTML = OSRM.loc( "ROUTE_DESCRIPTION" );
OSRM.printwindow.document.getElementById('overview-map-label').innerHTML = OSRM.loc( "OVERVIEW_MAP" );
// create header // create header
header = header =
'<div class="full">' + '<div class="full">' +
@ -114,14 +109,22 @@ show: function(response) {
route_desc += '</table>'; route_desc += '</table>';
// put everything in DOM // put everything in DOM
OSRM.printwindow.document.getElementById('description').innerHTML = route_desc; OSRM.G.printwindow.document.getElementById('description').innerHTML = route_desc;
OSRM.printwindow.document.getElementById('overview-description').innerHTML = OSRM.G.printwindow.document.getElementById('overview-map-description').innerHTML =
'<table id="" class="results-table medium-font">' + '<table id="" class="results-table medium-font">' +
'<thead style="display:table-header-group;"><tr><td colspan="3">'+header+'</td></tr></thead>'+ '<thead style="display:table-header-group;"><tr><td colspan="3">'+header+'</td></tr></thead>'+
'</table>'; '</table>';
// init map // init map
OSRM.Printing.map = OSRM.printwindow.initialize( OSRM.DEFAULTS.TILE_SERVERS[0] ); var tile_servers = OSRM.DEFAULTS.TILE_SERVERS;
var tile_server_name = OSRM.G.map.layerControl.getActive();
var tile_server_id = 0;
for(var size=tile_servers.length;tile_server_id < size; tile_server_id++) {
if( tile_servers[tile_server_id].display_name == tile_server_name )
break;
}
OSRM.Printing.map = OSRM.G.printwindow.initialize( OSRM.DEFAULTS.TILE_SERVERS[tile_server_id] );
var map = OSRM.Printing.map; var map = OSRM.Printing.map;
var markers = OSRM.G.markers.route; var markers = OSRM.G.markers.route;
map.addLayer( new L.MouseMarker( markers[0].getPosition(), {draggable:false,clickable:false,icon:OSRM.G.icons['marker-source']} ) ); map.addLayer( new L.MouseMarker( markers[0].getPosition(), {draggable:false,clickable:false,icon:OSRM.G.icons['marker-source']} ) );
@ -150,23 +153,39 @@ drawRoute: function(response) {
}, },
//open printWindow
// open printwindow
print: function() { print: function() {
// do not open window if there is no route to draw // do not open window if there is no route to draw
if( !OSRM.G.route.isRoute() || !OSRM.G.route.isShown() ) if( !OSRM.G.route.isRoute() || !OSRM.G.route.isShown() )
return; return;
// close old window (should we really do this?) // close old window (should we really do this?)
if( OSRM.printwindow ) if( OSRM.G.printwindow )
OSRM.printwindow.close(); OSRM.G.printwindow.close();
OSRM.printwindow = window.open("printing/printing.html","","width=540,height=500,left=100,top=100,dependent=yes,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,resizable=yes");
OSRM.printwindow.addEventListener("DOMContentLoaded", OSRM.Printing.printwindowLoaded, false); // generate a new window and wait till it has finished loading
OSRM.G.printwindow = window.open("printing/printing.html","","width=540,height=500,left=100,top=100,dependent=yes,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,resizable=yes");
OSRM.Browser.onLoadHandler( OSRM.Printing.printwindowLoaded, OSRM.G.printwindow );
}, },
// add content to printwindow after it has finished loading
//add content to printwindow after it has finished loading
printwindowLoaded: function(){ printwindowLoaded: function(){
var print_window = OSRM.G.printwindow;
var print_document = print_window.document;
// add events
print_document.getElementById('gui-printer').onclick = print_window.printWindow;
// localization
print_document.getElementById('description-label').innerHTML = OSRM.loc( "ROUTE_DESCRIPTION" );
print_document.getElementById('overview-map-label').innerHTML = OSRM.loc( "OVERVIEW_MAP" );
// add routing content
OSRM.Printing.show( OSRM.G.response ); OSRM.Printing.show( OSRM.G.response );
OSRM.printwindow.focus();
// finally, focus on printwindow
print_window.focus();
} }
}; };

View File

@ -32,7 +32,7 @@ body
} }
/* route description box */ /* route description box */
#overview-description #overview-map-description
{ {
width:500px; width:500px;
margin:5px; margin:5px;
@ -141,18 +141,20 @@ div.header-title
/* utility styles */ /* utility styles */
@media print {
.quad
{
page-break-before:always;
}
}
@media screen {
.quad .quad
{ {
min-width:10px; min-width:10px;
min-height:10px; min-height:10px;
} }
@media print {
.pagebreak
{
page-break-before:always;
}
.noprint
{
display:none;
}
} }

View File

@ -38,7 +38,6 @@ or see http://www.gnu.org/licenses/agpl.txt.
<script src="printing.js" type="text/javascript"></script> <script src="printing.js" type="text/javascript"></script>
<script src="../leaflet/leaflet-src.js" type="text/javascript"></script> <script src="../leaflet/leaflet-src.js" type="text/javascript"></script>
<script src="../base/osrm/OSRM.MapView.js" type="text/javascript"></script> <script src="../base/osrm/OSRM.MapView.js" type="text/javascript"></script>
<script src="../base/OSRM.Map.js" type="text/javascript"></script>
</head> </head>
@ -46,7 +45,7 @@ or see http://www.gnu.org/licenses/agpl.txt.
<body class="base-font"> <body class="base-font">
<!-- header --> <!-- header -->
<div id="printing-header"> <div id="printing-header" class="noprint">
<div id="gui-printer" class="iconic-button top-right-button"></div> <div id="gui-printer" class="iconic-button top-right-button"></div>
</div> </div>
@ -55,9 +54,11 @@ or see http://www.gnu.org/licenses/agpl.txt.
<div id="description"></div> <div id="description"></div>
<!--map--> <!--map-->
<div class="quad"></div> <div class="pagebreak"></div>
<div class="quad noprint"></div>
<div class="quad noprint"></div>
<div id="overview-map-label" class="header-title">Übersichtskarte</div> <div id="overview-map-label" class="header-title">Übersichtskarte</div>
<div id="overview-description" class="results-table medium-font"></div> <div id="overview-map-description" class="results-table medium-font"></div>
<div id="overview-map"></div> <div id="overview-map"></div>
</body> </body>

View File

@ -28,7 +28,7 @@ function initialize(tile_server) {
// setup map // setup map
var tile_layer = new L.TileLayer(tile_server.url, tile_server.options); var tile_layer = new L.TileLayer(tile_server.url, tile_server.options);
OSRM.G.map = new OSRM.MapView("overview-map", { OSRM.G.map = new OSRM.MapView("overview-map", {
center: new L.LatLng(51.505, -0.09), center: new L.LatLng(48.84, 10.10),
zoom: 13, zoom: 13,
zoomAnimation: false, zoomAnimation: false,
fadeAnimation: false, fadeAnimation: false,