java實現根據經緯度算距離,java計算經緯度

本文目錄一覽:

java 里 兩點的經度緯度怎麼算距離

/**

* 計算地球上任意兩點(經緯度)距離

*

* @param long1

* 第一點經度

* @param lat1

* 第一點緯度

* @param long2

* 第二點經度

* @param lat2

* 第二點緯度

* @return 返回距離 單位:米

*/

public static double Distance(double long1, double lat1, double long2,

double lat2) {

double a, b, R;

R = 6378137; // 地球半徑

lat1 = lat1 * Math.PI / 180.0;

lat2 = lat2 * Math.PI / 180.0;

a = lat1 – lat2;

b = (long1 – long2) * Math.PI / 180.0;

double d;

double sa2, sb2;

sa2 = Math.sin(a / 2.0);

sb2 = Math.sin(b / 2.0);

d = 2

* R

* Math.asin(Math.sqrt(sa2 * sa2 + Math.cos(lat1)

* Math.cos(lat2) * sb2 * sb2));

return d;

}

java如何用經緯度計算兩點水平和垂直距離

/** 

 * 計算地球上任意兩點(經緯度)距離 

 *  

 * @param long1 

 *            第一點經度 

 * @param lat1 

 *            第一點緯度 

 * @param long2 

 *            第二點經度 

 * @param lat2 

 *            第二點緯度 

 * @return 返回距離 單位:米 

 */  

public static double Distance(double long1, double lat1, double long2,  

        double lat2) {  

    double a, b, R;  

    R = 6378137; // 地球半徑  

    lat1 = lat1 * Math.PI / 180.0;  

    lat2 = lat2 * Math.PI / 180.0;  

    a = lat1 – lat2;  

    b = (long1 – long2) * Math.PI / 180.0;  

    double d;  

    double sa2, sb2;  

    sa2 = Math.sin(a / 2.0);  

    sb2 = Math.sin(b / 2.0);  

    d = 2  

            * R  

            * Math.asin(Math.sqrt(sa2 * sa2 + Math.cos(lat1)  

                    * Math.cos(lat2) * sb2 * sb2));  

    return d;  

}

如何根據經緯度計算距離的java代碼

思路是:通過傳入地址作為參數拼接url調用百度地圖,然後解析返回的頁面,提取經緯度坐標。以下為具體步驟1、修改excel表中的屬性名(方便後面用查詢讀取)然後倒入到數據庫。2、代碼實現

JAVA,已知當前經緯度和距離,計算符合距離條件的經度最大值、最小值和緯度的最大值、最小值。

//拿走不謝

private final static double R = 6370996.81;

private final static double PI = 3.14159265;

private final static double RAD = Math.PI / 180.0;

/// summary

/// 根據提供的經度和緯度、以及半徑,取得此半徑內的最大最小經緯度

/// /summary

/// param name=”lat”緯度/param

/// param name=”lon”經度/param

/// param name=”raidus”半徑(米)/param

/// returns/returns

public static double[] GetAround(double lat, double lon, int raidus)

{

Double latitude = lat;

Double longitude = lon;

Double degree = (24901 * 1609) / 360.0;

double raidusMile = raidus;

Double dpmLat = 1 / degree;

Double radiusLat = dpmLat * raidusMile;

Double minLat = latitude – radiusLat;

Double maxLat = latitude + radiusLat;

Double mpdLng = degree * Math.cos(latitude * (PI / 180));

Double dpmLng = 1 / mpdLng;

Double radiusLng = dpmLng * raidusMile;

Double minLng = longitude – radiusLng;

Double maxLng = longitude + radiusLng;

return new double[] { minLat, minLng, maxLat, maxLng };

}

/// summary

/// 根據提供的兩個經緯度計算距離(米)

/// /summary

/// param name=”lng1″經度1/param

/// param name=”lat1″緯度1/param

/// param name=”lng2″經度2/param

/// param name=”lat2″緯度2/param

/// returns/returns

public static double GetDistance(double lng1, double lat1, double lng2, double lat2)

{

double radLat1 = lat1 * RAD;

double radLat2 = lat2 * RAD;

double a = radLat1 – radLat2;

double b = (lng1 – lng2) * RAD;

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 * R;

s = Math.round(s * 10000) / 10000;

return s;

}

原創文章,作者:RAFK,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/133435.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
RAFK的頭像RAFK
上一篇 2024-10-03 23:58
下一篇 2024-10-03 23:58

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論