summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2015-02-20 22:22:29 +0100
committerÉtienne Loks <etienne.loks@proxience.com>2015-02-20 22:22:29 +0100
commitfe0a771e75be853d2553bfdd94e2fd11a73ed481 (patch)
treebaaca93edb23a5bf1557e80a3d5624a493788b54
parent0b83f1afc5fd920cb629fc22852e2621d8f3353b (diff)
downloadChimère-fe0a771e75be853d2553bfdd94e2fd11a73ed481.tar.bz2
Chimère-fe0a771e75be853d2553bfdd94e2fd11a73ed481.zip
Routing: prevent incoherent transport and speed
-rw-r--r--chimere/views.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/chimere/views.py b/chimere/views.py
index 9b25458..a417fad 100644
--- a/chimere/views.py
+++ b/chimere/views.py
@@ -760,6 +760,19 @@ def route(request, area_name, lon1, lat1, lonlat_steps, lon2, lat2,
steps = [(steps[i*2], steps[i*2+1]) for i in range(len(steps)/2)]
except ValueError:
return HttpResponse('no results')
+
+ # prevent incoherent transport and speed
+ if transport not in dict(settings.CHIMERE_ROUTING_TRANSPORT):
+ transport = settings.CHIMERE_ROUTING_TRANSPORT[0][0]
+ if speed:
+ speed = unicode(speed)
+ available_speed = [unicode(sp)
+ for sp, lbl in settings.CHIMERE_ROUTING_SPEEDS[transport]]
+ if speed not in available_speed:
+ speed = None
+ if not speed:
+ speed = settings.CHIMERE_ROUTING_SPEEDS[transport][0][0]
+
jsons, desc, total = router.route(lon1, lat1, lon2, lat2, steps=steps,
transport=transport, speed=speed)
if not jsons: