已知一點經緯度,方位角,距離,求另一點經緯度

2021-10-17 14:57:56 字數 1694 閱讀 7302

/*

* 大地座標系資料wgs-84 長半徑a=6378137 短半徑b=6356752.3142 扁率f=1/298.2572236

*//**

* 長半徑a=6378137 公尺

*/public static double a = 6378137;

/*** 半徑 公里

*/private static double earth_radius = 6378.137;

/*** 短半徑b=6356752.3142

*/public static double b = 6356752.3142;

/*** 扁率f=1/298.2572236

*/public static double f = 1 / 298.2572236;

/*** 已知一點經緯度,方位角,距離,求另一點經緯度

* 通過三角函式求終點座標-球面座標系

* * 角度

*起點* 距離(公尺)

* 終點座標

*/public static double getendpointbytrigonometric(double angle, double startpoint, double distance)

double tmp = sinu1 * sinsigma - cosu1 * cossigma * cosalpha1;

double lat2 = math.atan2(sinu1 * cossigma + cosu1 * sinsigma * cosalpha1,

(1 - f) * math.sqrt(sinalpha * sinalpha + tmp * tmp));

double lambda = math.atan2(sinsigma * sinalpha1, cosu1 * cossigma - sinu1 * sinsigma * cosalpha1);

double c = f / 16 * cossqalpha * (4 + f * (4 - 3 * cossqalpha));

double l = lambda - (1 - c) * f * sinalpha

* (sigma + c * sinsigma * (cos2sigmam + c * cossigma * (-1 + 2 * cos2sigmam * cos2sigmam)));

double revaz = math.atan2(sinalpha, -tmp); // final bearing

// system.out.println(revaz);

// system.out.println(lon + deg(l) + "," + deg(lat2));

double endpoint=new double[2];

endpoint[0]=lon + deg(l);

endpoint[1]= deg(lat2);

return endpoint;

}/**

* 度換成弧度

* @param d 度

* @return 弧度

*/public static double rad(double d)

/*** 弧度換成度

* @param x 弧度

* @return 度

*/public static double deg(double x)

sql 已知兩點的經緯度,求距離

sql server 查詢已知座標方圓500公尺的記錄 test表名 id varchar 50 unchecked name nvarchar 50 checked jing varchar 50 checked wei varchar 50 checked 已知點的經度 113.914619 已...

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

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

經緯度一點與經緯度兩點之間測最短距離

如果有數學基礎,看到這個圖就應該懂了。首先,拿到兩個經緯度計算x,y軸各自的差值 36.679430 36.633990 xn 116.952210 117.054860 yn 拿到x,y軸各自的差值之後,計算向下移動幾個點位。平均分就可以,xn 4,yn 4 我只取3個中間點,所除以4,如果想要精...