summaryrefslogtreecommitdiff
path: root/chimere/static
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-08-30 22:25:57 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-08-30 22:25:57 +0200
commitee4bffdeb2c10750a51ea76f32de2acca9929d01 (patch)
tree131552f7ee3d6afe6011ec2497216fe1fee97ed9 /chimere/static
parentbabd0cbc06904da3887d44dccf84cf8b562fc0c1 (diff)
downloadChimère-ee4bffdeb2c10750a51ea76f32de2acca9929d01.tar.bz2
Chimère-ee4bffdeb2c10750a51ea76f32de2acca9929d01.zip
Improvment on route edition
Diffstat (limited to 'chimere/static')
-rw-r--r--chimere/static/chimere/js/jquery.chimere.js50
1 files changed, 39 insertions, 11 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js
index c3ecf0e..0e7def5 100644
--- a/chimere/static/chimere/js/jquery.chimere.js
+++ b/chimere/static/chimere/js/jquery.chimere.js
@@ -94,6 +94,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
icon_offset: new OpenLayers.Pixel(0, 0),
edition: false, // edition mode
edition_type_is_route: false, // route or POI edition
@@ -679,6 +680,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
settings.routing_start = null;
settings.routing_end = null;
settings.routing_steps = new Array();
+ settings.current_route_feature = null;
},
// display a route
@@ -695,7 +697,9 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
// create the appropriate URL
var uri = extra_url + "route/"
var transport = $('input:radio[name=transport]:checked').val();
- uri += transport + "/"
+ if(transport){
+ uri += transport + "/"
+ }
for (var i = 0; i < steps.length; i++) {
var step = steps[i].transform(
settings.map.getProjectionObject(),
@@ -710,7 +714,8 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
success: function (data) {
settings.layerRoute.removeAllFeatures();
for (var i = 0; i < data.features.length; i++) {
- methods.putRoute(data.features[i]);
+ settings.current_route_feature =
+ methods.putRoute(data.features[i]);
}
settings.map.zoomToExtent(
settings.layerRoute.getDataExtent());
@@ -720,8 +725,12 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
$('#chimere_itinerary_content').html(
data.properties.description);
$('#chimere_itinerary').show();
- $('#chimere_itinerary_form').hide();
- settings.routing_panel_open();
+ if(!settings.edition_type_is_route){
+ $('#chimere_itinerary_form').hide();
+ settings.routing_panel_open();
+ } else {
+ methods.updateRoutingInput();
+ }
},
error: function (data) {
settings.layerRoute.removeAllFeatures();
@@ -748,6 +757,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
current_route.style = style;
current_route.geometry = linestring;
settings.layerRoute.addFeatures([current_route]);
+ return current_route;
},
display_feature_detail: function (pk) {
/*
@@ -864,13 +874,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
settings.current_edit_feature = new OpenLayers.Marker(lonlat.clone(),
settings.default_icon);
settings.layerMarkers.addMarker(settings.current_edit_feature);
- lonlat = lonlat.clone().transform(settings.map.getProjectionObject(),
- EPSG_DISPLAY_PROJECTION);
- $('#id_point').val('POINT(' + lonlat.lon + ' ' + lonlat.lat + ')');
- if($('#live_latitude').length){
- $('#live_latitude').val(lonlat.lat);
- $('#live_longitude').val(lonlat.lon);
- }
+ methods.updateMarkerInput();
/* zoom to the point */
if (zoom){
var bounds = settings.layerMarkers.getDataExtent();
@@ -878,6 +882,30 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
}
return;
},
+ updateMarkerInput: function(){
+ settings.edition_type_is_route = false;
+ if (!settings.current_edit_feature) {
+ return;
+ }
+ lonlat = settings.current_edit_feature.lonlat.clone().transform(
+ settings.map.getProjectionObject(),
+ EPSG_DISPLAY_PROJECTION);
+ $('#id_point').val('POINT(' + lonlat.lon + ' ' + lonlat.lat + ')');
+ if($('#live_latitude').length){
+ $('#live_latitude').val(lonlat.lat);
+ $('#live_longitude').val(lonlat.lon);
+ }
+
+ },
+ updateRoutingInput: function(){
+ settings.edition_type_is_route = true;
+ if (!settings.current_route_feature) {
+ return;
+ }
+ var current_geo = settings.current_route_feature.geometry.clone();
+ current_geo.transform(EPSG_PROJECTION, EPSG_DISPLAY_PROJECTION);
+ jQuery('#id_route').val(current_geo);
+ },
activateCurrentControl: function(){
if (settings.current_control){
settings.current_control.activate();