update
This commit is contained in:
parent
0bcf481b95
commit
8f9213e53d
@ -93,6 +93,13 @@ double gctl::geographic_area(double lon1, double lon2, double lat1, double lat2,
|
||||
return fabs(R*R*(arc(lon2) - arc(lon1))*(sind(lat2) - sind(lat1)));
|
||||
}
|
||||
|
||||
double gctl::geographic_distance(double lon1, double lon2, double lat1, double lat2, double R)
|
||||
{
|
||||
double n1 = arc(lon1), n2 = arc(lon2), t1 = arc(lat1), t2 = arc(lat2);
|
||||
double a = sin(0.5*(t2 - t1)), b = sin(0.5*(n2 - n1));
|
||||
return 2*R*asin(sqrt(a*a + cos(t1)*cos(t2)*b*b));
|
||||
}
|
||||
|
||||
double gctl::ellipse_radius_2d(double x_len, double y_len, double arc, double x_arc)
|
||||
{
|
||||
if (fabs(x_len - y_len) < 1e-8) // 就是个圆 直接加
|
||||
|
@ -83,6 +83,18 @@ namespace gctl
|
||||
*/
|
||||
double geographic_area(double lon1, double lon2, double lat1, double lat2, double R);
|
||||
|
||||
/**
|
||||
* @brief 计算两个经纬度点之间的距离
|
||||
*
|
||||
* @param lon1 经度起点
|
||||
* @param lon2 经度终点
|
||||
* @param lat1 纬度起点
|
||||
* @param lat2 纬度终点
|
||||
* @param R 半径
|
||||
* @return 面积
|
||||
*/
|
||||
double geographic_distance(double lon1, double lon2, double lat1, double lat2, double R);
|
||||
|
||||
/**
|
||||
* @brief 计算一个椭圆在不同位置的半径
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user