Matlab使用geoplot在地图中绘制线条

4.4
(5)

今天,带来一个Matlab中,可以在地图上(经纬度地理坐标)绘制线条的函数geoplot的使用方法,主要用于标记地图上的一些区域使用。本文主要讲解geoplot函数在Matlab中的常见用法、语法说明、地理图的创建、地理图中文本的添加、地理图上各类线条的自定义、使用图形线条属性自定义线条的外观以及更改地理图中使用的底图等方法。

Matlab使用geoplot在地图中绘制线条

下面,我们将开始详细的介绍geoplot函数的语法介绍,实例引用,结果展示。首先,我们给出 Matlab 中关于 geoplot 函数的帮助文本如下:

>> help geoplot
--- gplot 的帮助 ---

 gplot Plot graph, as in "graph theory".
    gplot(A,xy) plots the graph specified by A and xy. A graph, G, is
    a set of nodes numbered from 1 to n, and a set of connections, or
    edges, between them.  
 
    In order to plot G, two matrices are needed. The adjacency matrix,
    A, has a(i,j) nonzero if and only if node i is connected to node
    j.  The coordinates array, xy, is an n-by-2 matrix with the
    position for node i in the i-th row, xy(i,:) = [x(i) y(i)].
    
    gplot(A,xy,LineSpec) uses line type and color specified in the
    string LineSpec. See PLOT for possibilities.
 
    [X,Y] = gplot(A,xy) returns the NaN-punctuated vectors
    X and Y without actually generating a plot. These vectors
    can be used to generate the plot at a later time if desired.  As a
    result, the two argument output case is only valid when xy is of type
    single or double.

相信各位也看到了,我的Matlab2016中使用的是gplot函数,而且用法与geoplot不太一样。因此,最好升级Matlab到2020版本,才可以使用本文中所给出的代码。

以下所有代码及代码运行结果均来自Matlab官方。

常见用法

geoplot(lat,lon)
geoplot(lat,lon,LineSpec)
geoplot(lat1,lon1,...,latN,lonN)
geoplot(lat1,lon1,LineSpec1,...,latN,lonN,LineSpecN)
geoplot(___,Name,Value)
geoplot(gx,___)
h = geoplot(___)

语法说明

geoplot(lat,lon) 在地理坐标区中绘制一个线条,其顶点位于 lat 和 lon 所指定的经纬度位置(以度为单位)。lat 和 lon 输入的大小必须相同。默认情况下,geoplot 使用地理坐标区对象的 ColorOrder 属性指定的颜色绘制一条不带标记的实线。

geoplot(lat,lon,LineSpec) 设置线条的线型、标记符号和颜色。

geoplot(lat1,lon1,…,latN,lonN) 将几组经纬度位置指定的图合并。

geoplot(lat1,lon1,LineSpec1,…,latN,lonN,LineSpecN) 将几组经纬度位置指定的图合并,每个线条有单独的 LineSpec。

geoplot(___,Name,Value) 使用一个或多个 Name,Value 对组参数指定图形线条的属性。

geoplot(gx,___) 在 gx 指定的地理坐标区(而不是当前坐标区)中绘图。

h = geoplot(___) 返回由图形线条对象组成的列向量。每个对象对应于一条绘制的线。使用 h 修改图形线条对象的属性。

地理图的创建

在地图上的两个点之间绘制一条直线。使用西雅图(Seattle)和安克雷奇(Anchorage)的坐标指定线的端点。以度为单位指定纬度和经度。

latSeattle = 47.62;
lonSeattle = -122.33;
latAnchorage = 61.20;
lonAnchorage = -149.9;

在地图上绘制数据。使用线条设定 ‘g-*’ 自定义线条外观。使用 geolimits 调整地图的纬度和经度范围。

geoplot([latSeattle latAnchorage],[lonSeattle lonAnchorage],'g-*')
geolimits([45 62],[-149 -123])
Matlab使用geoplot在地图中绘制线条

地理图中文本的添加

在地图上的两个点之间绘制一条直线。使用西雅图(Seattle)和安克雷奇(Anchorage)的坐标指定线的端点。以度为单位指定纬度和经度。

