diff --git a/WebContent/routing/OSRM.RoutingAlternatives.js b/WebContent/routing/OSRM.RoutingAlternatives.js index 23f88dcee..6e46bca95 100644 --- a/WebContent/routing/OSRM.RoutingAlternatives.js +++ b/WebContent/routing/OSRM.RoutingAlternatives.js @@ -21,72 +21,87 @@ or see http://www.gnu.org/licenses/agpl.txt. OSRM.RoutingAlternatives = { +// remaining problems: how to handle PRINTING (do it internally), LINKS (add parameter to JSONP call) + +// name of gui buttons to choose alternatives +_buttons: ["gui_a", "gui_b"], + // prepare response -prepare: function() { - OSRM.RoutingAlternatives._buildAlternatives(); +prepare: function(response) { + var original = {}; + original.route_geometry = response.route_geometry; + original.route_instructions = response.route_instructions; + original.route_summary = response.route_summary; + OSRM.G.response.alternatives.push( original ); + + OSRM.G.response.active_alternative = 0; + + OSRM.RoutingAlternatives._addGUI(); +}, +prepare_Redraw: function(response) { + var original = {}; + original.route_geometry = response.route_geometry; + original.route_instructions = response.route_instructions; + original.route_summary = response.route_summary; + OSRM.G.response.alternatives = response.alternatives; + OSRM.G.response.alternatives.push( original ); + + OSRM.RoutingAlternatives._addGUI(); +}, + +// press one of the buttons +press: function(button_id) { + var buttons = OSRM.RoutingAlternatives._buttons; + for(var i=0, size=buttons; iA'; + 'A'; document.getElementById('information-box-header').innerHTML = data + document.getElementById('information-box-header').innerHTML; - OSRM.G.response.active = 0; - document.getElementById("gui-a").onclick = function () { - if( OSRM.G.response.active == 0 ) - return; - document.getElementById("gui-a").className = "button-pressed top-right-button"; - document.getElementById("gui-b").className = "button top-right-button"; - OSRM.G.route.hideAlternativeRoute(); - OSRM.G.response.active = 0; - // switch data - //OSRM.Routing.showRoute(OSRM.G.response); - console.log("click a"); - }; - document.getElementById("gui-a").onmouseover = function () { - if( OSRM.G.response.active == 0 ) - return; + OSRM.RoutingAlternatives.press( OSRM.G.response.active_alternative ); - var geometry = OSRM.RoutingGeometry._decode(OSRM.G.response.route_geometry, 5); - OSRM.G.route.showAlternativeRoute(geometry); - console.log("over a"); - }; - document.getElementById("gui-a").onmouseout = function () { - if( OSRM.G.response.active == 0 ) - return; - - OSRM.G.route.hideAlternativeRoute(); - console.log("out a"); - }; - - document.getElementById("gui-b").onclick = function () { - if( OSRM.G.response.active == 1 ) - return; - document.getElementById("gui-a").className = "button top-right-button"; - document.getElementById("gui-b").className = "button-pressed top-right-button"; - OSRM.G.route.hideAlternativeRoute(); - OSRM.G.response.active = 1; - // switch data - //OSRM.Routing.showRoute(OSRM.G.response); - console.log("click b"); - }; - document.getElementById("gui-b").onmouseover = function () { - if( OSRM.G.response.active == 1 ) - return; - - var geometry = OSRM.RoutingGeometry._decode(OSRM.G.response.route_geometry, 5); - OSRM.G.route.showAlternativeRoute(geometry); - console.log("over b"); - }; - document.getElementById("gui-b").onmouseout = function () { - if( OSRM.G.response.active == 1 ) - return; - - OSRM.G.route.hideAlternativeRoute(); - console.log("out b"); - }; + var buttons = OSRM.RoutingAlternatives._buttons; + for(var i=0, size=buttons; i