aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Florisson2012-09-18 16:21:42 +0200
committerMarc Florisson2012-09-18 16:21:42 +0200
commit7cdfab565d89ebcf88c4e04912bd55b430dafa80 (patch)
tree61aba7b01fa0c0c8f4084de9d148f1fef473a5da
parent295f7876004a9c7c048ce627f98af6755f8470e2 (diff)
downloadchouette-core-7cdfab565d89ebcf88c4e04912bd55b430dafa80.tar.bz2
add IGN maps
-rw-r--r--app/maps/application_map.rb22
-rw-r--r--app/maps/connection_link_map.rb22
-rw-r--r--app/maps/journey_pattern_map.rb29
-rw-r--r--app/maps/line_map.rb24
-rw-r--r--app/maps/network_map.rb20
-rw-r--r--app/maps/route_map.rb29
-rw-r--r--app/maps/stop_area_map.rb1
-rw-r--r--config/environments/development.rb1
-rw-r--r--config/locales/maps.yml8
9 files changed, 70 insertions, 86 deletions
diff --git a/app/maps/application_map.rb b/app/maps/application_map.rb
index 6aae9c927..1fd2326c7 100644
--- a/app/maps/application_map.rb
+++ b/app/maps/application_map.rb
@@ -4,6 +4,7 @@ class ApplicationMap
include MapLayers::ViewHelpers
attr_accessor :helpers
+ cattr_accessor :ign_api_key
def helpers
@helper ||= Helpers.new
@@ -40,7 +41,16 @@ class ApplicationMap
end
def map
- @map ||= MapLayers::Map.new(id, :projection => projection("EPSG:900913"), :controls => controls)
+ @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(geoportail_wmts)
+ page << map.add_layer(google_physical)
+ page << map.add_layer(google_streets)
+ page << map.add_layer(google_hybrid)
+ page << map.add_layer(google_satellite)
+
+ customize_map(map,page) if respond_to?( :customize_map)
+ end
end
def name
@@ -58,6 +68,16 @@ class ApplicationMap
OpenLayers::Format::KML.new :extractStyles => true, :extractAttributes => true, :maxDepth => 2
end
+ def geoportail_wmts
+ OpenLayers::Layer::WMTS.new :name => I18n.t("maps.ign_map"),
+ :url => "http://gpp3-wxs.ign.fr/#{self.class.ign_api_key}/wmts",
+ :layer => "GEOGRAPHICALGRIDSYSTEMS.MAPS",
+ :matrixSet => "PM",
+ :style => "normal",
+ :numZoomLevels => 19,
+ :attribution => 'Map base: &copy;IGN <a href="http://www.geoportail.fr/" target="_blank"><img src="http://api.ign.fr/geoportail/api/js/2.0.0beta/theme/geoportal/img/logo_gp.gif"></a> <a href="http://www.geoportail.gouv.fr/depot/api/cgu/licAPI_CGUF.pdf" alt="TOS" title="TOS" target="_blank">Terms of Service</a>'
+ end
+
def strategy_fixed
OpenLayers::Strategy::Fixed.new :preload => true
end
diff --git a/app/maps/connection_link_map.rb b/app/maps/connection_link_map.rb
index d26bba33b..62f6a23a9 100644
--- a/app/maps/connection_link_map.rb
+++ b/app/maps/connection_link_map.rb
@@ -8,22 +8,12 @@ class ConnectionLinkMap < ApplicationMap
@connection_link_style = connection_link_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([connection_link.referential, connection_link, :stop_areas], :styleMap => StyleMap::StopAreasStyleMap.new.style_map)
- page << map.add_layer(:stop_areas_layer)
- page << map.add_layer( kml_layer([connection_link.referential, connection_link], :styleMap => StyleMap::ConnectionLinkStyleMap.new.style_map))
- page << map.add_control( hover_control_display_name(:stop_areas_layer) )
- #page << map.add_layer(kml_layer(connection_link, :styleMap => StyleMap::ConnectionLinkStyleMap.new( :style => connection_link_style).style_map))
- #page << map.add_layer(kml_layer(polymorphic_path([referential, connection_link, :stop_areas], :format => :kml), :styleMap => StyleMap::StopAreasStyleMap.new.style_map))
- page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds
- end
+ def customize_map(map, page)
+ page.assign "stop_areas_layer", kml_layer([connection_link.referential, connection_link, :stop_areas], :styleMap => StyleMap::StopAreasStyleMap.new.style_map)
+ page << map.add_layer(:stop_areas_layer)
+ page << map.add_layer( kml_layer([connection_link.referential, connection_link], :styleMap => StyleMap::ConnectionLinkStyleMap.new.style_map))
+ page << map.add_control( hover_control_display_name(:stop_areas_layer) )
+ page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds
end
def ready?
diff --git a/app/maps/journey_pattern_map.rb b/app/maps/journey_pattern_map.rb
index d690b3212..b4117645d 100644
--- a/app/maps/journey_pattern_map.rb
+++ b/app/maps/journey_pattern_map.rb
@@ -7,25 +7,16 @@ class JourneyPatternMap < ApplicationMap
@style = 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 << map.add_layer(kml_layer(line, :styleMap => StyleMap::LineStyleMap.new( :style => line_style).style_map))
- layer = kml_layer([journey_pattern.referential, journey_pattern.route.line, journey_pattern.route, journey_pattern], :styleMap => StyleMap::JourneyPatternStyleMap.new.style_map)
- page.assign "journeyPatternLayer", layer
-
- selectFeature = OpenLayers::Control::SelectFeature.new( :journeyPatternLayer)
- page.assign "selectFeature", selectFeature
-
- 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 customize_map(map, page)
+ layer = kml_layer([journey_pattern.referential, journey_pattern.route.line, journey_pattern.route, journey_pattern], :styleMap => StyleMap::JourneyPatternStyleMap.new.style_map)
+ page.assign "journeyPatternLayer", layer
+
+ selectFeature = OpenLayers::Control::SelectFeature.new( :journeyPatternLayer)
+ page.assign "selectFeature", selectFeature
+
+ 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?
diff --git a/app/maps/line_map.rb b/app/maps/line_map.rb
index ec1f6618f..9b398cae2 100644
--- a/app/maps/line_map.rb
+++ b/app/maps/line_map.rb
@@ -8,22 +8,14 @@ class LineMap < ApplicationMap
@line_style = 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 << map.add_layer(kml_layer(line, :styleMap => StyleMap::LineStyleMap.new( :style => line_style).style_map))
- page.assign "stop_areas_layer", kml_layer([line.referential, line], :styleMap => StyleMap::StopAreasStyleMap.new.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
+ def customize_map(map, page)
+ page << map.add_layer(kml_layer(line, :styleMap => StyleMap::LineStyleMap.new( :style => line_style).style_map))
+ page.assign "stop_areas_layer", kml_layer([line.referential, line], :styleMap => StyleMap::StopAreasStyleMap.new.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
def bounds
diff --git a/app/maps/network_map.rb b/app/maps/network_map.rb
index f87f088ad..f3693b985 100644
--- a/app/maps/network_map.rb
+++ b/app/maps/network_map.rb
@@ -7,22 +7,12 @@ class NetworkMap < ApplicationMap
@network_style = network_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([network.referential, network], :styleMap => StyleMap::StopAreasStyleMap.new.style_map)
+ def customize_map(map, page)
+ page.assign "stop_areas_layer", kml_layer([network.referential, network], :styleMap => StyleMap::StopAreasStyleMap.new.style_map)
- page << map.add_layer(:stop_areas_layer)
- page << map.add_control( hover_control_display_name(:stop_areas_layer) )
-
- #page << map.add_layer(kml_layer(network, :styleMap => StyleMap::NetworkStyleMap.new( :style => network_style).style_map))
- page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds
- end
+ 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
def bounds
diff --git a/app/maps/route_map.rb b/app/maps/route_map.rb
index 70e31e2e2..a1f6bcf1d 100644
--- a/app/maps/route_map.rb
+++ b/app/maps/route_map.rb
@@ -7,25 +7,16 @@ class RouteMap < ApplicationMap
@style = 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 << map.add_layer(kml_layer(line, :styleMap => StyleMap::LineStyleMap.new( :style => line_style).style_map))
- layer = kml_layer([route.referential, route.line, route], :styleMap => StyleMap::RouteStyleMap.new.style_map)
- page.assign "routeLayer", layer
- selectFeature = OpenLayers::Control::SelectFeature.new( :routeLayer)
-
- page << map.add_layer( :routeLayer)
- page << map.add_control( hover_control_display_name(:routeLayer) )
- page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds
-
- page.assign "selectFeature", selectFeature
- end
+ def customize_map(map, page)
+ layer = kml_layer([route.referential, route.line, route], :styleMap => StyleMap::RouteStyleMap.new.style_map)
+ page.assign "routeLayer", layer
+ selectFeature = OpenLayers::Control::SelectFeature.new( :routeLayer)
+
+ page << map.add_layer( :routeLayer)
+ page << map.add_control( hover_control_display_name(:routeLayer) )
+
+ page.assign "selectFeature", selectFeature
+ page << map.zoom_to_extent(bounds.to_google.to_openlayers) if bounds
end
def ready?
diff --git a/app/maps/stop_area_map.rb b/app/maps/stop_area_map.rb
index 65c8b72fd..2134a78c0 100644
--- a/app/maps/stop_area_map.rb
+++ b/app/maps/stop_area_map.rb
@@ -12,6 +12,7 @@ class StopAreaMap < ApplicationMap
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(geoportail_wmts)
page << map.add_layer(google_physical)
page << map.add_layer(google_streets)
page << map.add_layer(google_hybrid)
diff --git a/config/environments/development.rb b/config/environments/development.rb
index 4cc904bab..05fd92389 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -41,6 +41,7 @@ ChouetteIhm::Application.configure do
config.to_prepare do
Devise::Mailer.layout "mailer"
+ ApplicationMap.ign_api_key = "41k8m3tx1515p9by2mrvncva"
chouette_command_script = "tmp/chouette-command/chouette"
if File.exists? chouette_command_script
Chouette::Command.command = "tmp/chouette-command/chouette"
diff --git a/config/locales/maps.yml b/config/locales/maps.yml
new file mode 100644
index 000000000..339ad206d
--- /dev/null
+++ b/config/locales/maps.yml
@@ -0,0 +1,8 @@
+en:
+ maps:
+ ign_map: "IGN maps"
+fr:
+ maps:
+ ign_map: "Cartes IGN"
+
+