diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2015-02-27 01:47:59 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2015-02-27 01:47:59 +0100 |
commit | 403bb16d02db6aca31e63d1be147594dda28d703 (patch) | |
tree | c887121cd8077f67d5e05d1451eb3a8b0d7857ad | |
parent | cfea28d371c6dd46f59f8a73d1b56ac6ffe12cb8 (diff) | |
parent | 1242868c7eb1cd9da6f4001e2e98d4369d24ba15 (diff) | |
download | Chimère-403bb16d02db6aca31e63d1be147594dda28d703.tar.bz2 Chimère-403bb16d02db6aca31e63d1be147594dda28d703.zip |
Merge branch 'v2.1' into v2.2
-rw-r--r-- | chimere/static/chimere/js/jquery.chimere.js | 30 |
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){ |