可视化 NASA 地图中走过的路径
此示例展示了如何在 NASA 提供的栅格地图上可视化存储在 ThingSpeak™通道源的纬度和经度数据。您可以从网络地图服务 (WMS) 检索栅格地图并绘制 Mary Maersk 船舶经过的路径。
读取数据
ThingSpeak通道73734 存储 Mary Maersk 船舶的位置数据。使用 thingSpeakRead
函数读取过去 10 天的数据。
data = thingSpeakRead(73734,'DateRange',... [datetime('now')-caldays(10),datetime('now')],'outputFormat','table');
处理原始数据
在将原始纬度和经度数据绘制在地图上之前对其进行处理。将纬度和经度信息存储在单独的变量 lat
和 lon
中。使用 geoquadline
函数可查找尽可能紧密的地理四边形的界限,该四边形将连接顶点与经纬度指定的地理坐标的线界定为边界。为了使地图更易于阅读,请将纬度和经度限制扩大 10 个单位。
lon = data.Longitude; lat = data.Latitude; [latlim,lonlim] = geoquadline(lat,lon); buf = 10; [latlim,lonlim] = bufgeoquad(latlim,lonlim,buf,buf);
从 NASA 检索光栅地图
使用 NASA Web 地图服务生成空间参考栅格数据的地图。wmsfind
函数在 WMS 数据库的 serverurl
条目中搜索字符串“nasa”。
nasa = wmsfind('nasa','SearchField','serverurl');
使用 refine
函数从 NASA 数据库中细化对所需栅格地图图层的搜索。
layer = refine(nasa,'bluemarbleng','SearchField','layername', ... 'MatchType','exact');
调用wmsread
函数读取栅格地图。
[A,R] = wmsread(layer(1),'Latlim',latlim,'Lonlim',lonlim);
生成地图
使用 worldmap
函数返回的栅格地图生成 Mary Maersk 在过去 10 天内行驶的路径图。
geoshow(A,R); geoshow(lat,lon); xlabel('Longitude'); ylabel('Latitude'); axis tight;
另请参阅
函数
geoquadline
(Mapping Toolbox) |bufgeoquad
(Mapping Toolbox) |wmsfind
(Mapping Toolbox) |WMSLayer.refine
(Mapping Toolbox) |wmsread
(Mapping Toolbox) |geoshow
(Mapping Toolbox) |thingSpeakRead