16.1. python控制台

Python控制台是探索和学习PyQGIS的极好工具。它在每个QGIS安装中都可用,可以通过选择 Python控制台 声音 插件 菜单。

Python控制台是一个可停靠接口,与所有可停靠接口一样,您可以更改其在QGIS中的位置或将其分离。您可以尝试通过拖放来移动控制台。

如您所见,控制台由一个红色框标记的按钮工具栏组成。更大的 Python控制台 由右上角的红色框标记并显示所有命令结果,最后,由右下角的 红色框标记的底部命令行是您可以编辑命令的位置。这些图形组件的默认位置可能因QGIS版本而异。

在这里,我们将描述如何交互测试代码并探索PyQGIS类。

但是,我们不会解释Python控制台的所有可能性。这些都有很好的记录, 你可以在 http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#python-console.

16.1.1. 获取样本数据

为了继续使用PyQGIS进行实验,我们需要一个测试数据集。QGIS项目有我们将在代码片段中使用的培训材料和示例数据。 QGIS示例数据可以从 http://qgis.org/downloads/data/.

16.1.2. 我的第一个PyQGIS代码片段

为了打破僵局,我们将创建第一个PyQGIS代码,以显示QGIS中加载的选定图层的唯一ID:

  1. 首先,我们将首先加载层,airports.shp,可在形状文件目录qgis_sample_data。

  2. 成功加载后,在图层列表中选择它;这样做将使其成为QGIS的活动图层。

  3. 然后,我们通过在Python控制台命令行中写入以下行来获取layer对象的引用:layer = iface.activeLayer()

  4. 在编辑代码并点击“返回”,已编辑的命令代码显示在控制台中。

  5. 当前活动层的引用存档在名为“图层”。现在,我们可以通过在命令行中按以下代码命令来显示层ID 返回:打印层.id()

  6. 输出将显示类似于机场20141001174143539 。

16.1.3. 我的第二个PyQGIS代码片段-循环图层特性

在这一段中,我们将向您介绍如何在Python中循环,以及如何应用循环来探索前一段中加载的层的内容。在Python控制台中编写以下代码片段,特别注意代码缩进:

对于layer.getFeatures()中的功能:

print“功能%d具有属性和几何体:”%Feature.id()print Feature.attributes()print Feature.geometry(). asPoint()

这将打印如下图案 图 16.1

_images/image421_x6t.jpg

图 16.1 结果打印界面

id为21的要素具有属性和几何图形:

[22, u'US00342', 858.0, u'Airport/Airfield', u'PATL', u'TATALINA

LRRS,u'Other']

(-328415,4.71636e+06)

这个 layer.getFeatures() 方法返回可在"for Python"指令,获取"QgsFeature"每个循环的实例。 这个特色属性()方法返回一个列表(在括号内,[])整数和Unicode字符串的u'价值观)。 这个特征几何()方法返回 QgsGeometry 被转换为QgsPoint以元组形式打印(在()括号)的坐标。

强烈建议您探索前面的类。您也可以参考 http://qgis.org/api/. 从探索 QgisInterface 和 QGis 类。