63 lines
1.3 KiB
Lua
63 lines
1.3 KiB
Lua
#!/usr/bin/lua
|
|
|
|
function trim(s)
|
|
return (s:gsub("^%s*(.-)%s*$", "%1"))
|
|
end
|
|
|
|
ulat = arg[1]
|
|
ulon = arg[2]
|
|
|
|
url = {}
|
|
slat = {}
|
|
slon = {}
|
|
city = {}
|
|
dist = {}
|
|
prov = {}
|
|
|
|
radius = 6371
|
|
|
|
cnt = 0
|
|
clos = 99999999.99
|
|
index = 0
|
|
file = io.open("/tmp/slist", "r")
|
|
if file ~= nil then
|
|
repeat
|
|
line = file:read("*line")
|
|
if line == nil then
|
|
break
|
|
end
|
|
cnt = cnt + 1
|
|
s, e = line:find(" ")
|
|
if s ~= nil then
|
|
url[cnt] = trim(line:sub(0, s-1))
|
|
cs, ce = line:find(" ", e+1)
|
|
slat[cnt] = trim(line:sub(e, cs-1))
|
|
s, e = line:find(" ", ce+1)
|
|
slon[cnt] = trim(line:sub(ce, s-1))
|
|
cs, ce = line:find("\"", e+1)
|
|
s, e = line:find("\"", ce+1)
|
|
city[cnt] = trim(line:sub(ce+1, s-1))
|
|
prov[cnt] = trim(line:sub(e+1))
|
|
|
|
dlat = math.rad(slat[cnt] - ulat)
|
|
dlon = math.rad(slon[cnt] - ulon)
|
|
a = (math.sin(dlat / 2) * math.sin(dlat / 2) + math.cos(math.rad(ulat)) * math.cos(math.rad(slat[cnt])) * math.sin(dlon / 2) * math.sin(dlon / 2))
|
|
c = 2 * math.atan(math.sqrt(a), math.sqrt(1 - a))
|
|
dist[cnt] = radius * c
|
|
|
|
if dist[cnt] < clos then
|
|
clos = dist[cnt]
|
|
index = cnt
|
|
end
|
|
end
|
|
until 1==0
|
|
file:close()
|
|
tfile = io.open("/tmp/close", "w")
|
|
tfile:write("CURL=\"", url[index], "\"\n")
|
|
tfile:write("CITY=\"", city[index], "\"\n")
|
|
tfile:write("PROV=\"", prov[index], "\"")
|
|
tfile:close()
|
|
end
|
|
|
|
|