latSeattle = 47.62;
lonSeattle = -122.33;
latAnchorage = 61.20;
lonAnchorage = -149.9;

使用 geoplot 绘制数据。使用线条设定 ‘g-*’ 自定义线条外观。使用 geolimits 调整地图的纬度和经度范围。

geoplot([latSeattle latAnchorage],[lonSeattle lonAnchorage],'g-*')
geolimits([45 62],[-149 -123])
Matlab使用geoplot在地图中绘制线条

使用 text 函数标识安克雷奇(Anchorage)。

text(latAnchorage,lonAnchorage,'Anchorage');
Matlab使用geoplot在地图中绘制线条

使用 text 函数标识西雅图(Seattle)。通过指定 Text 对象的属性来调整文本标签的对齐。

text(latSeattle,lonSeattle,'Seattle',...
    'HorizontalAlignment','right',...
    'VerticalAlignment','bottom');
Matlab使用geoplot在地图中绘制线条

地理图上各类线条的自定义

指定西雅图(Seattle)、安克雷奇(Anchorage)和巴罗角(PtBarrow)的纬度和经度坐标。

latSeattle = 47.62;
lonSeattle = -122.33;

latAnchorage = 61.20;
lonAnchorage = -149.9;

latPtBarrow = 71.38;
lonPtBarrow = -156.47;

绘制从西雅图到其他两个城市的直线。绘制一条从西雅图(Seattle)到安克雷奇(Anchorage)的黄色实线,再绘制一条从西雅图(Seattle)到巴罗角(PtBarrow)的蓝色虚线。使用 geolimits 调整地图的纬度和经度范围。

geoplot([latSeattle latAnchorage],[lonSeattle lonAnchorage],'y-',...
    [latSeattle latPtBarrow],[lonSeattle lonPtBarrow],'b:')
geolimits([44 73],[-149 -123])
Matlab使用geoplot在地图中绘制线条

使用 text 函数在地图上标记每个城市。

text(latAnchorage,lonAnchorage,'Anchorage');
text(latPtBarrow,lonPtBarrow,'Point Barrow');
text(latSeattle,lonSeattle,'Seattle',...
    'VerticalAlignment','bottom');
Matlab使用geoplot在地图中绘制线条

使用图形线条属性自定义线条的外观

在地图上的两个点之间绘制一条直线。使用西雅图(Seattle)和安克雷奇(Anchorage)的坐标指定线的端点。以度为单位指定纬度和经度。

latSeattle = 47.62;
lonSeattle = -122.33;
latAnchorage = 61.20;
lonAnchorage = -149.9;

使用 geoplot 绘制数据。使用 geolimits 调整地图的纬度和经度范围。通过指定 LineWidth 和 Color 属性来自定义线条的外观。

geoplot([latSeattle latAnchorage],[lonSeattle lonAnchorage],...
    'LineWidth',2,'Color',[.6 0 0])
geolimits([45 62],[-149 -123])
Matlab使用geoplot在地图中绘制线条

更改地理图中使用的底图

在地图上的两个点之间绘制一条直线。使用西雅图(Seattle)和安克雷奇(Anchorage)的坐标指定线的端点。以度为单位指定纬度和经度。

latSeattle = 47.62;
lonSeattle = -122.33;
latAnchorage = 61.20;
lonAnchorage = -149.9;

使用 geoplot 绘制数据。使用 geolimits 调整地图的纬度和经度范围。

geoplot([latSeattle latAnchorage],[lonSeattle lonAnchorage])
geolimits([45 62],[-149 -123])
Matlab使用geoplot在地图中绘制线条

使用 geobasemap 函数更改绘图中使用的底图。

geobasemap colorterrain
Matlab使用geoplot在地图中绘制线条

共计5人评分,平均4.4

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

文章目录

转载文章,原文出处:MathWorks官网,由古哥整理发布

如若转载,请注明出处:https://iymark.com/articles/1233.html

(0)
微信公众号
古哥的头像古哥管理团队
上一篇 2020年12月18日 20:03
下一篇 2020年12月20日 18:56

你可能感兴趣的文章

发表回复

登录后才能评论
微信小程序
微信公众号