new support for box=yes param on the homepage, and then link to this from various...
authorHarry Wood <mail@harrywood.co.uk>
Wed, 8 Apr 2009 16:55:22 +0000 (16:55 +0000)
committerHarry Wood <mail@harrywood.co.uk>
Wed, 8 Apr 2009 16:55:22 +0000 (16:55 +0000)
app/views/browse/_changeset_details.rhtml
app/views/changeset/_changeset.rhtml
app/views/changeset/list.rhtml
app/views/changeset/list_bbox.rhtml
app/views/changeset/list_user.rhtml
app/views/site/index.rhtml
public/javascripts/map.js

index 5b724012abd4d5807c170ea528e5b4477e7e0d70..07f076e21e13bdb15695d23392fc08e90ea5bf88 100644 (file)
     <th>Bounding box:</th>
     <% if changeset_details.max_lat.nil? or changeset_details.min_lat.nil? or changeset_details.max_lon.nil? or changeset_details.min_lon.nil? %>
       <td>No bounding box has been stored for this changeset.</td>
-    <% else %>
+    <%
+       else
+          minlon = changeset_details.min_lon/GeoRecord::SCALE.to_f
+          minlat = changeset_details.min_lat/GeoRecord::SCALE.to_f
+          maxlon = changeset_details.max_lon/GeoRecord::SCALE.to_f
+          maxlat = changeset_details.max_lat/GeoRecord::SCALE.to_f
+    %>
       <td>
         <table>
           <tr>
-            <td colspan="2" style="text-align:center"><%= changeset_details.max_lat/GeoRecord::SCALE.to_f -%></td>
+            <td colspan="3" style="text-align:center"><%=maxlat -%></td>
           </tr>
           <tr>
-            <td><%= changeset_details.min_lon/GeoRecord::SCALE.to_f -%></td>
-            <td><%= changeset_details.max_lon/GeoRecord::SCALE.to_f -%></td>
+            <td><%=minlon -%></td>
+            <td>(<a href='/?minlon=<%= minlon %>&minlat=<%= minlat %>&maxlon=<%= maxlon %>&maxlat=<%= maxlat %>&box=yes' title='show area box'>box</a>)</td>
+            <td><%=maxlon -%></td>
           </tr>
           <tr>
-            <td colspan="2" style="text-align:center"><%= changeset_details.min_lon/GeoRecord::SCALE.to_f -%></td>
+            <td colspan="3" style="text-align:center"><%= minlon -%></td>
           </tr>
         </table>
       </td>
index 049be5d33ebcb225f183f0f591b0dfc8fe151c53..a149a72e90b8db6dba796a87b17aa006bf421e4e 100644 (file)
     <% if changeset.min_lat.nil? %>
       (no edits)
     <% else 
-      lat1 = changeset.min_lat/GeoRecord::SCALE.to_f
-      lat2 = changeset.max_lat/GeoRecord::SCALE.to_f
-      lon1 = changeset.min_lon/GeoRecord::SCALE.to_f
-      lon2 = changeset.max_lon/GeoRecord::SCALE.to_f
+      minlon = changeset.min_lon/GeoRecord::SCALE.to_f
+      minlat = changeset.min_lat/GeoRecord::SCALE.to_f
+      maxlon = changeset.max_lon/GeoRecord::SCALE.to_f
+      maxlat = changeset.max_lat/GeoRecord::SCALE.to_f
     %>
-      (<a href='/?lat=<%= lat1 %>&lon=<%= lon1 %>&zoom=14'><%= format("%0.3f",lat1) -%>,<%= format("%0.3f",lon1) -%></a>) to 
-      (<a href='/?lat=<%= lat2 %>&lon=<%= lon2 %>&zoom=14'><%= format("%0.3f",lat2) -%>,<%= format("%0.3f",lon2) -%></a>) 
+      (<a href='/?minlon=<%= minlon %>&minlat=<%= minlat %>&maxlon=<%= maxlon %>&maxlat=<%= maxlat %>&box=yes' title='show area box'><%= format("%0.3f",minlon) -%>,<%= format("%0.3f",minlat) -%>,<%= format("%0.3f",maxlon) -%>,<%= format("%0.3f",maxlat) -%></a>) 
   <% end %>
   </td>
 
index aa0d92758a08278569d8fc497cedcbef66e19676..4ac5082e1ca434e327ca74aefbd0b90c4f834414 100644 (file)
@@ -16,4 +16,4 @@
 <p>
 For more changesets, select a user and view their edits, or see the editing 'history' of a specific area.
 </p>
-
+<br>
index 63e54e11d10bfca92df2e2ef9a2de146b32c5593..e1cf9aedb36b87f7883467fd3f7586b702b1dae7 100644 (file)
@@ -1,16 +1,16 @@
 <h1>History</h1>
 <%
 if @bbox!=nil
