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

Using the Python ScriptRunner plugin

The QGIS Python ScriptRunner plugin provides a middle ground for QGIS automation, between the interactive console and the overhead of plugins. It provides a script management dialog that allows you to easily load, create, edit, and run scripts for large-scale QGIS automation.

Getting ready

Install the ScriptRunner plugin using the QGIS plugin manager. Then, run the plugin from the Plugin menu to open the ScriptRunner dialog. Configure a default editor to edit scripts using the following steps:

  1. Find the gear icon that represents the ScriptRunner Preferences settings dialog box and click on it.
  2. In the General Options section, check the Edit Scripts Using: checkbox.
  3. Click on the button to browse to the location of a text editor on your system.
  4. Click on the Open button.
  5. Click on the OK button in the Preferences dialog.

How to do it…

  1. In the ScriptRunner dialog, click on the New Script icon, as shown in the following screenshot:
    How to do it…
  2. Browse to the directory where you can save your script, name the script, and save it.
  3. Verify that the new script is loaded in ScriptRunner.
  4. Right-click (or control-click on a Mac) on the script name in ScriptRunner and select Edit Script in External Editor.
  5. In the editor, replace the template code with the following code:
    from PyQt4.QtCore import *
    from PyQt4.QtGui import *
    from qgis.core import *
    from qgis.gui import *
    
    def run_script(iface):
        layer =  QgsVectorLayer('Polygon?crs=epsg:4326', 'Mississippi' , "memory")
    pr = layer.dataProvider()
        poly = QgsFeature()
        geom = QgsGeometry.fromWkt("POLYGON ((-88.82 34.99,-88.09 34.89,-88.39 30.34,-89.57 30.18,-89.73 31,-91.63 30.99,-90.87 32.37,-91.23 33.44,-90.93 34.23,-90.30 34.99,-88.82 34.99))")
        poly.setGeometry(geom)
        pr.addFeatures([poly])
        layer.updateExtents()
    QgsMapLayerRegistry.instance().addMapLayers([layer])
  6. Click on the Run Script icon, which is represented by a green-colored arrow.
  7. Close the ScriptRunner plugin.
  8. Verify that the memory layer polygon was added to the QGIS map, as shown in the following screenshot:
    How to do it…

How it works…

ScriptRunner is a simple but powerful idea. It allows you to build a library of automation scripts and use them from within QGIS, but without the overhead of building a plugin or a standalone application. All the Python and system path variables are set correctly and inherited from QGIS; however, you must still import the QGIS and Qt libraries.

主站蜘蛛池模板: 富民县| 临海市| 安吉县| 左贡县| 呼图壁县| 龙山县| 马关县| 张掖市| 蒲江县| 威信县| 恩施市| 新巴尔虎右旗| 泾川县| 古浪县| 临桂县| 洪江市| 巴东县| 陈巴尔虎旗| 吴江市| 淮南市| 普洱| 桂阳县| 昔阳县| 孟连| 长汀县| 四子王旗| 鄄城县| 沧源| 江源县| 宁南县| 静海县| 梁平县| 景宁| 三河市| 芜湖县| 宜州市| 宜川县| 肇源县| 桦川县| 恭城| 冕宁县|