aboutsummaryrefslogtreecommitdiffstats
path: root/app/maps/journey_pattern_map.rb
blob: 9a0da5743fc0211c17ee2238fa5ead7aeddba0a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class JourneyPatternMap < ApplicationMap

  attr_reader :journey_pattern, :style

  def initialize(journey_pattern, style = nil)
    @journey_pattern = journey_pattern
    @style = style
  end

  def customize_map(map, page)
    layer = kml_layer([journey_pattern.referential, journey_pattern.route.line, journey_pattern.route, journey_pattern], { setLayerIndex: 999, styleMap: Design::JourneyPatternStyleMap.new(helpers).style_map, rendererOptions: { zIndexing: true } })
    page.assign 'journeyPatternLayer', layer
    page.assign 'selectFeature', OpenLayers::Control::SelectFeature.new(:journeyPatternLayer)

    page << map.add_layer(:journeyPatternLayer)
    page << map.add_control(hover_control_display_name(:journeyPatternLayer))
    page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds
  end

  def ready?
    bounds.present?
  end

  def bounds
    @bounds ||= GeoRuby::SimpleFeatures::Point.bounds(journey_pattern.route.stop_areas.collect(&:geometry).compact)
  end

end