package com.ld.igds.protocol.bhzn.utils; import lombok.extern.slf4j.Slf4j; /** * 风向转换工具类 * @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]; } }