风向度数

dev
Jing Li 2023-08-06 14:23:17 +08:00
parent a7e3d37ae5
commit 378c166ea9
2 changed files with 18 additions and 9 deletions

View File

@ -10,6 +10,15 @@ class MeteorologicalMonitoringLog extends Model
{ {
use HasFactory; use HasFactory;
const WIND_DIRECTION_NORTH = 0;
const WIND_DIRECTION_NORTHEAST = 1;
const WIND_DIRECTION_EAST = 2;
const WIND_DIRECTION_SOUTHEAST = 3;
const WIND_DIRECTION_SOUTH = 4;
const WIND_DIRECTION_SOUTHWEST = 5;
const WIND_DIRECTION_WEST = 6;
const WIND_DIRECTION_NORTHWEST = 7;
protected $casts = [ protected $casts = [
'wind_direction' => WindDirection::class, 'wind_direction' => WindDirection::class,
'monitored_at' => 'datetime', 'monitored_at' => 'datetime',

View File

@ -182,23 +182,23 @@ class BiAngDeviceLogService
break; break;
case 'wind_degree': case 'wind_degree':
$attributes[$attribute] = value(function ($v) { $attributes['wind_direction'] = value(function ($v) {
if ($v >= 22.5 && $v < 67.5) { if ($v >= 22.5 && $v < 67.5) {
return MeteorologicalMonitoringDailyLog::WIND_DIRECTION_NORTHEAST; return MeteorologicalMonitoringLog::WIND_DIRECTION_NORTHEAST;
} elseif ($v >= 67.5 && $v < 112.5) { } elseif ($v >= 67.5 && $v < 112.5) {
return MeteorologicalMonitoringDailyLog::WIND_DIRECTION_EAST; return MeteorologicalMonitoringLog::WIND_DIRECTION_EAST;
} elseif ($v >= 112.5 && $v < 157.5) { } elseif ($v >= 112.5 && $v < 157.5) {
return MeteorologicalMonitoringDailyLog::WIND_DIRECTION_SOUTHEAST; return MeteorologicalMonitoringLog::WIND_DIRECTION_SOUTHEAST;
} elseif ($v >= 157.5 && $v < 202.5) { } elseif ($v >= 157.5 && $v < 202.5) {
return MeteorologicalMonitoringDailyLog::WIND_DIRECTION_SOUTH; return MeteorologicalMonitoringLog::WIND_DIRECTION_SOUTH;
} elseif ($v >= 202.5 && $v < 247.5) { } elseif ($v >= 202.5 && $v < 247.5) {
return MeteorologicalMonitoringDailyLog::WIND_DIRECTION_SOUTHWEST; return MeteorologicalMonitoringLog::WIND_DIRECTION_SOUTHWEST;
} elseif ($v >= 247.5 && $v < 292.5) { } elseif ($v >= 247.5 && $v < 292.5) {
return MeteorologicalMonitoringDailyLog::WIND_DIRECTION_WEST; return MeteorologicalMonitoringLog::WIND_DIRECTION_WEST;
} elseif ($v >= 292.5 && $v < 337.5) { } elseif ($v >= 292.5 && $v < 337.5) {
return MeteorologicalMonitoringDailyLog::WIND_DIRECTION_NORTHWEST; return MeteorologicalMonitoringLog::WIND_DIRECTION_NORTHWEST;
} }
return MeteorologicalMonitoringDailyLog::WIND_DIRECTION_NORTH; return MeteorologicalMonitoringLog::WIND_DIRECTION_NORTH;
}, $v); }, $v);
default: default:
$attributes[$attribute] = $v; $attributes[$attribute] = $v;