package com.qaup.collision.dataprocessing.service;

import org.springframework.stereotype.Service;

import com.qaup.collision.dataprocessing.config.CoordinateSystemProperties;

@Service
public class CoordinateSystemService {

    private final AirportCoordinateSystem airportCoordinateSystem;

    public CoordinateSystemService(CoordinateSystemProperties properties) throws Exception {
        this.airportCoordinateSystem = new AirportCoordinateSystem(
            properties.getCenterLongitude(),
            properties.getCenterLatitude()
        );
        System.out.println("坐标转换服务已经初始化成功！");
    }

    /**
     * 将WGS84坐标系下的经纬度转换为以机场中心为原点的局部坐标系坐标
     *
     * @param longitude WGS84坐标系下的经度
     * @param latitude WGS84坐标系下的纬度
     * @return 局部坐标系下的坐标，数组中第一个元素为x坐标（东向），第二个元素为y坐标（北向）
     * @throws Exception 如果坐标转换过程中发生错误
     */
    public double[] convertToLocalCoordinate(double longitude, double latitude) throws Exception {
        return airportCoordinateSystem.convertToLocal(longitude, latitude);
    }
}
