<template>
  <!-- 样式管理器不需要模板内容 -->
</template>

<script setup>
import { Style, Icon } from 'ol/style';

// 导入车辆图标
import carIcon from '../../../assets/images/noPeopleCar.svg'; // 无人车图标
import specialCarIcon from '../../../assets/images/specialCar.svg'; // 特殊车辆图标
import aircraftIcon from '../../../assets/images/aircraft.png'; // 航空器图标
import aircraftRouteIcon from '../../../assets/images/Aircraft1.png';
// 不再使用告警状态图标
// import warningCarIcon from '../../../assets/images/warning_car.png'; // 预警车辆图标
// import alarmCarIcon from '../../../assets/images/alarm_car.png'; // 告警车辆图标
// import criticalCarIcon from '../../../assets/images/warning_car.png'; // 越界车辆图标（使用warning_car.png替代）
// import speedCarIcon from '../../../assets/images/warning_car.png'; // 超速车辆图标（使用warning_car.png替代）

// 不再使用航空器告警图标
// import warningAircraftIcon from '../../../assets/images/aircraft.png'; 
// import alarmAircraftIcon from '../../../assets/images/aircraft.png'; 
// import criticalAircraftIcon from '../../../assets/images/aircraft.png'; 
// import speedAircraftIcon from '../../../assets/images/aircraft.png'; 

// 定义props
const props = defineProps({
  vehicles: Object
});

const DEFAULT_ICON_SCALE = 1.0;
const AIRCRAFT_ICON_SCALE = DEFAULT_ICON_SCALE * 1.3;

// 获取车辆样式
function getVehicleStyle(id, speed, heading) {
  const vehicle = props.vehicles[id];
  if (!vehicle) return createDefaultStyle(carIcon, heading);
  
  // 根据车辆类型选择图标
  let iconSrc;
  
  if (vehicle.isAircraft) {
    // 航空器使用航空器图标
    iconSrc = vehicle.hasAircraftRoute ? aircraftRouteIcon : aircraftIcon;
  } else if (vehicle.isUnmannedVehicle || vehicle.type === '无人车' || vehicle.type === 'UNMANNED_VEHICLE') {
    // 无人车使用noPeopleCar.svg
    iconSrc = carIcon;
  } else {
    // 其他车辆使用specialCar.svg
    iconSrc = specialCarIcon;
  }
  
  // 创建样式
  return createDefaultStyle(iconSrc, heading, vehicle.isAircraft ? AIRCRAFT_ICON_SCALE : DEFAULT_ICON_SCALE);
}

// 创建默认样式
function createDefaultStyle(iconSrc, heading, scale = DEFAULT_ICON_SCALE) {
  // 确保heading是有效的数值
  const validHeading = heading !== undefined ? Number(heading) : 0;
  
  // 统一使用(heading - 72)的偏移量计算旋转角度
  const rotationRad = ((validHeading - 72) * Math.PI) / 180;
  
  // 添加调试信息
  console.log(`VehicleStyleManager: heading=${validHeading}, rotation=${rotationRad}弧度, ${rotationRad * 180 / Math.PI}度`);
  
  return new Style({
    image: new Icon({
      src: iconSrc,
      scale,
      anchor: [0.5, 0.5],
      rotation: rotationRad, // 使用统一的旋转角度计算
    })
  });
}

// 暴露方法
defineExpose({
  getVehicleStyle
});
</script>
