aboutsummaryrefslogtreecommitdiffstats
path: root/app/maps
diff options
context:
space:
mode:
authorMichel Etienne2012-10-09 16:03:11 +0200
committerMichel Etienne2012-10-09 16:03:11 +0200
commit72de1c47254ca70d7be04a96b5b11dfed8f79df6 (patch)
treec4ccd9fb97779edd589071570596779f266b990d /app/maps
parent04835501dbf267b2046d24e65400e23c927d4ab3 (diff)
downloadchouette-core-72de1c47254ca70d7be04a96b5b11dfed8f79df6.tar.bz2
add group_of_line managment
Diffstat (limited to 'app/maps')
-rw-r--r--app/maps/group_of_line_map.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/app/maps/group_of_line_map.rb b/app/maps/group_of_line_map.rb
new file mode 100644
index 000000000..fdd8cac1d
--- /dev/null
+++ b/app/maps/group_of_line_map.rb
@@ -0,0 +1,34 @@
+class GroupOfLineMap < ApplicationMap
+
+ attr_reader :group_of_line, :group_of_line_style
+
+ def initialize(group_of_line, group_of_line_style = nil)
+ @group_of_line = group_of_line
+ @group_of_line_style = group_of_line_style
+ end
+
+ def map
+ @map ||= MapLayers::Map.new(id, :projection => projection("EPSG:900913"), :controls => controls) do |map, page|
+ page << map.add_layer(MapLayers::OSM_MAPNIK)
+ page << map.add_layer(google_physical)
+ page << map.add_layer(google_streets)
+ page << map.add_layer(google_hybrid)
+ page << map.add_layer(google_satellite)
+
+ page.assign "stop_areas_layer", kml_layer([group_of_line.referential, group_of_line], :styleMap => StyleMap::StopAreasStyleMap.new(helpers).style_map)
+
+ page << map.add_layer(:stop_areas_layer)
+ page << map.add_control( hover_control_display_name(:stop_areas_layer) )
+ page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds
+ end
+ end
+
+ def bounds
+ @bounds ||= GeoRuby::SimpleFeatures::Point.bounds(group_of_line.stop_areas.collect(&:geometry).compact)
+ end
+
+ def ready?
+ Chouette::StopArea.bounds.present?
+ end
+
+end