tft每日頭條

 > 圖文

 > 兩點經緯度計算兩點間距離實例

兩點經緯度計算兩點間距離實例

圖文 更新时间:2024-12-02 18:40:05

兩點經緯度計算兩點間距離實例?public class DecimalFormatUtil { //地球平均半徑 private static final double EARTH_RADIUS = 6378.137; //把經緯度轉為度(°) private static double rad(double d) { return d * Math.PI / 180.0; } /** * 通過經緯度獲取距離(單位:) * ulongitude 用戶所在 -- 經度 * ulatitude 用戶所在 -- 緯度 * latitude 發布等 -- 緯度 * longitude 發布等 -- 經度 * @return 距離 */ public static double getDistance(double ulongitude, double longitude,double ulatitude, double latitude) { double radLat1 = rad(ulongitude); double radLat2 = rad(longitude); double a = radLat1 - radLat2; double b = rad(ulatitude) - rad(latitude); double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); s = s * EARTH_RADIUS; s = s / 1000; DecimalFormat df = new DecimalFormat("#.00"); s = Double.parseDouble(df.format(s)); return s; } public static void main(String[] args) { double distance1 = getDistance(104.046115, 30.6030110000, 104.074666, 30.611842); System.out.println("Distance is: " distance1 " km"); } },我來為大家科普一下關于兩點經緯度計算兩點間距離實例?以下内容希望對你有幫助!

兩點經緯度計算兩點間距離實例(通過經緯度判斷兩點的距離)1

兩點經緯度計算兩點間距離實例

Util

public class DecimalFormatUtil { //地球平均半徑 private static final double EARTH_RADIUS = 6378.137; //把經緯度轉為度(°) private static double rad(double d) { return d * Math.PI / 180.0; } /** * 通過經緯度獲取距離(單位:) * ulongitude 用戶所在 -- 經度 * ulatitude 用戶所在 -- 緯度 * latitude 發布等 -- 緯度 * longitude 發布等 -- 經度 * @return 距離 */ public static double getDistance(double ulongitude, double longitude,double ulatitude, double latitude) { double radLat1 = rad(ulongitude); double radLat2 = rad(longitude); double a = radLat1 - radLat2; double b = rad(ulatitude) - rad(latitude); double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); s = s * EARTH_RADIUS; s = s / 1000; DecimalFormat df = new DecimalFormat("#.00"); s = Double.parseDouble(df.format(s)); return s; } public static void main(String[] args) { double distance1 = getDistance(104.046115, 30.6030110000, 104.074666, 30.611842); System.out.println("Distance is: " distance1 " km"); } }

SQL

SELECT title, longitude, latitude, ROUND( 6378.138 * 2 * ASIN( SQRT( POW( SIN( ( 30.611842 * PI() / 180 - latitude * PI() / 180 ) / 2 ), 2 ) COS(30.611842 * PI() / 180) * COS(latitude * PI() / 180) * POW( SIN( ( 104.074666 * PI() / 180 - longitude * PI() / 180 ) / 2 ), 2 ) ) ) * 1000 ) AS distance_um FROM mac_rent_in ORDER BY distance_um ASC

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved