Die Dokumentation für dieses Modul kann unter Modul:CoordUtil/Doku erstellt werden
Die Dokumentation für dieses Modul kann unter Modul:CoordUtil/Doku erstellt werden
local p = {};
function p.dms2dec(frame)
-- #!/usr/bin/env lua
-- Lua 5.1 or greater
-- see module doc
-- example Lima: 12° 2' 46.9464" S 77° 2' 34.0548" W
-- result: "-12.046374|-77.042793"
local loc=frame.args
local x,D,M,S,d,m,s,lat,lon
x=loc and loc[1] or io.read("*l")
x=string.gsub(string.gsub(x,"N,","N"),"S,","S")
x=string.gsub(x,",",".")
-- print(x)
D,M,S,d,m,s=string.match(x,string.rep("([0-9.-]+)[^0-9.-]+",6))
-- print(D,M,S,d,m,s)
lat=math.abs(D)+M/60+S/3600
lon=math.abs(d)+m/60+s/3600
-- print(lat,lon)
function xor(a,b) return a and not b or not a and b end
if xor(tonumber(D)<0,string.find(x,"S")) then lat=-lat end
if xor(tonumber(d)<0,string.find(x,"W")) then lon=-lon end
if loc and loc[2]=="lat" then return lat end
if loc and loc[2]=="lon" then return lon end
return lat .. "|" .. lon
end;
function p.dms2lat(frame)
local loc=frame.args
local x,D,M,S,d,m,s,lat,lon
x=loc and loc[1] or io.read("*l")
x=string.gsub(string.gsub(x,"N,","N"),"S,","S")
x=string.gsub(x,",",".")
D,M,S,d,m,s=string.match(x,string.rep("([0-9.-]+)[^0-9.-]+",6))
lat=math.abs(D)+M/60+S/3600
function xor(a,b) return a and not b or not a and b end
if xor(tonumber(D)<0,string.find(x,"S")) then lat=-lat end
return lat
end;
function p.dms2lon(frame)
local loc=frame.args
local x,D,M,S,d,m,s,lat,lon
x=loc and loc[1] or io.read("*l")
x=string.gsub(string.gsub(x,"N,","N"),"S,","S")
x=string.gsub(x,",",".")
D,M,S,d,m,s=string.match(x,string.rep("([0-9.-]+)[^0-9.-]+",6))
lon=math.abs(d)+m/60+s/3600
function xor(a,b) return a and not b or not a and b end
if xor(tonumber(d)<0,string.find(x,"W")) then lon=-lon end
return lon
end;
return p
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.