gma 地理空间绘图:(1) 绘制简单的世界地图-2.设置经纬网

文章详细介绍了如何使用gma库在地图框中添加和优化经纬网,包括设置经纬网的起止位置、间隔、显示与否以及线条的颜色、样式和宽度。示例代码展示了如何通过调整LONRange和LATRange参数改变经纬网的覆盖范围,通过ShowLON和ShowLAT控制经纬网的显示,以及通过LineColor、LineStyle和LineWidth定制线条的视觉效果。
摘要由CSDN通过智能技术生成

内容回顾

gma 地理空间绘图:(1)绘制简单的世界地图-1.地图绘制与细节调整

方法

AddGridLines(LONRange = (-180, 180, 15), LATRange = (-90, 90, 15), ShowLON = True, ShowLAT = True, LineColor = ‘gray’, LineStyle = (0, (6, 6)), LineWidth = 0.3)


功能: 【添加经纬网】。在地图框中添加经纬网。

可选参数:

  LONRange = tuple。生成经纬网的初始经度、结束经度和间隔。 默认 (-180, 180, 15)。

  LATRange = tuple。生成经纬网的初始纬度、结束纬度和间隔。 默认 (-90, 90, 15)。

  ShowLON = tuple。是否显示经度网。 默认显示(True)。

  ShowLAT = tuple。是否显示纬度网。 默认显示(True)。

  LineColor = str||tuple。经纬网线颜色。如果为 None,则生成随机颜色。详见:matplotlib。

  LineStyle = str||tuple。经纬网线样式。详见:AddLayer 中 LineStyle。

  LineWidth = float。线宽。默认 0.3。

返回:list。经度网和纬度网 Feature 列表。

添加和优化经纬网

0.绘制默认的经纬网

from gma.map import plot

# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)

# 1.初始化一个地图框,用于绘图
MapF = plot.MapFrame(Axes = None, BaseMapProj = 'WGS84', Extent = None)

# 2.将内置的世界矢量图层添加到地图框(为底图配置随机颜色,并修改边线线宽)
MapL1 = MapF.AddLayer(WorldLayer, LineWidth = 0.2)

# 3.添加经纬网(默认参数)
GridLines = MapF.AddGridLines()

1.调整经纬网起止位置和间隔

经度网(LONRange参数)

from gma.map import plot
import matplotlib.pyplot as plt

plt.figure(figsize = (7, 7), dpi = 300)

# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)

######################## 这里绘制两个图进行对比
## 定义两个参数
LONRanges = [(-180, 180, 30), 
             (0, 150, 60)]

for i in range(2):
    Axes = plt.subplot(2, 1, i + 1)

    MapF = plot.MapFrame(Axes = Axes, BaseMapProj = 'WGS84', Extent = None)
    MapL1 = MapF.AddLayer(WorldLayer, LineWidth = 0.2)
    GridLines = MapF.AddGridLines(LONRange = LONRanges[i])
    
    Axes.set_title(f'LONRange = {LONRanges[i]}', y = 0.95)

plt.tight_layout() 

纬度网(LATRange参数)

from gma.map import plot
import matplotlib.pyplot as plt

plt.figure(figsize = (7, 7), dpi = 300)

# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)

######################## 这里绘制两个图进行对比
## 定义两个参数
LATRanges = [(-90, 90, 30), 
             (0, 60, 15)]

for i in range(2):
    Axes = plt.subplot(2, 1, i + 1)

    MapF = plot.MapFrame(Axes = Axes, BaseMapProj = 'WGS84', Extent = None)
    MapL1 = MapF.AddLayer(WorldLayer, LineWidth = 0.2)
    GridLines = MapF.AddGridLines(LATRange = LATRanges[i])
    
    Axes.set_title(f'LATRange = {LATRanges[i]}', y = 0.95)

plt.tight_layout() 

2.控制经纬网的显示

from gma.map import plot
import matplotlib.pyplot as plt

plt.figure(figsize = (7, 7), dpi = 300)

# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)

######################## 这里绘制两个图进行对比
## 定义两个参数
Show = [(False, True), 
        (True, False)]

for i in range(2):
    Axes = plt.subplot(2, 1, i + 1)

    MapF = plot.MapFrame(Axes = Axes, BaseMapProj = 'WGS84', Extent = None)
    MapL1 = MapF.AddLayer(WorldLayer, LineWidth = 0.2)
    GridLines = MapF.AddGridLines(ShowLON = Show[i][0], 
                                  ShowLAT = Show[i][1])
    
    Axes.set_title(f'ShowLON = {Show[i][0]}, ShowLAT = {Show[i][1]}', y = 1)

plt.tight_layout() 

3.控制经纬网线条

from gma.map import plot
import matplotlib.pyplot as plt

plt.figure(figsize = (7, 7), dpi = 300)

# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)

######################## 这里绘制两个图进行对比
## 定义两个参数
Line = [('gray', (0, (10, 10)), 0.3), 
        ('#0000FF', '-', 0.5)]

for i in range(2):
    Axes = plt.subplot(2, 1, i + 1)

    MapF = plot.MapFrame(Axes = Axes, BaseMapProj = 'WGS84', Extent = None)
    MapL1 = MapF.AddLayer(WorldLayer, LineWidth = 0.2)
    GridLines = MapF.AddGridLines(LineColor = Line[i][0],
                                  LineStyle = Line[i][1],
                                  LineWidth = Line[i][2])
    
    Axes.set_title(f'LineColor = "{Line[i][0]}", LineStyle = "{Line[i][1]}", LineWidth = {Line[i][2]}', y = 0.95)

plt.tight_layout() 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛的地理研学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值