Java 工具类:风向度数(角度°)转风向,附风向16方位图

导读:本篇文章讲解 Java 工具类:风向度数(角度°)转风向,附风向16方位图,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

 

目录

前言

风向图例

Java 风向度数转风向工具类


前言

开发过程中,经常会遇到风向数据处理,大都是风向的度数(°),如果直接进行展示,对用户来说不太友好,因此大都会转换成风向。


风向图例

 常见风向描述分为以下2类,可以选择合适的展示方式使用:

风向类型一:”北”, “东北偏北”, “东北”, “东北偏东”, “东”, “东南偏东”, “东南”, “东南偏南”, “南”,
            “西南偏南”, “西南”, “西南偏西”, “西”, “西北偏西”, “西北”, “西北偏北”

风向类型二:”北”, “北东北”, “东北”, “东东北”, “东”, “东东南”, “东南”, “南东南”, “南”,
            “南西南”, “西南”, “西西南”, “西”, “西西北”, “西北”, “北西北” 

以下为风向16方位图:

Java 工具类:风向度数(角度°)转风向,附风向16方位图

   N    北    0°
    NNE    东北偏北    22.5°
    NE    东北    45°
    ENE    东北偏东    67.5°
    E    东    90°
    ESE    东南偏东    112.5°
    SE    东南    135°
    SSE    东南偏南    157.5°
    S    南    180°
    SSW    西南偏南    202.5°
    SW    西南    225°
    WSW    西南偏西    247.5°
    W    西    270°
    WNW    西北偏西    292.5°
    NW    西北    315°
    NNW    西北偏北    337.5° 


Java 风向度数转风向工具类

 以下为风向度数转风向代码。

/**
 * 风向转换工具类
 * @author 我是有多懒
 * @since 2022-05-31
 */
@Slf4j
public class WindDirectionUtil {

    //风向描述类型一
    private static final String[] directArrOne = new String[]{
            "北", "东北偏北", "东北", "东北偏东", 
            "东", "东南偏东", "东南", "东南偏南", 
            "南", "西南偏南", "西南", "西南偏西", 
            "西", "西北偏西", "西北", "西北偏北"};

    //风向描述类型二
    private static final String[] directArrTwo = new String[]{
            "北", "北东北", "东北", "东东北", 
            "东", "东东南", "东南", "南东南", 
            "南", "南西南", "西南", "西西南", 
            "西", "西西北", "西北", "北西北"};

    /**
     * 风向角度转具体风向
     * @param degrees 风向角度 0 <= degrees <= 360
     * @return 具体风向
     */
    public static String windDirectionSwitch(float degrees) {
        int index = 0;
        if (348.75 <= degrees && degrees <= 360) {
            index = 0;
        } else if (0 <= degrees && degrees <= 11.25) {
            index = 0;
        } else if (11.25 < degrees && degrees <= 33.75) {
            index = 1;
        } else if (33.75 < degrees && degrees <= 56.25) {
            index = 2;
        } else if (56.25 < degrees && degrees <= 78.75) {
            index = 3;
        } else if (78.75 < degrees && degrees <= 101.25) {
            index = 4;
        } else if (101.25 < degrees && degrees <= 123.75) {
            index = 5;
        } else if (123.75 < degrees && degrees <= 146.25) {
            index = 6;
        } else if (146.25 < degrees && degrees <= 168.75) {
            index = 7;
        } else if (168.75 < degrees && degrees <= 191.25) {
            index = 8;
        } else if (191.25 < degrees && degrees <= 213.75) {
            index = 9;
        } else if (213.75 < degrees && degrees <= 236.25) {
            index = 10;
        } else if (236.25 < degrees && degrees <= 258.75) {
            index = 11;
        } else if (258.75 < degrees && degrees <= 281.25) {
            index = 12;
        } else if (281.25 < degrees && degrees <= 303.75) {
            index = 13;
        } else if (303.75 < degrees && degrees <= 326.25) {
            index = 14;
        } else if (326.25 < degrees && degrees < 348.75) {
            index = 15;
        } else {
            log.error("风向角度[{}] 大于 360", degrees);
        }
        return directArrOne[index];
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/114736.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!