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