Java根据经纬度获取正方形范围

需求:提供经纬度点位,获取点位为中心的正方形。

 /**
     * 根据经纬度,获取正方形四个点位
     *
     * @param longitude 经度
     * @param latitude  纬度
     * @param distance  范围(米)
     * @return
     */
    public static Map returnLLSquarePoint(double longitude, double latitude, double distance) {
        Map squareMap = new HashMap();
        // 计算经度弧度,从弧度转换为角度
        double dLongitude = 2 * (Math.asin(Math.sin(distance / (2 * 6378137)) / Math.cos(Math.toRadians(latitude))));
        dLongitude = Math.toDegrees(dLongitude);
        // 计算纬度角度
        double dLatitude = distance / 6378137;
        dLatitude = Math.toDegrees(dLatitude);
        // 正方形
        //左上角
        double[] leftTopPoint = {latitude + dLatitude, longitude - dLongitude};
        //右上角
        double[] rightTopPoint = {latitude + dLatitude, longitude + dLongitude};
        //左下角
        double[] leftBottomPoint = {latitude - dLatitude, longitude - dLongitude};
        //右下角
        double[] rightBottomPoint = {latitude - dLatitude, longitude + dLongitude};
        squareMap.put("leftTopPoint", leftTopPoint);
        squareMap.put("rightTopPoint", rightTopPoint);
        squareMap.put("leftBottomPoint", leftBottomPoint);
        squareMap.put("rightBottomPoint", rightBottomPoint);
        return squareMap;
    }

你可能感兴趣的:(java,经纬度,java)