]> git.openstreetmap.org Git - rails.git/blob - app/views/user/_map.html.erb
a142e99b9b288ddb36192613f3ee034e6c73b52e
[rails.git] / app / views / user / _map.html.erb
1 <%
2 if @user.home_lat.nil? or @user.home_lon.nil?
3   lon = h(params['lon'] || '0') 
4   lat = h(params['lat'] || '20') 
5   zoom = h(params['zoom'] || '1') 
6 else 
7   marker = true
8   mlon = @user.home_lon 
9   mlat = @user.home_lat
10   lon =  @user.home_lon 
11   lat =  @user.home_lat 
12   zoom =  '12'
13 end
14 %>
15
16 <%= javascript_include_tag 'openlayers.js' %>
17 <%= javascript_include_tag 'map.js' %>
18
19 <script type="text/javascript">
20   <!--
21   var marker;
22
23   function init(){
24     var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
25     <% if params[:scale].to_f > 0 then -%>
26     var zoom = <%= scale_to_zoom params[:scale] %>;
27     <% else -%>
28     var zoom = <%= zoom %>;
29     <% end -%>
30
31     var map = createMap("map");
32
33     setMapCenter(centre, zoom);
34
35     <% if marker %>
36     marker = addMarkerToMap(
37       new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>)
38       <% if not setting_location %>
39         , null, '<%=escape_javascript(render(:partial => "popup", :object => @user, :locals => { :type => "your location" })) %>'
40       <% end %>
41     );
42     <% end %>
43     
44     <% if setting_location %>
45     map.events.register("click", map, setHome);
46     <% end %>
47     
48     <% if show_other_users %>
49       <% friends = @user.friends.collect { |f| f.befriendee }.select { |f| !f.home_lat.nil? and !f.home_lon.nil? } %>
50       <% nearest = @user.nearby - friends %>
51
52       var near_icon = OpenLayers.Marker.defaultIcon();
53       near_icon.url = OpenLayers.Util.getImageLocation("marker-green.png");
54       <% nearest.each do |u| %>
55         addMarkerToMap(new OpenLayers.LonLat(
56           <%= u.home_lon %>, <%= u.home_lat %>), near_icon.clone(),
57           '<%= escape_javascript(render(:partial => "popup", :object => u, :locals => { :type => "nearby mapper" })) %>'
58         );
59       <% end %>
60
61       var friend_icon = OpenLayers.Marker.defaultIcon();
62       friend_icon.url = OpenLayers.Util.getImageLocation("marker-blue.png");
63       <% friends.each do |u| %>
64         addMarkerToMap(new OpenLayers.LonLat(
65           <%= u.home_lon %>, <%= u.home_lat %>), friend_icon.clone(),
66           '<%= escape_javascript(render(:partial => "popup", :object => u, :locals => { :type => "friend" })) %>'
67         );
68       <% end %>
69     <% end %>
70   }        
71
72   <% if setting_location %>
73   function setHome( e ) { 
74     closeMapPopup();
75
76     if (document.getElementById('updatehome').checked) {
77       var lonlat = getEventPosition(e);
78
79       document.getElementById('homerow').className = '';
80       document.getElementById('home_lat').value = lonlat.lat;
81       document.getElementById('home_lon').value = lonlat.lon;
82
83       if (marker) {
84         removeMarkerFromMap(marker);
85       }
86
87       marker = addMarkerToMap(lonlat);
88     }
89   }
90   <% end %>
91
92   window.onload = init;
93 // -->
94 </script>