package com.zjsgfa.project.zjsgfa.util;

import com.zjsgfa.project.zjsgfa.domain.SjJygjGdsjgdcs;

import java.text.DecimalFormat;
import java.util.List;

/**
 * 垂斜深转换
 */
public class CxszhUtil {

    public static double getCs(List<SjJygjGdsjgdcs> yjMnJygjJgList, double js){

        DecimalFormat df = new DecimalFormat("#.00");

        double cs=0;
        for (int i=0;i<yjMnJygjJgList.size();i++){
            SjJygjGdsjgdcs jg=yjMnJygjJgList.get(i);
            double sd=jg.getJs();
            if (sd>=js){
                if (i == 0){
                    cs=yjMnJygjJgList.get(i).getJs();
                    break;
                }else {


                    // 找到md所在的区间
//                    SurveyPoint prev = surveyPoints.get(i-1);
//                    SurveyPoint curr = surveyPoints.get(i);
//                    double md;    // 斜深(Measured Depth)，单位：米
//                    double inc;   // 井斜角(Inclination)，单位：度
//                    double azim;  // 方位角(Azimuth)，单位：度
//                    double tvd;   // 垂深(True Vertical Depth)，单位：米
//                    double northing; // 北向坐标
//                    double easting;  // 东向坐标
                    // 线性插值计算垂深
                    double ratio = (js - yjMnJygjJgList.get(i-1).getJs()) / (yjMnJygjJgList.get(i).getJs() - yjMnJygjJgList.get(i-1).getJs());
                    cs= yjMnJygjJgList.get(i-1).getCs() + ratio * (yjMnJygjJgList.get(i).getCs() -yjMnJygjJgList.get(i-1).getCs());
                    break;
                }
            }


        }
        if(cs==0){
            return Double.parseDouble(df.format(js));
        }else {
            return Double.parseDouble(df.format(cs));
        }

    }
}
