将方向(N、S、SE、SSE 等)转换为方位角

Convert orientation (N, S, SE, SSE etc) to bearing angle

ruby 或 gem 中是否有将具有方向的字符串(标题中的示例)转换为以度为单位的方位角的功能,方位角定义如下?

A numerical value representing the direction in degrees, with true north at 0° and progressing clockwise.

这适用于 8 个主要方向:

def cardinal_direction_degrees(s)
  h = {n: 0, ne: 45, e: 90, se: 135, s: 180, sw: 225, w: 270, nw: 315}
  h[s.to_s.downcase.to_sym]
end

puts cardinal_direction_degrees('N') #=> 0
puts cardinal_direction_degrees('SW') #=> 225

您可以通过向散列中添加更多元素来轻松添加剩余的方向。