-       lon1 = @bbox[0] 
-       lat1 = @bbox[1] 
-       lon2 = @bbox[2]
-       lat2 = @bbox[3] 
+       minlon = @bbox[0] 
+       minlat = @bbox[1] 
+       maxlon = @bbox[2]
+       maxlat = @bbox[3] 
 
        %>
 <p>
 Changesets within the area: 
-(<a href='/?lat=<%= lat1 %>&lon=<%= lon1 %>&zoom=14'><%= format("%0.3f",lat1) -%>,<%= format("%0.3f",lon1) -%></a>) to 
-(<a href='/?lat=<%= lat2 %>&lon=<%= lon2 %>&zoom=14'><%= format("%0.3f",lat2) -%>,<%= format("%0.3f",lon2) -%></a>)   
+      (<a href='/?minlon=<%= minlon %>&minlat=<%= minlat %>&maxlon=<%= maxlon %>&maxlat=<%= maxlat %>&box=yes' title='show area box'><%= format("%0.3f",minlon) -%>,<%= format("%0.3f",minlat) -%>,<%= format("%0.3f",maxlon) -%>,<%= format("%0.3f",maxlat) -%></a>) 
+
 </p>
 
 <%     if @edits.nil? or @edits.empty? %>
@@ -32,6 +32,9 @@ Changesets within the area:
 </table>
 
 <%= render :partial => 'changeset_paging_nav' %>
+
+<p>For all changes everywhere see <%=  link_to("Recent Changes", :controller => "browse", :action => "changesets") %> </p>
+
 <%
        end
 
@@ -47,4 +50,4 @@ else
 end
 %>
 <br>
-<br>
+
index 2f3ca04ce1b239ea8eec2610b588f8f7149041dd..386423a565fb8804a27e8abaca10324801ca9126 100644 (file)
@@ -16,3 +16,7 @@
 </table>
 <%= render :partial => 'changeset_paging_nav' %>
 <% end %>
+
+<p>For changes by all users see <%=  link_to("Recent Changes", :controller => "browse", :action => "changesets") %> </p>
+<br>
+
index 35509f4e0c071d994a6407401cf45cc52f7e6e17..66f69960b496540e561f8bf50881dfe0f3210243 100644 (file)
@@ -45,6 +45,7 @@ if params['minlon'] and params['minlat'] and params['maxlon'] and params['maxlat
        minlat = h(params['minlat'])
        maxlon = h(params['maxlon'])
        maxlat = h(params['maxlat'])
+       box = true if params['box']=="yes" 
 end
 
 # Decide on a lat lon to initialise the map with. Various ways of doing this
@@ -109,13 +110,16 @@ end
     var bbox = new OpenLayers.Bounds(<%= minlon %>, <%= minlat %>, <%= maxlon %>, <%= maxlat %>);
 
     setMapExtent(bbox);
+    <%    if box %>
+    box = addBoxToMap(bbox);
+    <%    end %>
     <% else %>
     var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
     var zoom = <%= zoom %>;
 
-    <% if params['scale'] and params['scale'].length > 0 then %>
+    <%    if params['scale'] and params['scale'].length > 0 then %>
     zoom = scaleToZoom(<%= params['scale'].to_f() %>);
-    <% end %>
+    <%    end %>
 
     setMapCenter(centre, zoom);
     <% end %>
index a25564f0d97dd1d282cd73f4b71e3544ef40164a..a52cd0a7047dcd43006ae2bd68466b5d8e64affe 100644 (file)
@@ -1,6 +1,7 @@
 var epsg4326 = new OpenLayers.Projection("EPSG:4326");
 var map;
 var markers;
+var vectors;
 var popup;
 
 var nonamekeys = {
@@ -82,6 +83,17 @@ function createMap(divName, options) {
       projection: "EPSG:900913"
    });
    map.addLayer(markers);
+   
+   vectors = new OpenLayers.Layer.Vector("Vectors", {
+      displayInLayerSwitcher: false,
+      numZoomLevels: numZoomLevels,
+      maxExtent: new OpenLayers.Bounds(-20037508,-20037508,20037508,20037508),
+      maxResolution: 156543,
+      units: "m",
+      projection: "EPSG:900913"
+   });
+   map.addLayer(vectors);
+   
 
    return map;
 }
@@ -106,6 +118,19 @@ function addMarkerToMap(position, icon, description) {
    return marker;
 }
 
+function addBoxToMap(boxbounds) {      
+   box = new OpenLayers.Feature.Vector(
+            boxbounds.toGeometry().transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()) );
+   
+   box.style = {
+         'strokeWidth': 3,
+         'strokeColor': '#0000ff',
+         'fillOpacity': 0,
+       };
+   vectors.addFeatures(box);
+   return box;
+}
+
 function openMapPopup(marker, description) {
    closeMapPopup();
 
@@ -129,6 +154,10 @@ function removeMarkerFromMap(marker){
    markers.removeMarker(marker);
 }
 
+function removeBoxFromMap(box){
+   vectors.removeFeature(box);
+}
+
 function getMapCenter(center, zoom) {
    return map.getCenter().clone().transform(map.getProjectionObject(), epsg4326);
 }