matlab - deg2km命令不计算matlab中两点之间的距离
问题描述
我正在尝试计算两个地理坐标之间的距离,并且我想将地理坐标转换为公里。因此我使用deg2km
了函数。但是,我意识到它不能正确转换积分。
例如,我使用了这两点。
p_x=[5; 10]; %degree
p_y=[8; 16]; %degree
pos_y=deg2km(p_y,6378);
pos_x=deg2km(p_x,6378);
它返回为:
pos_x= [556.58549846099 1113.17099692198]
pos_y= [890.536797537587 1781.07359507517]
当我计算sqrt((556.5-1113.2)^2+(890.5368-1781.1)^2)
这些点之间的距离()时,我得到的距离为:1050.2464
但是我查了一下谷歌地图和其他网站,它应该是1042公里。
你有什么建议来计算距离和正确地以公里为单位吗?
提前致谢!
编辑为:
我有点(度),我需要将它们转换为公里并计算点之间的距离。
LAT=[41.000173;41.010134]*pi/180;
LON=[28.995882;28.995584]*pi/180;
我用这段代码来计算距离。它计算正确。但我无法将我的积分转换为公里。
LAT=[41.000173;41.010134]*pi/180;
LON=[28.995882;28.995584]*pi/180;
R=6378; %km
for i=1:length(LAT)-1
psi(i,1) = atan2( sin (LON(i+1)-LON(i)) * cos (LAT(i+1)) , cos (LAT(i)) *sin (LAT(i+1)) - sin (LAT(i)) * cos (LAT(i+1)) * cos (LON(i+1)-LON(i)) );
a=(sin((LAT(i+1)-LAT(i))/2))^2+cos(LAT(i))*cos(LAT(i+1))*(sin((LON(i+1)-LON(i))/2))^2;
c=2*atan2(sqrt(a),sqrt(1-a));
d(i,1)=R*c;
end
解决方案
推荐阅读
- css - rmdformats::material 改变绿色和灰色的配色方案
- django - 如何在自定义管理更改列表中使用 list_filter 中的属性方法?
- python - 当 n 大于 20 时,它会打印“奇怪”,但应该打印“不奇怪”
- c# - 如何将集合转换为值元组?
- angular - 如何将 http 模块从 angular 4 更改为 angular 7
- javascript - 使用javascript通过鼠标悬停将类添加到元素
- c# - 如何使用 C# 以编程方式下载 GitHub 数据
- c++ - const 类中是否有任何技巧启用函数调用?
- mysql - MySQL 按日期查询逻辑
- java - 面向 Netbeans 初学者的 Java