diff options
| author | Michel Etienne | 2012-10-09 16:03:11 +0200 |
|---|---|---|
| committer | Michel Etienne | 2012-10-09 16:03:11 +0200 |
| commit | 72de1c47254ca70d7be04a96b5b11dfed8f79df6 (patch) | |
| tree | c4ccd9fb97779edd589071570596779f266b990d /app/maps | |
| parent | 04835501dbf267b2046d24e65400e23c927d4ab3 (diff) | |
| download | chouette-core-72de1c47254ca70d7be04a96b5b11dfed8f79df6.tar.bz2 | |
add group_of_line managment
Diffstat (limited to 'app/maps')
| -rw-r--r-- | app/maps/group_of_line_map.rb | 34 |
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 |
