Scribunto是Lua的MediaWiki托管版本。
我相信这是相当标准的Lua。
我想从这种格式转换地理坐标:
42°33'N, 1°33'E
。到这个格式:
42.55|1.55
如何在斯克里邦托做到这一点?
这假设输入字符串严格采用帖子的形式。如果有任何可变性,例如它可以省略分钟,包括秒,纬度和经度可以以不同的方式分开,或者其他什么,模式将需要改变。
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