Vikipedi, özgür ansiklopedi
Bu modül beta sürüm olup maddelerde kullanıma hazır durumdadır. Kullanılabilir durumda olmasına karşın hâlen tam sürüm olmaması nedeniyle beklendiği şekilde çalışmayabileceği göz önünde bulundurulmalıdır.
-- This module implements/replaces
-- [[Template:Lunar quadrangle]]
-- [[Template:Mars quadrangle]]
-- [[Template:Venus quadrangle]]
local p = {}
local function moonquad ( lat , lon )
local function LQ ( n )
if n < 10 then
return 'LQ0' .. n
else
return 'LQ' .. n
end
end
-- Note: requires positive longitude coordinates
if lat > 65 then
return LQ ( 1 )
elseif lat > 30 then
if lon >= 180 then
return LQ ( 2 + math.floor ( ( lon - 180 ) / 60 ) )
else
return LQ ( 5 + math.floor ( lon / 60 ) )
end
elseif lat >= 0 then
if lon >= 180 then
return LQ ( 8 + math.floor ( ( lon - 180 ) / 45 ) )
else
return LQ ( 12 + math.floor ( lon / 45 ) )
end
elseif lat >= - 30 then
if lon >= 180 then
return LQ ( 16 + math.floor ( ( lon - 180 ) / 45 ) )
else
return LQ ( 20 + math.floor ( lon / 45 ) )
end
elseif lat >= - 65 then
if lon >= 180 then
return LQ ( 24 + math.floor ( ( lon - 180 ) / 60 ) )
else
return LQ ( 27 + math.floor ( lon / 60 ) )
end
else
return LQ ( 30 )
end
return 'Error'
end
local function marsquad ( lat , lon )
-- Note: requires positive longitude coordinates
if lat > 65 then
return 'Mare Boreum'
elseif lat > 30 then
if lon < 60 then return 'Ismenius Lacus'
elseif lon < 120 then return 'Casius'
elseif lon < 180 then return 'Cebrenia'
elseif lon < 240 then return 'Diacria'
elseif lon < 300 then return 'Arcadia'
else return 'Mare Acidalium' end
elseif lat >= 0 then
if lon < 45 then return 'Arabia'
elseif lon < 90 then return 'Syrtis Major'
elseif lon < 135 then return 'Amenthes'
elseif lon < 180 then return 'Elysium'
elseif lon < 225 then return 'Amazonis'
elseif lon < 270 then return 'Tharsis'
elseif lon < 315 then return 'Lunae Palus'
else return 'Oxia Palus' end
elseif lat >= - 30 then
if lon < 45 then return 'Sinus Sabaeus'
elseif lon < 90 then return 'Iapygia'
elseif lon < 135 then return 'Mare Tyrrhenum'
elseif lon < 180 then return 'Aeolis'
elseif lon < 225 then return 'Memnonia'
elseif lon < 270 then return 'Phoenicis Lacus'
elseif lon < 315 then return 'Coprates'
else return 'Margaritifer Sinus' end
elseif lat >= - 65 then
if lon < 60 then return 'Noachis'
elseif lon < 120 then return 'Hellas'
elseif lon < 180 then return 'Eridania'
elseif lon < 240 then return 'Phaethontis'
elseif lon < 300 then return 'Thaumasia'
else return 'Argyre' end
else
return 'Mare Australe'
end
end
local function mercuryquad ( lat , lon )
-- Note: requires positive longitude coordinates
if lat >= 66 then
return 'Borealis'
elseif lat >= 21 then
if lon < 90 then return 'Hokusai'
elseif lon < 180 then return 'Raditladi'
elseif lon < 270 then return 'Shakespeare'
else return 'Victoria' end
elseif lat > - 21 then
if lon < 72 then return 'Derain'
elseif lon < 144 then return 'Eminescu'
elseif lon < 216 then return 'Tolstoj'
elseif lon < 288 then return 'Beethoven'
else return 'Kuiper' end
elseif lat > - 66 then
if lon < 90 then return 'Debussy'
elseif lon < 180 then return 'Neruda'
elseif lon < 270 then return 'Michelangelo'
else return 'Discovery' end
else
return 'Bach'
end
return 'Error'
end
local function venusquad ( lat , lon )
-- Note: requires positive longitude coordinates
if lat > 57 then
return 'Ishtar Terra'
elseif lat >= 0 then
if lon < 60 or lon >= 300 then return 'Sedna Planitia'
elseif lon < 180 then return 'Niobe Planitia'
else return 'Guinevere Planitia' end
elseif lat >= - 57 then
if lon < 60 or lon >= 300 then return 'Lavinia Planitia'
elseif lon < 180 then return 'Aphrodite Terra'
else return 'Helen Planitia' end
else
return 'Lada Terra'
end
end
local function quad_name ( lat , lon , globe )
-- lower case
globe = globe : lower () or ''
-- convert to numbers
lat = tonumber ( lat ) or ''
lon = tonumber ( lon ) or ''
-- get the quad name
if lat ~= '' and lon ~= '' and globe ~= '' then
if lon < 0 then lon = lon + 360 end
if lon < 0 or lon > 360 then
return 'Error'
end
if globe == 'mars' then
return marsquad ( lat , lon )
elseif globe == 'mercury' then
return mercuryquad ( lat , lon )
elseif globe == 'moon' then
return moonquad ( lat , lon )
elseif globe == 'venus' then
return venusquad ( lat , lon )
end
end
return 'Error'
end
function p . category ( frame )
local args = frame . args
local res = quad_name ( args [ 'lat' ] or '' , args [ 'lon' ] or '' , args [ 'globe' ] or '' )
if res ~= 'Error' then
if args [ 'nameonly' ] and args [ 'nameonly' ] ~= '' then
return res
else
return '[[Kategori:' .. res .. ' dörtgeni]]'
end
end
return '<span class="error">Hata</span>'
end
function p . name ( frame )
local args = frame . args
local res = quad_name ( args [ 'lat' ] or '' , args [ 'lon' ] or '' , args [ 'globe' ] or '' )
if res ~= 'Error' then
return res
end
return '<span class="error">Hata</span>'
end
return p