内容回顾
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()