Moduuli:Mapframe-geohack-autozoom

Wikipediasta
Siirry navigaatioon Siirry hakuun

Tämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:Mapframe-geohack-autozoom/ohje

local t={}
function t.geohackzoomlevel(frame)
   local mapframe_zoom=frame.args.mapframe_zoom or "";
   local coord_scale=frame.args.coord_scale or "";
   local area_m2=frame.args.area_m2;
   
   if coord_scale == '-' then
      return ""
   elseif tonumber(coord_scale) then
   	  return coord_scale
   end
   
   if mapframe_zoom == '-' then
      return ""
   elseif tonumber(mapframe_zoom) then
   	  local ret = ""
   	  mapframe_zoom=tonumber(mapframe_zoom)
   	  if     mapframe_zoom >= 15 then ret=3000 
   	  elseif mapframe_zoom >= 13 then ret=10000 
   	  elseif mapframe_zoom == 12 then ret=30000 
   	  end
   	  return ret
   end
   return ""
end

function t.mapframezoomlevel(frame)
   local mapframe_zoom=frame.args.mapframe_zoom or "";
   local coord_scale=frame.args.coord_scale or "";
   local mapframe_default_zoom=frame.args.coord_scale or 8;
   local area_m2=frame.args.area_m2;
   
   if tonumber(mapframe_default_zoom) == nil then
      mapframe_default_zoom=8
   end

   if mapframe_zoom == '-' then
      return ""
   elseif tonumber(mapframe_zoom) then
   	  return mapframe_zoom
   end
   
   if coord_scale == '-' then
      return ""
   elseif tonumber(coord_scale) then
   	  local ret = mapframe_default_zoom
   	  coord_scale=tonumber(coord_scale)
   	  if     coord_scale <= 3000 then ret=15 
   	  elseif coord_scale <= 10000 then ret=13 
   	  elseif coord_scale <= 30000 then ret=10 
   	  elseif coord_scale <= 100000 then ret=8 
   	  elseif coord_scale <= 250000 then ret=7 
   	  end
   	  return ret
   end
   
   area_m2=tonumber(area_m2)
   if area_m2 then
      local ret=mapframe_default_zoom
      if     area_m2 <=3000000 then ret=10
      elseif area_m2 <=30000 then ret=14
      end
      return ret
   end
   return mapframe_default_zoom
end

return t;