diff --git a/WebContent/routing/OSRM.Routing.js b/WebContent/routing/OSRM.Routing.js index 6eb77ed86..82873f54f 100644 --- a/WebContent/routing/OSRM.Routing.js +++ b/WebContent/routing/OSRM.Routing.js @@ -49,6 +49,10 @@ timeoutRoute: function() { OSRM.RoutingDescription.showNA( OSRM.loc("TIMED_OUT") ); OSRM.Routing._snapRoute(); }, +timeoutRouteReverse: function() { + OSRM.G.markers.reverseMarkers(); + timeoutRoute(); +}, showRouteSimple: function(response) { if(!response) return; @@ -125,6 +129,15 @@ getZoomRoute: function() { getDragRoute: function() { OSRM.G.pending = !OSRM.JSONP.call(OSRM.Routing._buildCall()+'&instructions=false', OSRM.Routing.showRouteSimple, OSRM.Routing.timeoutRouteSimple, OSRM.DEFAULTS.JSONP_TIMEOUT, 'dragging');; }, +getReverseRoute: function() { + if( OSRM.G.markers.route.length < 2 ) + return; + + OSRM.JSONP.clear('dragging'); + OSRM.JSONP.clear('zooming'); + OSRM.JSONP.clear('route'); + OSRM.JSONP.call(OSRM.Routing._buildCall()+'&instructions=true', OSRM.Routing.showRoute, OSRM.Routing.timeoutRouteReverse, OSRM.DEFAULTS.JSONP_TIMEOUT, 'route'); +}, draggingTimeout: function() { OSRM.G.markers.route[OSRM.G.dragid].hint = null; OSRM.Routing.getDragRoute(); diff --git a/WebContent/routing/OSRM.RoutingGUI.js b/WebContent/routing/OSRM.RoutingGUI.js index 7ce436e60..cf49c3455 100644 --- a/WebContent/routing/OSRM.RoutingGUI.js +++ b/WebContent/routing/OSRM.RoutingGUI.js @@ -43,15 +43,17 @@ reverseRouting: function() { document.getElementById("gui-input-source").value = document.getElementById("gui-input-target").value; document.getElementById("gui-input-target").value = tmp; - // reverse markers - OSRM.G.markers.reverseMarkers(); - // recompute route if needed if( OSRM.G.route.isShown() ) { - OSRM.G.route.hideRoute(); - OSRM.Routing.getRoute(); + OSRM.G.markers.route.reverse(); + OSRM.Routing.getRoute(); // temporary route reversal for query, actual reversal done after receiving response + OSRM.G.markers.route.reverse(); OSRM.G.markers.highlight.hide(); OSRM.RoutingDescription.showSimple( OSRM.G.response ); + + // simply reverse markers + } else { + OSRM.G.markers.reverseMarkers(); } },