diff options
| author | Luc Donnet | 2012-07-27 17:53:41 +0200 |
|---|---|---|
| committer | Luc Donnet | 2012-07-27 17:53:41 +0200 |
| commit | ef271df67d673dbb6c4dc3df6ab805f092b54d04 (patch) | |
| tree | 463f8946ff1899a7bf282aba39cb7721fa070d1c /app/maps | |
| parent | 797b05bae912a49dfaefe1cc26c332b5cf677f03 (diff) | |
| download | chouette-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.rb | 2 | ||||
| -rw-r--r-- | app/maps/stop_area_map.rb | 20 |
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? |
