Refactor calculation of zoom level based on a scale
This commit is contained in:
parent
701325e9ef
commit
2c397321c9
3 changed files with 12 additions and 8 deletions
|
@ -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)
|
||||
|
|
|
@ -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 %>
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue