From: Tom Hughes Date: Wed, 16 Apr 2008 23:52:32 +0000 (+0000) Subject: Merged 7296:7388 from rails_port trunk. X-Git-Tag: live~8832^2~15 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/4cc400de436a5dc33b66bc735b5fb6257e066a5a?hp=f4fa8ed40e608105bac8fa06da3695c688327b51 Merged 7296:7388 from rails_port trunk. --- diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb index 3350e733c..3ef5e753a 100644 --- a/app/controllers/api_controller.rb +++ b/app/controllers/api_controller.rb @@ -79,8 +79,9 @@ class ApiController < ApplicationController exit! end - render :text => doc.to_s, :content_type => "text/xml" + response.headers("Content-Disposition") = "attachment; filename=\"map.osm\"" + render :text => doc.to_s, :content_type => "text/xml" end def map diff --git a/app/controllers/export_controller.rb b/app/controllers/export_controller.rb new file mode 100644 index 000000000..b1d992e6d --- /dev/null +++ b/app/controllers/export_controller.rb @@ -0,0 +1,29 @@ +class ExportController < ApplicationController + def start + render :update do |page| + page.replace_html :sidebar_title, 'Export' + page.replace_html :sidebar_content, :partial => 'start' + end + end + + def finish + bbox = BoundingBox.new(params[:minlon], params[:minlat], params[:maxlon], params[:maxlat]) + format = params[:format] + + if format == "osm" + redirect_to "http://api.openstreetmap.org/api/#{API_VERSION}/map?bbox=#{bbox}" + elsif format == "mapnik" + format = params[:mapnik_format] + scale = params[:mapnik_scale] + + redirect_to "http://tile.openstreetmap.org/cgi-bin/export?bbox=#{bbox}&scale=#{scale}&format=#{format}" + elsif format == "osmarender" + format = params[:osmarender_format] + zoom = params[:osmarender_zoom].to_i + width = bbox.slippy_width(zoom).to_i + height = bbox.slippy_height(zoom).to_i + + redirect_to "http://tah.openstreetmap.org/MapOf/index.php?long=#{bbox.centre_lon}&lat=#{bbox.centre_lat}&z=#{zoom}&w=#{width}&h=#{height}&format=#{format}" + end + end +end diff --git a/app/views/export/_start.rhtml b/app/views/export/_start.rhtml new file mode 100644 index 000000000..11fc61809 --- /dev/null +++ b/app/views/export/_start.rhtml @@ -0,0 +1,243 @@ +<% form_tag :action => "finish" do %> + +

Area to Export

+ +
+ <%= text_field_tag('maxlat', nil, :size => 10, :class => "export_bound") %> +
+ <%= text_field_tag('minlon', nil, :size => 10, :class => "export_bound") %> + <%= text_field_tag('maxlon', nil, :size => 10, :class => "export_bound") %> +
+ <%= text_field_tag('minlat', nil, :size => 10, :class => "export_bound") %> +

+ Drag a box with control held down to select an area to export +

+
+ +

Format to Export

+ +
+

+ <%= radio_button_tag("format", "osm") %>OpenStreetMap XML Data +
+ <%= radio_button_tag("format", "mapnik") %>Mapnik Image +
+ <%= radio_button_tag("format", "osmarender") %>Osmarender Image +

+
+ +
+

Licence

+ +
+

OSM license agreement blah blah blah...

+
+ +
+

Options

+ +
+

Format <%= select_tag("mapnik_format", options_for_select([["PNG", "png"], ["JPEG", "jpeg"], ["SVG", "svg"], ["PDF", "pdf"], ["Postscript", "ps"]], "png")) %>

+

Scale 1 : <%= text_field_tag("mapnik_scale", nil, :size => 8) %> (max 1 : )

+
+
+ +
+

Options

+ +
+

Format <%= select_tag("osmarender_format", options_for_select([["PNG", "png"], ["JPEG", "jpeg"]], "png")) %>

+

Zoom <%= select_tag("osmarender_zoom", options_for_select([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])) %>

+
+
+ +
+

<%= submit_tag "Export", :id => "export_commit" %>

+
+ +<% end %> + + diff --git a/app/views/layouts/site.rhtml b/app/views/layouts/site.rhtml index bcb479cca..c5ecfbd7c 100644 --- a/app/views/layouts/site.rhtml +++ b/app/views/layouts/site.rhtml @@ -36,15 +36,17 @@ <% viewclass = '' editclass = '' + exportclass = '' traceclass = '' viewclass = 'active' if params['controller'] == 'site' and params['action'] == 'index' editclass = 'active' if params['controller'] == 'site' and params['action'] == 'edit' - editclass = 'active' if params['controller'] == 'campaign' + exportclass = 'active' if params['controller'] == 'site' and params['action'] == 'export' traceclass = 'active' if params['controller'] == 'trace' %> -
  • <%= link_to 'View', {:controller => 'site', :action => 'index'}, {:id => 'viewanchor', :title => 'view maps', :class => viewclass } %>
  • -
  • <%= link_to 'Edit', {:controller => 'site', :action => 'edit'}, {:id => 'editanchor', :title => 'edit maps', :class => editclass } %>
  • -
  • <%= link_to 'GPS traces', {:controller => 'trace', :action => 'list'}, {:id => 'traceanchor', :title => 'manage traces', :class => traceclass } %>
  • +
  • <%= link_to 'View', {:controller => 'site', :action => 'index'}, {:id => 'viewanchor', :title => 'view maps', :class => viewclass} %>
  • +
  • <%= link_to 'Edit', {:controller => 'site', :action => 'edit'}, {:id => 'editanchor', :title => 'edit maps', :class => editclass} %>
  • +
  • <%= link_to_remote 'Export', {:url => {:controller => 'export', :action => 'start'}}, {:id => 'exportanchor', :title => 'export map data', :class => exportclass, :href => url_for(:controller => 'site', :action => 'export')} %>
  • +
  • <%= link_to 'GPS traces', {:controller => 'trace', :action => 'list'}, {:id => 'traceanchor', :title => 'manage traces', :class => traceclass} %>
  • diff --git a/app/views/site/_key.rhtml b/app/views/site/_key.rhtml index c6b6fe29a..643099498 100644 --- a/app/views/site/_key.rhtml +++ b/app/views/site/_key.rhtml @@ -12,7 +12,7 @@ else { var imgname = 'keymapnik13.png'; } updateSidebar("Map key", "

    "); - openSidebar("210px"); + openSidebar({ width: "210px" }); } function updateKey() { diff --git a/app/views/site/_sidebar.rhtml b/app/views/site/_sidebar.rhtml index 7addbe177..d81363590 100644 --- a/app/views/site/_sidebar.rhtml +++ b/app/views/site/_sidebar.rhtml @@ -11,19 +11,33 @@