我有来自OpenWeatherMap API的风向数据,数据以0到360度表示.我想将其转换为文本格式
I have wind direction data coming from OpenWeatherMap API, and the data is represented in 0 to 360 degrees. I want to convert this into text format
function toTextualDescription(degree){
if ((degree>337.5 && degree<360)|| (degree>22.5 && degree<22.5))
{return 'Northerly';}
else if(degree>22.5 && degree<67.5){return 'North Easterly';}
else if(degree>67.5 && degree<112.5){return 'Easterly';}
else if(degree>122.5 && degree<157.5){return 'South Easterly';}
else if(degree>157.5 && degree<202.5){return 'Southerly';}
else if(degree>202.5 && degree<247.5){return 'South Westerly';}
else if(degree>247.5 && degree<292.5){return 'Westerly';}
else if(degree>292.5 && degree<337.5){return 'North Westerly';}
}
https://compuweather.com/files/2009/10/CompuWeather-Wind-Direction-Compass-Chart.pdf在上面的链接上,您可以找到方向表示,我想将AS,北,东北,东,东南,南,西南,西和西北的文本度更改为文本,您能提出更好的方法吗?我正在使用Javascript。
if
语句中不需要太多检查。此外,你不需要其他如果,因为返回将在适当的位置结束函数执行。
function toTextualDescription(degree){
if (degree>337.5) return 'Northerly';
if (degree>292.5) return 'North Westerly';
if(degree>247.5) return 'Westerly';
if(degree>202.5) return 'South Westerly';
if(degree>157.5) return 'Southerly';
if(degree>122.5) return 'South Easterly';
if(degree>67.5) return 'Easterly';
if(degree>22.5){return 'North Easterly';}
return 'Northerly';
}
let compassSector = ["N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW", "N"];
weather.windDirection = compassSector[(data.wind.deg / 22.5).toFixed(0)];
这是一种使用扇区名称数组的方法。 这也适用于值 <0 和> 360
function toTextualDescription(degree) {
var sectors = ['Northerly','North Easterly','Easterly','South Easterly','Southerly','South Westerly','Westerly','North Westerly'];
degree += 22.5;
if (degree < 0)
degree = 360 - Math.abs(degree) % 360;
else
degree = degree % 360;
var which = parseInt(degree / 45);
return sectors[which];
}
console.log("0: " + toTextualDescription(0));
console.log("-30: " + toTextualDescription(-30));
console.log("900: " + toTextualDescription(900));
console.log("22.4999: " + toTextualDescription(22.4999));
console.log("22.5: " + toTextualDescription(22.5));
console.log("359: " + toTextualDescription(359));
相关文章:
- React中的数据集表示
- 如何在ember数据模型中表示数组
- 在 Javascript 中表示复杂/嵌套数据
- 用于在表和报表的发件人中表示 CSV 文件数据的工具
- 文字与原型对象表示法的数据结构
- 表示可用产品的所有组合的数据结构
- Immutable.js:表示2D游戏场的数据结构
- 我有来自OpenWeatherMap API的风向数据,数据以0到360度表示.我想将其转换为文本格式
- 表示.js部分呈现数据 EJS
- AngularJS:数据绑定和点表示法
- 单独 HTML 文件的占位符表示法,用于创建网页的一小部分并将占位符替换为数据值
- 如何更新表示相同数据的两个不同React组件实例
- 骨干关系型,使用mysql数据将模型表示为表行
- 专注于“;行“;其中2行表示1个数据集
- 用于大数据表示的Javascript网格
- 简单的JS树数据结构表示
- Angular ngrid数据表示
- 如何在richselect中配置数据表示
- 意外的数据表示形式
- Google Charts Javascript 文字数据表示法给出“Not a array”错误