目录
1、打印当前项目的文件名
打开QGIS Desktop,加载一个项目
from qgis.core import QgsProject
project = QgsProject.instance()
print(project.fileName()) # 打印当前项目的文件名
print(project.homePath()) # 打印当前工程所在目录
2、加载矢量图层
3、获取矢量图层名
from qgis.core import QgsProject,QgsVectorLayer
project = QgsProject.instance()
vlayer=project.mapLayersByName("airports")[0]
print(vlayer.name())
检查图层是否存在
layer_names = [layer.name() for layer in QgsProject.instance().mapLayers().values()]
print(layer_names)
4、控制图层树中图层是否显示
from qgis.core import QgsProject,QgsVectorLayer
project = QgsProject.instance()
vlayer=project.mapLayersByName("airports")[0]
root=project.layerTreeRoot()
node_layer=root.findLayer(vlayer.id())
node_layer.setItemVisibilityChecked(False)
5、选择要素
from qgis.core import QgsProject,QgsVectorLayer
project = QgsProject.instance()
vlayer=project.mapLayersByName("places")[0]
vlayer.selectByExpression('"name"=\'Riga\'', QgsVectorLayer.SetSelection)
6、图层遍历要素
from qgis.core import QgsProject,QgsVectorLayer
project = QgsProject.instance()
vlayer=project.mapLayersByName("places")[0]
for feature in vlayer.getFeatures():
print("name:",feature['name'])
7、向图层中添加点
from qgis.core import QgsProject,QgsVectorLayer,QgsFeature,QgsGeometry,QgsPointXY
project = QgsProject.instance()
vlayer=project.mapLayersByName("places")[0]
feature = QgsFeature(vlayer.fields())
feature.setAttribute('name','hello2')
feature.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(-49.8, 49.8)))
vlayer.dataProvider().addFeatures([feature])