gpx rss and gpx cleanups
This commit is contained in:
parent
dd1f94e341
commit
e5f292cf21
5 changed files with 44 additions and 15 deletions
|
@ -3,11 +3,12 @@ class TraceController < ApplicationController
|
|||
layout 'site'
|
||||
|
||||
def list
|
||||
@traces = Trace.find(:all, :conditions => ['public = true'])
|
||||
end
|
||||
|
||||
def mine
|
||||
@traces = Trace.find(:all, :conditions => ['user_id = ?', @user.id])
|
||||
@page = params[:page].to_i
|
||||
if @page > 0
|
||||
@traces = Trace.find(:all , :conditions => ['public = true'], :order => 'timestamp DESC', :offset => 20*@page, :limit => 20)
|
||||
else
|
||||
@traces = Trace.find(:all , :conditions => ['public = true'], :order => 'timestamp DESC', :limit => 20)
|
||||
end
|
||||
end
|
||||
|
||||
def view
|
||||
|
@ -41,7 +42,16 @@ class TraceController < ApplicationController
|
|||
def georss
|
||||
traces = Trace.find(:all, :conditions => ['public = true'], :order => 'timestamp DESC', :limit => 20)
|
||||
|
||||
rss = OSM::GeoRSS.new
|
||||
|
||||
#def add(latitude=0, longitude=0, title_text='dummy title', url='http://www.example.com/', description_text='dummy description', timestamp=Time.now)
|
||||
traces.each do |trace|
|
||||
rss.add(trace.latitude, trace.longitude, trace.name, url_for({:controller => 'trace', :action => 'view', :id => trace.id, :display_name => trace.user.display_name}), "<img src='#{url_for({:controller => 'trace', :action => 'icon', :id => trace.id, :user_login => trace.user.display_name})}'> GPX file with #{trace.size} points from #{trace.user.display_name}", trace.timestamp)
|
||||
end
|
||||
|
||||
response.headers["Content-Type"] = 'application/xml+rss'
|
||||
|
||||
render :text => rss.to_s
|
||||
end
|
||||
|
||||
def picture
|
||||
|
|
|
@ -2,22 +2,20 @@
|
|||
<% cl = cycle('table0', 'table1') %>
|
||||
<td class="<%= cl %>">
|
||||
<% if trace.inserted %>
|
||||
<a href="<%= url_for :controller => 'trace', :action => 'view', :id => trace.id, :user_login => trace.user.display_name %>">
|
||||
<img src="<%= url_for :controller => 'trace', :action => 'icon', :id => trace.id, :user_login => trace.user.display_name %>" border="0">
|
||||
</a>
|
||||
<a href="<%= url_for :controller => 'trace', :action => 'view', :id => trace.id, :user_login => trace.user.display_name %>"><img src="<%= url_for :controller => 'trace', :action => 'icon', :id => trace.id, :user_login => trace.user.display_name %>" border="0"></a>
|
||||
<% end %>
|
||||
</td>
|
||||
<td class="<%= cl %>"><%= link_to trace.name, {:controller => 'trace', :action => 'view', :id => trace.id} %>
|
||||
<td class="<%= cl %>"><%= link_to trace.name, {:controller => 'trace', :action => 'view', :display_name => trace.user.display_name, :id => trace.id} %>
|
||||
<span class="gpxsummary" title="<%= trace.timestamp %>"> ...
|
||||
<% if trace.inserted %>
|
||||
(<%= trace.size %> points)
|
||||
<% end %>
|
||||
... <%= time_ago_in_words( trace.timestamp ) %> ago</span>
|
||||
<a href="/traces/user/blars/12701" title="more detail..." >more</a> /
|
||||
<%= link_to 'more', {:controller => 'trace', :action => 'view', :display_name => trace.user.display_name, :id => trace.id} %> /
|
||||
<a href="/edit.html?lat=34.1032333&lon=-118.2272333&zoom=14" title="create maps">map</a><br />
|
||||
<%= trace.description %>
|
||||
<br />
|
||||
by <%= link_to trace.user.display_name, {:controller => 'trace', :action => 'list', :user => trace.user.display_name} %>
|
||||
by <%= link_to trace.user.display_name, {:controller => 'trace', :action => 'list', :display_name => trace.user.display_name} %>
|
||||
in
|
||||
<% if trace.tags %>
|
||||
<% trace.tags.each do |tag| %>
|
||||
|
|
|
@ -1,8 +1,27 @@
|
|||
<h1>Public GPS Traces</h1>
|
||||
|
||||
<br /><br />
|
||||
|
||||
<span class="rsssmall"><a href="<%= url_for :controller => 'trace', :action => 'georss' %>"><img src="http://www.openstreetmap.org/images/RSS.gif" border="0"></a></span> |
|
||||
<% if @user %>
|
||||
<%= link_to 'See just your traces', {:controller => 'trace', :action => 'mine'} %>
|
||||
<% else %>
|
||||
<%= link_to 'login', {:controller => 'user', :action => 'login'} %> to see just your traces
|
||||
<% end %>
|
||||
|
||||
|
||||
<br /><br />
|
||||
Showing page
|
||||
<% if @page > 0 %>
|
||||
<%= link_to '<<<', {:controller => 'trace', :action => 'list', :page => @page-1}, {:title => 'previous page'} %>
|
||||
<% end %>
|
||||
|
||||
<%= @page %>
|
||||
|
||||
<%= link_to '>>>', {:controller => 'trace', :action => 'list', :page => @page+1}, {:title => 'next page'} %>
|
||||
|
||||
(<%= 1+(@page * 20)%>-<%= (1+@page) * 20 %>)
|
||||
|
||||
<table id="keyvalue" cellpadding="3">
|
||||
<tr>
|
||||
<th></th>
|
||||
|
|
|
@ -31,10 +31,12 @@ ActionController::Routing::Routes.draw do |map|
|
|||
|
||||
# traces
|
||||
map.connect '/traces', :controller => 'trace', :action => 'list'
|
||||
map.connect '/traces/page/:page', :controller => 'trace', :action => 'list'
|
||||
map.connect '/traces/mine', :controller => 'trace', :action => 'mine'
|
||||
map.connect '/traces/user/:user_login/:id', :controller => 'trace', :action => 'view', :id => nil
|
||||
map.connect '/traces/user/:user_login/:id/picture', :controller => 'trace', :action => 'picture', :id => nil
|
||||
map.connect '/traces/user/:user_login/:id/icon', :controller => 'trace', :action => 'icon', :id => nil
|
||||
map.connect '/traces/rss', :controller => 'trace', :action => 'georss'
|
||||
map.connect '/traces/user/:display_name/:id', :controller => 'trace', :action => 'view', :id => nil
|
||||
map.connect '/traces/user/:display_name/:id/picture', :controller => 'trace', :action => 'picture', :id => nil
|
||||
map.connect '/traces/user/:display_name/:id/icon', :controller => 'trace', :action => 'icon', :id => nil
|
||||
|
||||
# fall through
|
||||
map.connect ':controller/:action/:id'
|
||||
|
|
|
@ -298,7 +298,7 @@ module OSM
|
|||
|
||||
lon_el = XML::Node.new 'geo:lon'
|
||||
lon_el << longitude.to_s
|
||||
item << lat_el
|
||||
item << lon_el
|
||||
|
||||
@channel << item
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue