]> git.openstreetmap.org Git - rails.git/commitdiff
Refactor calculation of zoom level based on a scale
authorTom Hughes <tom@compton.nu>
Wed, 14 Mar 2012 19:12:32 +0000 (19:12 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 14 Mar 2012 19:12:32 +0000 (19:12 +0000)
app/helpers/application_helper.rb
app/views/site/index.html.erb
app/views/user/_map.html.erb

index ce0c5d67bb68d37945d0d42213e92d3ef1f08373..4aec9f5c16811e79f14f68d9133ea9e30341d2a3 100644 (file)
@@ -125,6 +125,10 @@ module ApplicationHelper
     end
   end
 
+  def scale_to_zoom(scale)
+    Math.log(360.0 / (scale.to_f * 512.0)) / Math.log(2.0)
+  end
+
 private
 
   def javascript_strings_for_key(key)
index e268d5d3c8ea4076b3844e1b019a0ae10b081926..6cff7f133fa674700f1bd117c53b3ebf665f5de6 100644 (file)
@@ -151,11 +151,11 @@ end
         <% end %>
       <% else %>
         var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
+        <% if params[:scale].to_f > 0 then -%>
+        var zoom = <%= scale_to_zoom params[:scale] %>;
+        <% else -%>
         var zoom = <%= zoom %>;
-
-        <% if params[:scale] and params[:scale].length > 0 and params[:scale].to_f > 0 then %>
-            zoom = <%= Math.log(360.0 / (params[:scale].to_f * 512.0)) / Math.log(2.0) %>;
-        <% end %>
+        <% end -%>
 
         setMapCenter(centre, zoom);
       <% end %>
index 71f3ad9e5b4e08cf9bb811f9691f12c0dd88c935..2d886527ccf437c2c2b0e5285af2776b9ef82a1f 100644 (file)
@@ -24,11 +24,11 @@ end
 
   function init(){
     var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>);
+    <% if params[:scale].to_f > 0 then -%>
+    var zoom = <%= scale_to_zoom params[:scale] %>;
+    <% else -%>
     var zoom = <%= zoom %>;
-
-    <% if params[:scale] and params[:scale].length > 0 and params[:scale].to_f > 0 then %>
-    zoom = <%= Math.log(360.0 / (params[:scale].to_f * 512.0)) / Math.log(2.0) %>;
-    <% end %>
+    <% end -%>
 
     var map = createMap("map");