Scribunto是一个MediaWiki托管的Lua版本 我相信这是相当标准的Lua。
我希望convert geographic coordinates采用以下格式:
42°33'N, 1°33'E
...以这种格式:
42.55|1.55
如何在Scribunto中执行此操作?
答案 0 :(得分:2)
这假定输入字符串严格地符合帖子中的表格。如果存在任何可变性,例如它可以省略分钟,包括秒,纬度和经度可以不同的方式分开,或者其他什么,模式需要改变。
function translate_coords(str)
assert(type(str)=="string")
local patt = "(%d+)°(%d+)'([NS]), (%d+)°(%d+)'([WE])"
local latd,latm,latdir,lngd,lngm,lngdir = string.match(str,patt)
assert(latd and latm and latdir)
assert(lngd and lngm and lngdir)
latd = latdir=="S" and -latd or latd
lngd = lngdir=="W" and -lngd or lngd
return ""..(latd+latm/60).."|"..(lngd+lngm/60)
end