在MATLAB中绘制带地球曲率的地图点连接线可行性问询
在MATLAB中绘制带地球曲率的点位连线地图
当然可行!MATLAB的Mapping Toolbox完全支持绘制带地球曲率的点位连线(也就是大圆航线,球面上两点间的最短路径),正好匹配你的需求。我帮你修正并完善了代码,添加了曲率连线的功能:
% 读取陆地 shp 文件,启用地理坐标 landareas = shaperead('landareas.shp','UseGeoCoords',true); % 创建透视投影的地图轴 axesm ('vperspec', 'Frame', 'on', 'Grid', 'off'); % 定义两个点位的经纬度 point1_lat = 25; point1_lon = 110; point2_lat = 45; point2_lon = 130; % 绘制陆地背景 geoshow(landareas,'DefaultFaceColor',[0.9 0.9 0.9],'DefaultEdgeColor',[0.5 0.5 0.5]); % 标记第一个点位 geoshow(point1_lat,point1_lon,'DisplayType','point','LineWidth',2, ... 'MarkerEdgeColor',[0.1172 0.5625 1.0000],'Marker','o', 'MarkerSize',12); % 标记第二个点位 geoshow(point2_lat,point2_lon,'DisplayType','point','LineWidth',2, ... 'MarkerEdgeColor',[0.8594 0.0781 0.2344],'Marker','^', 'MarkerSize',12); % 生成并绘制贴合地球曲率的大圆航线 % 使用 greatcircle 函数生成路径点,可添加第三个参数指定点数(如100)让曲线更平滑 [gc_lat, gc_lon] = greatcircle(point1_lat, point1_lon, point2_lat, point2_lon); % 绘制这条曲率连线,自定义颜色和线宽 geoshow(gc_lat, gc_lon, 'DisplayType', 'line', 'Color', [0.2 0.6 0.2], 'LineWidth', 2);
关键细节说明:
greatcircle函数:这是实现曲率连线的核心,它基于球面几何生成两点间的大圆路径点,完美体现地球的曲率特性。如果需要更平滑的曲线,可以在函数末尾添加一个数值参数(比如greatcircle(..., 100)),指定生成的路径点数量。- 修正了你原代码中的变量名错误:原代码里的
point_lat未定义,应该对应point1_lat,否则会触发报错。 - 你可以自由调整连线的样式:修改
Color参数改变颜色,调整LineWidth改变线宽,满足可视化需求。
内容的提问来源于stack exchange,提问作者user2861089
相关产品推荐
相关产品推荐

