package com.ard.utils.other; import org.gavaghan.geodesy.Ellipsoid; import org.gavaghan.geodesy.GeodeticCalculator; import org.gavaghan.geodesy.GlobalCoordinates; /** * @Description: gis工具类 * @ClassName: GisUtils * @Author: 刘苏义 * @Date: 2023年07月03日15:23 * @Version: 1.0 **/ public class GisUtils { /** * 通过A点坐标,长度和Y轴角度计算B点坐标 */ public static Double[] CalculateCoordinates(Double[] radarCoordinates, Double distance, Double angle) { double[] to_wgs84 = LonlatConver.gcj02_To_Wgs84(radarCoordinates[0], radarCoordinates[1]); double Ax = to_wgs84[0]; // A 点的 X 坐标 double Ay = to_wgs84[1]; // A 点的 Y 坐标 double AB = distance; // AB 的长度 double angleWithYAxisDegrees = angle; // AB 与 Y 轴的角度(以度数表示) GeodeticCalculator calculator = new GeodeticCalculator(); GlobalCoordinates globalCoordinates = new GlobalCoordinates(Ay, Ax); GlobalCoordinates globalCoordinates1 = calculator.calculateEndingGlobalCoordinates(Ellipsoid.WGS84, globalCoordinates, angleWithYAxisDegrees, AB); return new Double[]{globalCoordinates1.getLongitude(), globalCoordinates1.getLatitude()}; } }