以乙個經緯度為中心計算出四個頂點

2022-09-01 02:03:10 字數 1780 閱讀 5470

public const double earth_radius = 6378137.0;//地球半徑(m)

///

/// 以乙個經緯度為中心計算出四個頂點

///

/// 半徑(公尺)

///

public static degree getdegreecoordinates(degree degree1, double distance)

;///

/// 角度數轉換為弧度公式

///

///

///

private static double radians(double d)

///

/// 弧度轉換為角度數公式

///

///

///

private static double degrees(double d)

///

/// 代表經度, 緯度

///

public class poin

// 緯度 x

private double lat;

// 經度 y

private double lng;

///

/// 代表緯度 x軸

///

public double lat

///

/// 代表經度 y軸

///

public double lng

public double radlat }

public double radlng }

}///

/// 經緯度座標

///

public class degree

private double x;

public double x

set

}private double y;

public double y

set }}

///

/// 計算座標點的距離

///

public void getdistance()

{//x經度 y緯度

string enbid = "";

double distance = 0;

double x1 = convertoradian(31.499605);

double x2 = convertoradian(31.4996);

double y1 = convertoradian(104.73775);

double y2 = convertoradian(104.73783);

double d = 0;

if (math.sin(x1) * math.sin(x2) + math.cos(x1) * math.cos(x2) * math.cos(y1 - y2) > 1)

d = earth_radius * math.acos(1);

else if (math.sin(x1) * math.sin(x2) + math.cos(x1) * math.cos(x2) * math.cos(y1 - y2) < -1)

d = earth_radius * math.acos(-1);

else

d = earth_radius * math.acos(math.sin(x1) * math.sin(x2) + math.cos(x1) * math.cos(x2) * math.cos(y1 - y2));

根據經緯度 角度 距離獲取另乙個點的經緯度

這就需要根據獲取到的經緯度獲取計算半徑內4個點的座標 計算方法 phppublic static function getrandlnglat lng,lat,angle,distance 其實高德地圖提供了方法,使用很簡單 amap.event.addlistener placesearch,ma...

關於經緯度的兩個計算 Teaks xgluxv

一 子午線周長 公里 40008.548 赤道周長 公里 40075.704 緯度40008.548 360 度 111.135 公里 度 40008.548 360 60 分 1.85 公里 分 40008.548 360 60 60 秒 30.87 公尺 秒 經度首先算相應經度位置的緯度圈長度 ...

關於經緯度的兩個計算 Teaks xgluxv

一 子午線周長 公里 40008.548 赤道周長 公里 40075.704 緯度40008.548 360 度 111.135 公里 度 40008.548 360 60 分 1.85 公里 分 40008.548 360 60 60 秒 30.87 公尺 秒 經度首先算相應經度位置的緯度圈長度 ...