aijinhui
2023-11-10 6b2c648f3bf251a03b3124f347e42edfd9357469
ard-work/src/main/java/com/ruoyi/utils/gis/GisUtil.java
@@ -26,6 +26,15 @@
        GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo);
        return geodeticCalculator.calculateGeodeticCurve(Ellipsoid.WGS84, source, target).getEllipsoidalDistance();
    }
    public static double getDistance(Double[] From, Double[] To) {
        double longitudeFrom = From[0];
        double latitudeFrom = From[1];
        double longitudeTo = To[0];
        double latitudeTo = To[1];
        GlobalCoordinates source = new GlobalCoordinates(latitudeFrom, longitudeFrom);
        GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo);
        return geodeticCalculator.calculateGeodeticCurve(Ellipsoid.WGS84, source, target).getEllipsoidalDistance();
    }
    /**
     * 根据经纬度,计算两点间的距离
     *
@@ -108,6 +117,7 @@
        }
        return IsPtInPoly(point,pointList);
    }
    /**
     * 判断点是否在多边形内,如果点位于多边形的顶点或边上,也算做点在多边形内,直接返回true
     * @param point 检测点
@@ -181,7 +191,7 @@
    public static void main(String[] args) {
        // 125.097531,46.60029, 125.124731,46.584808
        //相机位置
        double[] camera = {125.146964331147,46.5580925811216,102};//经度,纬度,高度
       /* double[] camera = {125.146964331147,46.5580925811216,102};//经度,纬度,高度
        //看向的位置
        double[] lookAt = {125.155449,46.555108,0};//经度,纬度,高度
@@ -189,7 +199,16 @@
        double viewWidth = 150;//相机视域宽度
        double[] ptz = GisUtil.getCameraPTZ(camera, lookAt, viewAngle, viewWidth);
        System.out.println("ptz:" + Arrays.toString(ptz));
        System.out.println("ptz:" + Arrays.toString(ptz));*/
      //  double[] camera = {125.153903999999997,46.5600799999999992,258.430000000000007};
        GlobalCoordinates camera = new GlobalCoordinates(45.755847,126.640557);
        double p = 39.71;
        double distance = 164;
        GlobalCoordinates point = getGlobalCoordinates(camera, p, distance);
        System.out.println("point:");
        System.out.println("lon:"+point.getLongitude());
        System.out.println("lat:"+point.getLatitude());
    }
}
}