aboutsummaryrefslogtreecommitdiffstats
path: root/app/maps
diff options
context:
space:
mode:
authorLuc Donnet2012-07-27 17:53:41 +0200
committerLuc Donnet2012-07-27 17:53:41 +0200
commitef271df67d673dbb6c4dc3df6ab805f092b54d04 (patch)
tree463f8946ff1899a7bf282aba39cb7721fa070d1c /app/maps
parent797b05bae912a49dfaefe1cc26c332b5cf677f03 (diff)
downloadchouette-core-ef271df67d673dbb6c4dc3df6ab805f092b54d04.tar.bz2
Update x and y when update stop area position in map
Diffstat (limited to 'app/maps')
-rw-r--r--app/maps/network_map.rb2
-rw-r--r--app/maps/stop_area_map.rb20
2 files changed, 17 insertions, 5 deletions
diff --git a/app/maps/network_map.rb b/app/maps/network_map.rb
index 4271133bb..c1104e877 100644
--- a/app/maps/network_map.rb
+++ b/app/maps/network_map.rb
@@ -1,6 +1,6 @@
class NetworkMap < ApplicationMap
- attr_reader :referential, :network, :network_style
+ attr_reader :network, :network_style
def initialize(network, network_style = nil)
@network = network
diff --git a/app/maps/stop_area_map.rb b/app/maps/stop_area_map.rb
index 0e02654e9..65c8b72fd 100644
--- a/app/maps/stop_area_map.rb
+++ b/app/maps/stop_area_map.rb
@@ -1,6 +1,6 @@
class StopAreaMap < ApplicationMap
- attr_reader :referential, :stop_area
+ attr_reader :stop_area
attr_accessor :editable
alias_method :editable?, :editable
@@ -19,15 +19,23 @@ class StopAreaMap < ApplicationMap
page.assign "edit_stop_area_layer", kml_layer(stop_area, { :default => editable? }, :style_map => StyleMap::EditStopAreaStyleMap.new.style_map)
page << map.add_layer(:edit_stop_area_layer)
-
- if editable?
- # TODO virer ce code inline
+
+
+ if editable?
+ page.assign "referential_projection", projection_type.present? ? projection("EPSG:" + projection_type) : JsVar.new("undefined")
+ # TODO virer ce code inline
page << <<EOF
edit_stop_area_layer.events.on({
'afterfeaturemodified': function(event) {
geometry = event.feature.geometry.clone().transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
$('#stop_area_longitude').val(geometry.x);
$('#stop_area_latitude').val(geometry.y);
+
+ if(referential_projection != undefined)
+ {
+ projection_geometry = event.feature.geometry.clone().transform(new OpenLayers.Projection("EPSG:900913"), referential_projection );
+ $('#stop_area_x').val(projection_geometry.x);
+ $('#stop_area_y').val(projection_geometry.y); }
}
});
EOF
@@ -38,6 +46,10 @@ EOF
page << map.set_center(center.to_google.to_openlayers, 16, false, true)
end
end
+
+ def projection_type
+ stop_area.referential.projection_type
+ end
def ready?
center.present?