月球大数据地理空间分析展示平台-【后端】-月球后台服务
1
13693261870
2024-11-13 a088987e7ab7005db1bb1da61dfc0cf420e02d78
src/main/java/com/moon/server/helper/GeoHelper.java
@@ -16,11 +16,7 @@
import java.awt.geom.Point2D;
/**
 * Geo帮助类
 * @author WWW
 * @date 2023-09-14
 */
@SuppressWarnings("ALL")
public class GeoHelper {
    public static SpatialReference sr4326;
@@ -34,9 +30,6 @@
    private final static Log log = LogFactory.getLog(GeoHelper.class);
    /**
     * 初始化坐标系
     */
    public static void initSr() {
        try {
            sr4326 = new SpatialReference();
@@ -53,9 +46,6 @@
        }
    }
    /**
     * 获取距离
     */
    public static double getDistance(double x1, double y1, double x2, double y2) {
        GeodeticCalculator geodeticCalculator = new GeodeticCalculator(crs104903);
        geodeticCalculator.setStartingGeographicPoint(x1, y1);
@@ -64,9 +54,6 @@
        return geodeticCalculator.getOrthodromicDistance();
    }
    /**
     * 获取距离2
     */
    public static double getDistance2(double lon1, double lat1, double lon2, double lat2) {
        double radLat1 = Math.toRadians(lat1);
        double radLat2 = Math.toRadians(lat2);
@@ -77,16 +64,10 @@
        return s * MOON_RADIUS;
    }
    /**
     * 获取方向角
     */
    public static double getBearing(double x1, double y1, double x2, double y2) {
        return (90 - Math.toDegrees(Math.atan2(x2 - x1, y2 - y1)) + 360) % 360;
    }
    /**
     * 获取角度
     */
    public static double getAngle(double x1, double y1, double x2, double y2) {
        DirectPosition2D p1 = new DirectPosition2D(crs104903, x1, y1);
        DirectPosition2D p2 = new DirectPosition2D(crs104903, x2, y2);
@@ -98,9 +79,6 @@
        return gc.getAzimuth();
    }
    /**
     * 获取角度2
     */
    public static double getAngle2(double x1, double y1, double x2, double y2) {
        DirectPosition2D p1 = new DirectPosition2D(x1, y1);
        DirectPosition2D p2 = new DirectPosition2D(x2, y2);
@@ -112,9 +90,6 @@
        return gc.getAzimuth();
    }
    /**
     * 根据距离和角度获取目标点
     */
    public static Point2D getPointByDistanceAndAngle(double x, double y, double angle, double distance) {
        DirectPosition2D p1 = new DirectPosition2D(x, y);
@@ -125,9 +100,6 @@
        return gc.getDestinationGeographicPoint();
    }
    /**
     * 坐标转换
     */
    public static double[] csTransform(double x, double y, int epsg) throws Exception {
        CRSAuthorityFactory factory = CRS.getAuthorityFactory(true);
        CoordinateReferenceSystem target = factory.createCoordinateReferenceSystem("EPSG:4326");