QGIS批量可视化矢量数据的代码和步骤:
1. 打开QGIS软件,点击“Plugins”菜单,选择“Python Console”进入Python控制台。
2. 在Python控制台中输入以下代码,导入需要的模块:
from qgis.core import *
from qgis.gui import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
3. 设置矢量数据所在文件夹路径和需要可视化的矢量数据格式:
folder_path = "C:/data/vector/"
vector_format = ".shp"
4. 获取文件夹中所有符合格式要求的文件名:
import os
file_names = [f for f in os.listdir(folder_path) if f.endswith(vector_format)]
5. 循环遍历所有文件名,并加载每个矢量数据图层:
app = QgsApplication([], False)
QgsApplication.setPrefixPath("C:/Program Files/QGIS 3.16/apps/qgis", True)
QgsApplication.initQgis()
canvas = QgsMapCanvas()
layers = []
for file_name in file_names:
layer_path = folder_path + file_name
layer_name = file_name.split(".")[0]
layer = QgsVectorLayer(layer_path, layer_name, "ogr")
if not layer.isValid():
print("Layer %s failed to load!" % layer_name)
layers.append(layer)
6. 将所有图层添加到地图画布中,并设置每个图层的样式和标注:
for layer in layers:
QgsProject.instance().addMapLayer(layer)
symbol = QgsSymbol.defaultSymbol(layer.geometryType())
renderer = QgsSingleSymbolRenderer(symbol)
layer.setRenderer(renderer)
label = QgsPalLayerSettings()
label.fieldName = "name"
label.placement = QgsPalLayerSettings.AroundPoint
layer.setLabeling(QgsVectorLayerSimpleLabeling(label))
layer.triggerRepaint()
7. 最后在地图画布中显示所有可视化的矢量数据图层:
canvas.setExtent(QgsReferencedRectangle(QgsCoordinateReferenceSystem(4326), -180, -90, 180, 90))
canvas.setLayers(layers)
canvas.zoomToFullExtent()
canvas.show()
以上是QGIS批量可视化矢量数据的代码和步骤。