Android下如何計算兩經緯點之間距離?

2021-08-27 17:18:33 字數 1413 閱讀 2950

路線規劃提供了獲取路線距離的方法,見mkrouteplan 類的 getdistance 方法。

如果是計算任意兩點的距離,自2.0.0版本開始,android sdk為開發者提供了計算距離的介面(distanceutil),具體使用方法如下:

geopoint p1ll = new geopoint(39971802, 116347927);

geopoint p2ll = new geopoint(39892131, 116498555);

double distance = distanceutil.getdistance(p1ll, p2ll);一、利用勾股定理計算,適用於兩點距離很近的情況;

二、按標準的球面大圓劣弧長度計算,適用於距離較遠的情況;

static double def_pi = 3.14159265359; // pi

static double def_2pi = 6.28318530712; // 2*pi

static double def_pi180 = 0.01745329252; // pi/180.0

static double def_r = 6370693.5; // radius of earth

/*** 第一種方式,按勾股定律求結果

* @param lon1

* @param lat1

* @param lon2

* @param lat2

* @return

* todo [email protected]

*/public double getshortdistance(double lon1, double lat1, double lon2,

double lat2)

/*** 第二種方式,按大圓劣弧求距離

* @param lon1

* @param lat1

* @param lon2

* @param lat2

* @return

* todo [email protected]

*/public double getlongdistance(double lon1, double lat1, double lon2,

double lat2)

//以下是測試

double mlat1 = 39.90923; // point1緯度

double mlon1 = 116.357428; // point1經度

double mlat2 = 39.90923;// point2緯度

double mlon2 = 116.397428;// point2經度

double distance = getshortdistance(mlon1, mlat1, mlon2, mlat2);

mysql 下 計算 兩點 經緯度 之間的距離

公式如下,單位公尺 第一點經緯度 lng1 lat1 第二點經緯度 lng2 lat2 round 6378.138 2 asin sqrt pow sin lat1 pi 180 lat2 pi 180 2 2 cos lat1 pi 180 cos lat2 pi 180 pow sin lng...

給定經緯度計算距離 根據兩點經緯度計算距離

根據兩點經緯度計算距離 這些經緯線是怎樣定出來的呢?地球是在不停地繞地軸旋轉 地軸是一根通過地 球南北兩極和地球中心的 假想線 在地球中腰畫乙個與地軸垂直的大圓圈,使圈上的每一點都和南北兩 極的距離相等,這個圓圈 就叫作 赤道 在赤道的南北兩邊,畫出許多和赤道平行的圓圈,就是 緯 圈 構成這些圓圈的...

計算兩經緯度之間的距離

今天有個任務是在請求商家詳情的時候需要求使用者離商家的距離 也就是計算兩經緯度之間的距離,套用了下面的公式解決了問題 public class distance private final static double pi 3.14159265358979323 圓周率 private final ...