我正在寻找一些学习PyQGIS的资源。
收集一些书籍或网站,提供一些实用的示例以学习语法或完成特定任务,这将是很有趣的。
理想情况下,这些资源应为初学者和有经验的用户提供一般指导。
在哪里可以找到QGIS教程和Web资源?这是一个非常相似的问题,但是它为学习QGIS(特别是PyQGIS)提供了帮助(实际上,它没有PyQGIS标签)。
有什么帮助吗?
我正在寻找一些学习PyQGIS的资源。
收集一些书籍或网站,提供一些实用的示例以学习语法或完成特定任务,这将是很有趣的。
理想情况下,这些资源应为初学者和有经验的用户提供一般指导。
在哪里可以找到QGIS教程和Web资源?这是一个非常相似的问题,但是它为学习QGIS(特别是PyQGIS)提供了帮助(实际上,它没有PyQGIS标签)。
有什么帮助吗?
Answers:
以下文档资源将简化您的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
以下资源为学习或使用PyQGIS提供了一般指导,并且通常假定使用Python的熟练程度最低。
PyQGIS 3 API文档:Python API的官方文档。自v3.0起提供每个主要版本的文档以及夜间版本;
PyQGIS开发人员手册:为QGIS 2.x编写,并逐渐更新为3.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的一些主题。
不确定您进入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版中工作...
为了改进文档,该项目很乐意接受任何类型的资源。
layer.addFeature()
你想要