官术网_书友最值得收藏!

Using the QGIS Python console for interactive control

The QGIS Python console allows you to interactively control QGIS. You can test out ideas or just do some quick automation. The console is the simplest way to use the QGIS Python API.

How to do it…

In the following steps, we'll open the QGIS Python console, create a vector layer in memory, and display it on the map:

  1. Start QGIS.
  2. From the Plugins menu, select Python Console.
  3. The following code will create a point on the map canvas:
    layer =  QgsVectorLayer('Point?crs=epsg:4326', 'MyPoint' , 'memory')
    pr = layer.dataProvider()
    pt = QgsFeature()
    point1 = QgsPoint(20,20)
    pt.setGeometry(QgsGeometry.fromPoint(point1))
    pr.addFeatures([pt])
    layer.updateExtents()
    QgsMapLayerRegistry.instance().addMapLayers([layer])

How it works…

This example uses a memory layer to avoid interacting with any data on disk or a network to keep things simple. Notice that when we declare the layer type, we add the parameter for the Coordinate Reference System (CRS) as EPSG:4326. Without this declaration, QGIS will prompt you to choose one. There are three parts or levels of abstraction to create even a single point on the map canvas, as shown here:

  • First, create a layer that is of the type geometry. Next, set up a data provider to accept the data source.
  • Then, create a generic feature object, followed by the point geometry.
  • Next, stack the objects together and add them to the map.

The layer type is memory, meaning that you can define the geometry and the attributes inline in the code rather than in an external data source. In this recipe, we just define the geometry and skip the defining of any attributes.

主站蜘蛛池模板: 梅州市| 常州市| 新泰市| 措美县| 芒康县| 马鞍山市| 临城县| 丹东市| 黄大仙区| 礼泉县| 喀喇| 德保县| 恭城| 上饶县| 新民市| 河北区| 白沙| 南漳县| 丹东市| 衡阳市| 扎鲁特旗| 靖远县| 北票市| 瑞昌市| 米林县| 神池县| 霍林郭勒市| 龙江县| 桦南县| 抚顺县| 通道| 石阡县| 桃源县| 胶州市| 峡江县| 新沂市| 高要市| 临清市| 德安县| 屏东县| 盐池县|