如何在matlab中计算地球上两点之间的中点?

82ビュ(過去30日間)
已知两点的经纬度,如何有效地求出中点?
我的问题是有数百万个点对需要计算....
2件のコメント
詹姆斯Tursa
詹姆斯Tursa 2015 年 7 月 9 日
編集済み:詹姆斯Tursa 2015 年 7 月 9 日
一个大圆圆弧的中点假设是一个球体?还是别的什么?
您的数据是如何存储的?

サ▪▪ン▪▪ンしてコメントする。

採用された回答

穆罕默德Abouali
穆罕默德Abouali 2015 年 7 月 10 日
編集済み:穆罕默德Abouali 2015 年 7 月 10 日
这个页面 你会发现很多有用的公式。你要找的那个点在那一页上叫做“中点”。您有JavaScript代码,但是实现相当容易
% lat1,lat2,lon1,lon2应该是弧度
Bx = cos(lat2) * cos(lon2-lon1);
By = cos(lat2) * sin(lon2-lon1);
latMid = atan2(sin(lat1) + sin(lat2),...
√(cos(lat1)+Bx)*(cos(lat1)+Bx) + By*By));
lonMid = lon1 + atan2(By, cos(lat1) + Bx);
1件のコメント
泰德•舒尔茨
泰德•舒尔茨 2019 年 8 月 20 日
这里是由穆罕默德提供的公式的matlab代码,但都是度。通常,lat/lon是度数,所以这个几乎相同的代码更容易使用。
函数[latMid, lonMid] = midpointLatLon(lat1, lon1, lat2, lon2)
圆球上两拉长绳的中点,单位均为度
Bx = cosd(lat2) * cosd(lon2-lon1);
By = cosd(lat2) * sind(lon2-lon1);
latMid = atan2d(sind(lat1) + sind(lat2),...
√(cosd lat1) + Bx) * (cosd (lat1) + Bx) +通过*));
lonMid = lon1 + atan2d(By, cosd(lat1) + Bx);

サ▪▪ン▪▪ンしてコメントする。

その他の回答(1件)

泰德•舒尔茨
泰德•舒尔茨 2019 年 8 月 20 日
在matlab映射工具箱中有一个内置函数,它做了我认为你正在寻找的事情: meanm
地理坐标的平均位置
语法
[latmean,lonmean] = mean (latat,lon)
[latmean,lonmean] = mean (latmean,lon,单位)
[latmean,lonmean] = mean (latmean,lon,椭球)

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!

翻译的