summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/static/chimere/js/jquery.chimere.js30
1 files changed, 22 insertions, 8 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js
index 61aa6d9..d85490f 100644
--- a/chimere/static/chimere/js/jquery.chimere.js
+++ b/chimere/static/chimere/js/jquery.chimere.js
@@ -101,7 +101,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
current_control: null, // To store the current control
current_popup: null, // To store the current POI popup displayed
current_category: null, // To store the current category clicked in list
- current_route_feature: null, // To store the current route find by routing
+ current_routes_features: [], // To store the current routes find by routing
itinerary_step_number:0, // current step number
icon_offset: new OpenLayers.Pixel(0, 0),
edition: false, // edition mode
@@ -1236,7 +1236,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
settings.routing_end = null;
settings.routing_steps = new Array();
settings.current_itinerary_number = 0;
- settings.current_route_feature = null;
+ settings.current_routes_features = [];
settings.permalink.updateLink();
},
// display a route
@@ -1278,11 +1278,12 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
methods.displayMessage(routing_fail_message);
return;
}
+ settings.current_routes_features = [];
for (var i = 0; i < data.features.length; i++) {
var feat = data.features[i];
if(feat.type == 'LineString'){
- settings.current_route_feature =
- methods.putRoute(feat);
+ settings.current_routes_features.push(
+ methods.putRoute(feat));
} else {
var lonlat = new OpenLayers.LonLat(
feat.geometry.coordinates[0],
@@ -1539,12 +1540,25 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
},
updateRoutingInput: function(){
- if (!settings.current_route_feature) {
+ if (!settings.current_routes_features) {
return;
}
- var current_geo = settings.current_route_feature.geometry.clone();
- current_geo.transform(EPSG_PROJECTION, EPSG_DISPLAY_PROJECTION);
- jQuery('#id_route').val(current_geo);
+ var wkt = new OpenLayers.Format.WKT();
+ var point_array = [];
+ // not very effective...
+ for (idx in settings.current_routes_features){
+ var c_geo = settings.current_routes_features[idx].geometry.clone();
+ c_geo = c_geo.transform(EPSG_PROJECTION,
+ EPSG_DISPLAY_PROJECTION);
+ var vertices = c_geo.getVertices();
+ for (idx_pt in vertices){
+ var point = vertices[idx_pt];
+ point = wkt.read(String(point));
+ point_array.push(point.geometry);
+ }
+ }
+ var linestring = new OpenLayers.Geometry.LineString(point_array);
+ jQuery('#id_route').val(String(linestring));
},
activateCurrentControl: function(){
if (settings.current_control){