学习PyQGIS的资源?[关闭]


10

我正在寻找一些学习PyQGIS的资源。

收集一些书籍或网站,提供一些实用的示例以学习语法或完成特定任务,这将是很有趣的。

理想情况下,这些资源应为初学者和有经验的用户提供一般指导。

在哪里可以找到QGIS教程和Web资源?这是一个非常相似的问题,但是它为学习QGIS(特别是PyQGIS)提供了帮助(实际上,它没有PyQGIS标签)。

有什么帮助吗?


您可以发布一些代码来说明您的问题吗?进入pyqgis确实需要一些努力。最佳选择是菜谱和C ++ API。
彼得·彼得森


1
对我来说,这个问题似乎是那个问题的重复。我想你可以有张贴你的答案:)
赫尔曼·卡里略

1
通常,我要说的是,较新的问题(对于有重点的Q&A来说太宽泛了),应该复制较旧的问题,以阻止提出这样的问题。但是,在这种情况下,将我们的自愿工作花费很少,可以将较早的工作作为锁定的wiki合并到此工作中,这样您编写它的工作就不会丢失。
PolyGeo

1
初学者的重点问题应为他们提供重点答案。
PolyGeo

Answers:


10

以下文档资源将简化您的PyQGIS开发经验:

主要PyQGIS关系图(由Thomas Gratier撰写):https ://raw.githubusercontent.com/webgeodatavore/qgis-class-diagram/master/diagramme_principal.png

PyQGIS类的可搜索文档(通过SourcePole):http ://geoapis.sourcepole.com

例如,addFeature此处描述了您遇到问题的方法:http : //geoapis.sourcepole.com/qgispyapi/qgsvectorlayer#QgsVectorLayer.addFeature

在此处输入图片说明

作为第二个示例,setAttribute此处介绍了该方法:http : //geoapis.sourcepole.com/qgispyapi/qgsfeature#QgsFeature.setAttribute

在此处输入图片说明


geoapis.sourcepole.com具有出色的可用性,但是自QGIS 2.8起未进行更新。是否需要努力维护该文档,或者记录如何构建此网站?
诺文,

我真的不知道,但是现在您有了PyQGIS API的官方文档:qgis.org/pyqgis/master因此,我认为SourcePole不会花时间更新其PyQGIS网站。那将是重复的努力。
赫尔曼·卡里略

8

以下资源为学习或使用PyQGIS提供了一般指导,并且通常假定使用Python的熟练程度最低。


QGIS 3.x版本

  • PyQGIS 3 API文档:Python API的官方文档。自v3.0起提供每个主要版本的文档以及夜间版本;

  • PyQGIS开发人员手册:为QGIS 2.x编写,并逐渐更新为3.x。它仍然可以作为教程和参考指南很有用,并且可以很好地概述主要功能。


QGIS 2.x版本

PyQGIS文档:

  • PyQGIS开发人员手册:PyQGIS编程的正式介绍。它既可以用作教程,也可以作为参考指南,并且对主要功能进行了很好的概述。

  • PyQGIS API文档:SourcePole提供的Python API的非正式文档。它提供了可搜索的界面,但自QGIS 2.8起未进行更新;

  • QGIS C ++ API文档:官方C ++ API文档。在描述C ++ API时,它对pyqgis开发很有用。

在线图书:

  • Sherman G.(2014年)。PyQGIS程序员指南:使用Python扩展QGIS 2.x;

  • Westra E.(2014年)。使用QGIS构建制图应用程序:对于初学者和有经验的Python开发人员,本书涵盖有关PyQGIS使用的许多主题,包括创建QGIS插件以及在外部应用程序中使用QGIS。

  • Lawhead J.(2015年)。QGIS Python编程手册:140种用于学习和自动化地理空间工作流程的食谱;

  • Menke K.,Richard S.,Pirelli L.(2015年)。掌握QGIS:某些部分提供了实用的分步示例,以熟悉PyQGIS;

  • Graser A.(2016年)。学习QGIS-第三版:一个部分完全致力于使用Python编写QGIS脚本,从基础到使用几种可用工具的更高级的入门;

  • Lawhead J.(2017年)。QGIS Python编程手册-第二版:本书对QGIS 2.18进行了完整的代码升级,并提供了30种新配方。

教程/博客/网络资源:

  • 内森·伍德罗(Nathan Woodrow):主要是有关QGIS内容的博客,还讨论了有关PyQGIS使用的特定主题。作者是最活跃的QGIS开发人员之一;

  • nyalldawson.net:一个博客,其中包含有关使用PyQGIS的几篇文章。作者是最活跃的QGIS开发人员之一;

  • QGIS中的“操作方法”:该站点提供了一些使用PyQGIS解决问题的建议。如果可能,可以通过简单的代码示例提供这些技巧。我是此博客的作者;

  • QGIS教程和技巧:此博客的一部分提供了一系列学习PyQGIS脚本的教程。作者是一位经验丰富的GIS专家;

  • Lutra Consulting:具有PyQGIS标签的帖子列表,涵盖有关PyQGIS的一些主题。


2
在这里有更新吗?我相信QGIS3即将发布。
MartinT

当/如果上述任何书籍(2.x)可能更新为3.x,有人碰巧有个主意吗?
Ville Koivisto

Sherman的标题已更新为PyQGIS3(《 PyQGIS程序员指南:使用Python 3扩展QGIS 3)》。
Ville Koivisto

0

不确定您进入QGIS的Python API是什么意思,但是当然有一个addFeatures()函数。这在QGIS 2.4中有效:

mem_layer = QgsVectorLayer("Polygon?crs=epsg:4326&field=MYNUM:integer&field=MYTXT:string", "temp_layer", "memory")

if not mem_layer.isValid(): raise Exception("Failed to create memory layer")

mem_layer_provider = mem_layer.dataProvider()

my_polygon = QgsFeature()
my_polygon.setGeometry(QgsGeometry.fromRect(QgsRectangle(16,48,17,49)))
my_polygon.setAttributes([10,"hello world"])

mem_layer_provider.addFeatures([my_polygon])

mem_layer.updateExtents()
QgsMapLayerRegistry.instance().addMapLayer(mem_layer)

如果您对API文档和PyQGIS Cookbook不满意,那么您最后的机会就是研究可以使用的插件 -毕竟它们是开源的-并且您可以轻松地查看它们是否可以在2.4版中工作...

为了改进文档,该项目很乐意接受任何类型的资源。


1
即使layer.addFeature()你想要
弥敦道W

我的错。是setAttribute-function引发了错误-我想,搜索后我不太介意。
Florian R. Klein 2014年

查看现有插件的代码是我学习pyqgis的方法。
warrieka 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.