JAVA 根據經緯度算出附近的正方形的四個角的經緯度


  /**
     * 
     * @param longitude    經度
     * @param latitude    緯度
     * @param distance    范圍(米)
     * @return
     */
    public static Map<String, double[]> returnLLSquarePoint(double longitude,  double latitude, double distance) {
        Map<String, double[]> squareMap = new HashMap<String, double[]>();
        // 計算經度弧度,從弧度轉換為角度
        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);
        System.out.println("leftTop:"+leftTopPoint[0]+"======"+leftTopPoint[1]);
        System.out.println("rightTop:"+rightTopPoint[0]+"======"+rightTopPoint[1]);
        System.out.println("leftBottom:"+leftBottomPoint[0]+"======"+leftBottomPoint[1]);
        System.out.println("rightBottom:"+rightBottomPoint[0]+"======"+rightBottomPoint[1]);
        return squareMap;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM