如何在Scribunto中将"42°33'N, 1°33'E"转换为"42.55|1.55"(MediaWiki托管的Lua)



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

相关内容

  • 没有找到相关文章

最新更新