2023-04-01 10:00:13 +08:00

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