From 4254a1f2910d993aed343ea963c59e8ac9ca52c2 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Thu, 26 Feb 2015 18:39:31 +0000 Subject: [PATCH] Cancel any outstanding route when starting a new one Fixes #913 --- app/assets/javascripts/index/directions.js | 8 +++++--- app/assets/javascripts/index/directions/graphhopper.js | 2 +- app/assets/javascripts/index/directions/mapquest.js | 2 +- app/assets/javascripts/index/directions/osrm.js | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/index/directions.js b/app/assets/javascripts/index/directions.js index 6149228ec..f7ac87636 100644 --- a/app/assets/javascripts/index/directions.js +++ b/app/assets/javascripts/index/directions.js @@ -145,6 +145,9 @@ OSM.Directions = function (map) { } function getRoute() { + // Cancel any route that is already in progress + if (awaitingRoute) awaitingRoute.abourt(); + // go fetch geocodes for any endpoints which have not already // been geocoded. for (var ep_i = 0; ep_i < 2; ++ep_i) { @@ -177,11 +180,10 @@ OSM.Directions = function (map) { // just using it in-place and replacing it in case it has to be used // again. $('#sidebar_content').html($('.directions_form .loader_copy').html()); - awaitingRoute = true; map.setSidebarOverlaid(false); - chosenEngine.getRoute([o, d], function (err, route) { - awaitingRoute = false; + awaitingRoute = chosenEngine.getRoute([o, d], function (err, route) { + awaitingRoute = null; if (err) { map.removeLayer(polyline); diff --git a/app/assets/javascripts/index/directions/graphhopper.js b/app/assets/javascripts/index/directions/graphhopper.js index deefe1517..95cb29ab8 100644 --- a/app/assets/javascripts/index/directions/graphhopper.js +++ b/app/assets/javascripts/index/directions/graphhopper.js @@ -32,7 +32,7 @@ function GraphHopperEngine(id, vehicleParam) { url += "&point=" + points[i].lat + ',' + points[i].lng; } - $.ajax({ + return $.ajax({ url: url, dataType: 'jsonp', success: function (data) { diff --git a/app/assets/javascripts/index/directions/mapquest.js b/app/assets/javascripts/index/directions/mapquest.js index 6b24fb3bc..fbbc55a5f 100644 --- a/app/assets/javascripts/index/directions/mapquest.js +++ b/app/assets/javascripts/index/directions/mapquest.js @@ -42,7 +42,7 @@ function MapQuestEngine(id, vehicleParam) { url += "&manMaps=false"; url += "&shapeFormat=raw&generalize=0&unit=k"; - $.ajax({ + return $.ajax({ url: url, success: function (data) { if (data.info.statuscode !== 0) diff --git a/app/assets/javascripts/index/directions/osrm.js b/app/assets/javascripts/index/directions/osrm.js index 842909eab..b58ba30a2 100644 --- a/app/assets/javascripts/index/directions/osrm.js +++ b/app/assets/javascripts/index/directions/osrm.js @@ -44,7 +44,7 @@ function OSRMEngine() { url += "&checksum=" + hintData.checksum; } - $.ajax({ + return $.ajax({ url: url, dataType: 'json', success: function (data) { -- 2.43.2