从文件中检索exif数据时,坐标将以3个数字的数组的形式提供给您.
i.exif['gps_latitude']
=> ["6/1", "4/1", "911/50"]
Run Code Online (Sandbox Code Playgroud)
这需要转换为更常见的浮动格式以供一般使用.
我能想到的最直接的方法是将字符串转换为Rational数字:
arr = ["6/1", "4/1", "911/50"]
d, m, s = arr.map(&:to_r)
#=> [(6/1), (4/1), (911/50)]
Run Code Online (Sandbox Code Playgroud)
并通过以下方式计算十进制度的值:
lat = d + m / 60 + s / 3600
#=> (1092911/180000)
Run Code Online (Sandbox Code Playgroud)
要获取浮点值:
lat.to_f
#=> 6.071727777777777
Run Code Online (Sandbox Code Playgroud)