summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/static/chimere/js/jquery.chimere.js31
-rw-r--r--chimere/templates/chimere/blocks/map.html2
-rw-r--r--chimere/templatetags/chimere_tags.py15
3 files changed, 34 insertions, 14 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js
index a9b237f..f9d956e 100644
--- a/chimere/static/chimere/js/jquery.chimere.js
+++ b/chimere/static/chimere/js/jquery.chimere.js
@@ -73,6 +73,8 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
routing_end_lat: null,
routing_end_lon: null,
routing_steps_lonlat: null,
+ routing_transport: null,
+ routing_speed: null,
// Provide this function to make a custom click event on the marker
on_marker_click: null,
// Provide this function to override the feature detail display
@@ -211,8 +213,12 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
// Make specific params
params.checked_categories = settings.checked_categories;
params.display_submited = settings.display_submited;
- if(settings.current_feature)
+ if (settings.current_feature)
params.current_feature = settings.current_feature.pk;
+ if (settings.routing_speed)
+ params.routing_speed = settings.routing_speed;
+ if (settings.routing_transport)
+ params.routing_transport = settings.routing_transport;
if (settings.routing_start){
lonlat = settings.routing_start.lonlat.clone().transform(
EPSG_PROJECTION, EPSG_DISPLAY_PROJECTION);
@@ -1106,7 +1112,14 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
}
if (settings.routing_end && settings.routing_start) methods.route();
},
-
+ // change routing speed
+ routingChangeSpeed: function(speed){
+ settings.routing_speed = speed;
+ },
+ // change routing transport
+ routingChangeTransport: function(transport){
+ settings.routing_transport = transport;
+ },
// add a step on the interface
add_step_fx: function (){
settings.itinerary_step_number += 1;
@@ -1196,16 +1209,12 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
steps.push(settings.routing_end.lonlat.clone());
// create the appropriate URL
var uri = extra_url + "route/"
- var transport = $('input[name=transport]:checked').val();
- if(transport){
- uri += transport + "/"
- }
- var speed = $('#id_speed option:selected').val();
- if(!speed){
- var speed = $('input[name=speed]:checked').val();
+ if(settings.routing_transport){
+ uri += settings.routing_transport + "/"
}
- if(speed){
- uri += speed.split('_')[1] + "/"
+ if(settings.routing_speed){
+ //uri += speed.split('_')[1] + "/"
+ uri += routing_settings.speed + "/"
}
for (var i = 0; i < steps.length; i++) {
var step = steps[i].transform(
diff --git a/chimere/templates/chimere/blocks/map.html b/chimere/templates/chimere/blocks/map.html
index 07f0618..764d07b 100644
--- a/chimere/templates/chimere/blocks/map.html
+++ b/chimere/templates/chimere/blocks/map.html
@@ -44,6 +44,8 @@ $(function(){
{% if p_routing_end_lon %}chimere_init_options["routing_end_lon"] = {{ p_routing_end_lon }};{% endif %}
{% if p_routing_end_lat %}chimere_init_options["routing_end_lat"] = {{ p_routing_end_lat }};{% endif %}
{% if p_routing_steps %}chimere_init_options["routing_steps_lonlat"] = [{{ p_routing_steps }}];{% endif %}
+ {% if p_routing_transport %}chimere_init_options["routing_transport"] = "{{ p_routing_transport }}";{% endif %}
+ {% if p_routing_speed %}chimere_init_options["routing_speed"] = "{{ p_routing_speed }}";{% endif %}
chimere_init_options["icon_offset"] = new OpenLayers.Pixel({{icon_offset_x}},
{{icon_offset_y}});
chimere_init_options["dynamic_categories"] = {{ dynamic_categories }};
diff --git a/chimere/templatetags/chimere_tags.py b/chimere/templatetags/chimere_tags.py
index 1dd091b..15b8afa 100644
--- a/chimere/templatetags/chimere_tags.py
+++ b/chimere/templatetags/chimere_tags.py
@@ -261,6 +261,13 @@ bounds.extend(new OpenLayers.LonLat(%f, %f));
context_data['checked_categories'] = cat
context_data['dynamic_categories'] = 'true' \
if area and area.dynamic_categories else 'false'
+ if settings.CHIMERE_ROUTING_TRANSPORT:
+ context_data['p_routing_transport'] = settings.CHIMERE_ROUTING_TRANSPORT[0][0]
+ if settings.CHIMERE_ROUTING_SPEEDS and \
+ context_data['p_routing_transport'] in settings.CHIMERE_ROUTING_SPEEDS:
+ context_data['p_routing_speed'] = \
+ settings.CHIMERE_ROUTING_SPEEDS[
+ context_data['p_routing_transport']][0][0]
if 'request' not in context:
return context_data
request = context['request']
@@ -269,10 +276,12 @@ bounds.extend(new OpenLayers.LonLat(%f, %f));
if request.GET:
for key in ('zoom', 'lon', 'lat', 'display_submited',
'current_feature', 'routing_start_lon', 'routing_start_lat',
- 'routing_end_lon', 'routing_end_lat', 'routing_steps'):
+ 'routing_end_lon', 'routing_end_lat', 'routing_steps',
+ 'routing_transport', 'routing_speed'):
+ p_key = 'p_' + key
if key in request.GET and request.GET[key]:
- context_data['p_'+key] = request.GET[key]
- else:
+ context_data[p_key] = request.GET[key]
+ elif p_key not in context_data:
context_data['p_'+key] = None
if 'checked_categories' in request.GET \
and request.GET['checked_categories']: