VPNkeyXchange/voronoi/test_voronoi.awk

44 lines
772 B
Awk
Executable File

#!/usr/bin/awk -f
function rad(deg) {
return deg * 3.14159265 / 180.0
}
function arccos(x) {
return 2 * atan2(sqrt(1 - x*x) / (1 + x), 1)
}
function s(lat1, lon1, lat2, lon2) {
rlat1 = rad(lat1)
rlon1 = rad(lon1)
rlat2 = rad(lat2)
rlon2 = rad(lon2)
# printf("%f %f %f %f\n", rlat1, rlon1, rlat2, rlon2)
return arccos(sin(rlat1)*sin(rlat2) + cos(rlat1)*cos(rlat2)*cos(rlon2 - rlon1))
}
BEGIN {
tlat = ARGV[1]
tlon = ARGV[2]
ARGC = 1
minhood = "Trainstation"
mindist = 99999
}
# match some word, then 2 floats
/(\<.*\>)\s+(-?[0-9]+\.[0-9]+)\s+(-?[0-9]+\.[0-9]+)/{
hood = $1
lat = $2
lon = $3
dist = s(lat, lon, tlat, tlon)
# printf("%22s %f\n", hood, dist)
if (dist < mindist) {
mindist = dist
minhood = hood
}
}
END {
printf("%s\n", minhood)
}