diff options
| author | Marc Florisson | 2013-06-27 11:45:12 +0200 |
|---|---|---|
| committer | Marc Florisson | 2013-06-27 11:45:12 +0200 |
| commit | eaf807102b191381c06bc801a2047b270056e65d (patch) | |
| tree | b07b8df507a5a3cb0a9654bd1f71bb608227af68 | |
| parent | 6d74cc620d0ed64036e7fd600cfc744ff9dd3ffc (diff) | |
| download | chouette-core-eaf807102b191381c06bc801a2047b270056e65d.tar.bz2 | |
prepare kml exports
| -rw-r--r-- | app/controllers/api/kml/lines_controller.rb | 16 | ||||
| -rw-r--r-- | app/controllers/api/kml/routes_controller.rb | 21 | ||||
| -rw-r--r-- | app/controllers/api/kml/stop_areas_controller.rb | 30 | ||||
| -rw-r--r-- | app/views/api/kml/lines/index.kml.erb | 27 | ||||
| -rw-r--r-- | app/views/api/kml/lines/show.kml.erb | 29 | ||||
| -rw-r--r-- | app/views/api/kml/routes/index.kml.erb | 25 | ||||
| -rw-r--r-- | app/views/api/kml/routes/show.kml.erb | 27 | ||||
| -rw-r--r-- | app/views/api/kml/stop_areas/_stop_area.kml.erb | 21 | ||||
| -rw-r--r-- | app/views/api/kml/stop_areas/index.kml.erb | 22 | ||||
| -rw-r--r-- | config/routes.rb | 10 |
10 files changed, 228 insertions, 0 deletions
diff --git a/app/controllers/api/kml/lines_controller.rb b/app/controllers/api/kml/lines_controller.rb new file mode 100644 index 000000000..30935402b --- /dev/null +++ b/app/controllers/api/kml/lines_controller.rb @@ -0,0 +1,16 @@ +module Api + module Kml + class LinesController < ChouetteController + respond_to :kml + + defaults :resource_class => Chouette::Line + + protected + + def collection + @lines ||= ( @referential ? @referential.lines : []) + end + end + end +end + diff --git a/app/controllers/api/kml/routes_controller.rb b/app/controllers/api/kml/routes_controller.rb new file mode 100644 index 000000000..0b0a56eb0 --- /dev/null +++ b/app/controllers/api/kml/routes_controller.rb @@ -0,0 +1,21 @@ +module Api + module Kml + class RoutesController < ChouetteController + respond_to :kml + + defaults :resource_class => Chouette::Route + + belongs_to :referential do + belongs_to :line, :parent_class => Chouette::Line, :optional => true, :polymorphic => true + end + + protected + + alias_method :route, :resource + + def collection + @routes ||= parent.routes + end + end + end +end diff --git a/app/controllers/api/kml/stop_areas_controller.rb b/app/controllers/api/kml/stop_areas_controller.rb new file mode 100644 index 000000000..5663d7bad --- /dev/null +++ b/app/controllers/api/kml/stop_areas_controller.rb @@ -0,0 +1,30 @@ +module Api + module Kml + class StopAreasController < ChouetteController + respond_to :kml + + defaults :resource_class => Chouette::StopArea + + belongs_to :referential + + protected + + def collection + @commercials = [] + @places = [] + @physicals = [] + referential.stop_areas.select {|sa| sa.longitude && sa.latitude}.each do |sa| + case sa.area_type + when "StopPlace" + @places << sa + when "CommercialStopPoint" + @commercials << sa + when "BoardingPosition", "Quay" + @physicals << sa + end + end + end + end + end +end + diff --git a/app/views/api/kml/lines/index.kml.erb b/app/views/api/kml/lines/index.kml.erb new file mode 100644 index 000000000..2df104296 --- /dev/null +++ b/app/views/api/kml/lines/index.kml.erb @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<kml xmlns="http://www.opengis.net/kml/2.2"> + <Document> + <% @lines.each do |line| %> + <Placemark id="<%= line.objectid %>:StopAreas" > + <%= line.geometry_presenter.stop_areas_geometry.kml_representation.html_safe %> + </Placemark> + <Placemark id="<%= line.objectid %>" > + <objectid><%= line.objectid %></objectid> + <object_version><%= line.object_version %></object_version> + <creation_time><%= line.creation_time %></creation_time> + <creator_id><%= line.creator_id %></creator_id> + <name><%= line.name %></name> + <number><%= line.number %></number> + <published_name><%= line.published_name %></published_name> + <transport_mode_name><%= line.transport_mode_name %></transport_mode_name> + <registration_number><%= line.registration_number %></registration_number> + <comment><%= line.comment %></comment> + <mobility_restricted_suitability><%= line.mobility_restricted_suitability %></mobility_restricted_suitability> + <int_user_needs><%= line.int_user_needs %></int_user_needs> + + <%= line.geometry_presenter.geometry.kml_representation.html_safe %> + </Placemark> + <% end %> + </Document> +</kml> + diff --git a/app/views/api/kml/lines/show.kml.erb b/app/views/api/kml/lines/show.kml.erb new file mode 100644 index 000000000..936801266 --- /dev/null +++ b/app/views/api/kml/lines/show.kml.erb @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<kml xmlns="http://www.opengis.net/kml/2.2"> + <Document> + <% @line.commercial_stop_areas.each do |stop_area| %> + <Placemark id="<%= stop_area.objectid %>" > + <name><%= stop_area.name %></name> + <stop_area_type><%= stop_area.area_type.underscore %></stop_area_type> + <%= (stop_area.position or stop_area.default_position).kml_representation.html_safe %> + </Placemark> + <% end %> + <Placemark id="<%= @line.objectid %>" > + <objectid><%= @line.objectid %></objectid> + <object_version><%= @line.object_version %></object_version> + <creation_time><%= @line.creation_time %></creation_time> + <creator_id><%= @line.creator_id %></creator_id> + <name><%= @line.name %></name> + <number><%= @line.number %></number> + <published_name><%= @line.published_name %></published_name> + <transport_mode_name><%= @line.transport_mode_name %></transport_mode_name> + <registration_number><%= @line.registration_number %></registration_number> + <comment><%= @line.comment %></comment> + <mobility_restricted_suitability><%= @line.mobility_restricted_suitability %></mobility_restricted_suitability> + <int_user_needs><%= @line.int_user_needs %></int_user_needs> + + <%= @line.geometry_presenter.geometry.kml_representation.html_safe %> + </Placemark> + </Document> +</kml> + diff --git a/app/views/api/kml/routes/index.kml.erb b/app/views/api/kml/routes/index.kml.erb new file mode 100644 index 000000000..a1521f254 --- /dev/null +++ b/app/views/api/kml/routes/index.kml.erb @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<kml xmlns="http://www.opengis.net/kml/2.2"> + <Document> + <% @routes.each do |route| %> + <Placemark id="<%= route.objectid %>:StopAreas" > + <%= route.geometry_presenter.stop_areas_geometry.kml_representation.html_safe %> + </Placemark> + <Placemark id="<%= route.objectid %>" > + <objectid><%= route.objectid %></objectid> + <object_version><%= route.object_version %></object_version> + <creation_time><%= route.creation_time %></creation_time> + <creator_id><%= route.creator_id %></creator_id> + <name><%= route.name %></name> + <direction_code><%= route.direction_code %></direction_code> + <comment><%= route.comment %></comment> + <published_name><%= route.published_name %></published_name> + <number><%= route.number %></number> + <direction><%= route.direction %></direction> + <wayback><%= route.wayback %></wayback> + <%= route.geometry_presenter.geometry.kml_representation.html_safe %> + </Placemark> + <% end %> + </Document> +</kml> + diff --git a/app/views/api/kml/routes/show.kml.erb b/app/views/api/kml/routes/show.kml.erb new file mode 100644 index 000000000..0b9bf7629 --- /dev/null +++ b/app/views/api/kml/routes/show.kml.erb @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<kml xmlns="http://www.opengis.net/kml/2.2"> + <Document> + <% @route.stop_areas.each do |stop_area| %> + <Placemark id="<%= stop_area.objectid %>" > + <name><%= stop_area.name %></name> + <stop_area_type><%= stop_area.area_type.underscore %></stop_area_type> + <%= (stop_area.position or stop_area.default_position).kml_representation.html_safe %> + </Placemark> + <% end %> + <Placemark id="<%= @route.objectid %>" > + <objectid><%= @route.objectid %></objectid> + <object_version><%= @route.object_version %></object_version> + <creation_time><%= @route.creation_time %></creation_time> + <creator_id><%= @route.creator_id %></creator_id> + <name><%= @route.name %></name> + <direction_code><%= @route.direction_code %></direction_code> + <comment><%= @route.comment %></comment> + <published_name><%= @route.published_name %></published_name> + <number><%= @route.number %></number> + <direction><%= @route.direction %></direction> + <wayback><%= @route.wayback %></wayback> + <%= @route.geometry_presenter.geometry.kml_representation.html_safe %> + </Placemark> + </Document> +</kml> + diff --git a/app/views/api/kml/stop_areas/_stop_area.kml.erb b/app/views/api/kml/stop_areas/_stop_area.kml.erb new file mode 100644 index 000000000..1383fbf66 --- /dev/null +++ b/app/views/api/kml/stop_areas/_stop_area.kml.erb @@ -0,0 +1,21 @@ + <objectid><%= stop_area.objectid.to_s.html_safe %></objectid> + <object_version><%= stop_area.object_version.to_s.html_safe %></object_version> + <creation_time><%= stop_area.creation_time.to_s.html_safe %></creation_time> + <creator_id><%= stop_area.creator_id.to_s.html_safe %></creator_id> + <name><%= stop_area.name.to_s.html_safe %></name> + <comment><%= stop_area.comment.to_s.html_safe %></comment> + <area_type><%= stop_area.area_type.to_s.html_safe %></area_type> + <registration_number><%= stop_area.registration_number.to_s.html_safe %></registration_number> + <nearest_topic_name><%= stop_area.nearest_topic_name.to_s.html_safe %></nearest_topic_name> + <fare_code><%= stop_area.fare_code.to_s.html_safe %></fare_code> + <longitude><%= stop_area.longitude.to_s.html_safe %></longitude> + <latitude><%= stop_area.latitude.to_s.html_safe %></latitude> + <long_lat_type><%= stop_area.long_lat_type.to_s.html_safe %></long_lat_type> + <x><%= stop_area.x.to_s.html_safe %></x> + <y><%= stop_area.y.to_s.html_safe %></y> + <projection_type><%= stop_area.projection_type.to_s.html_safe %></projection_type> + <country_code><%= stop_area.country_code.to_s.html_safe %></country_code> + <street_name><%= stop_area.street_name.to_s.html_safe %></street_name> + + <%= stop_area.geometry_presenter.geometry.kml_representation.html_safe %> + diff --git a/app/views/api/kml/stop_areas/index.kml.erb b/app/views/api/kml/stop_areas/index.kml.erb new file mode 100644 index 000000000..b4ce5a215 --- /dev/null +++ b/app/views/api/kml/stop_areas/index.kml.erb @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<kml xmlns="http://www.opengis.net/kml/2.2"> + + <Document> + <% @places.each do |stop_area| %> + <Placemark id="<%= stop_area.objectid %>:Places" > + <%= render :partial => "stop_area", :locals => { :stop_area => stop_area} %> + </Placemark> + <% end %> + <% @commercials.each do |stop_area| %> + <Placemark id="<%= stop_area.objectid %>:Commercials" > + <%= render :partial => "stop_area", :locals => { :stop_area => stop_area} %> + </Placemark> + <% end %> + <% @physicals.each do |stop_area| %> + <Placemark id="<%= stop_area.objectid %>:Physicals" > + <%= render :partial => "stop_area", :locals => { :stop_area => stop_area} %> + </Placemark> + <% end %> + </Document> +</kml> + diff --git a/config/routes.rb b/config/routes.rb index 238217099..a424bd8de 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -6,6 +6,16 @@ ChouetteIhm::Application.routes.draw do devise_for :users namespace :api do + namespace :kml do + resources :referentials do + resources :stop_areas, :only => [:index, :show] + resources :lines, :only => [:index, :show] do + resources :routes, :only => [:index, :show] + end + end + end + end + namespace :api do namespace :v1 do resources :time_tables, :only => [:index, :show] resources :connection_links, :only => [:index, :show] |
