slanted W3C logo
Lancaster University

QGIS

An Open Source Desktop GIS

Intro

Features

Screenshot

Typical screen

Composer

Map Composer

C++

C++

Development

Visualisation

Feature

Structure

Vector Layer

Structure

This is the structure of a vector layer

Feature methods

Method list

Python Console

Console

Python Editor

Console with Editor

Squirrels

Red and Grey

CC-licensed from flickr users imh and hisgett

Squirrels

Red and Grey

CC-licensed from flickr users king-edward and hisgett

Status

Distribution

Buffering

Options

Fixed Buffer

Styled...

Strategy

Binary Search

QGIS Processing Scripts

Easy


##[BSR scripts]=group
##areas=vector
##scale_factor=number 2
##buffered=output vector

from PyQt4.QtCore import *
from qgis.core import *

import processing
from processing.core.VectorWriter import VectorWriter
from bsrutils import rescaleBuffer

areas_layer = processing.getobject(areas)
areas_features = processing.getfeatures(areas_layer)
fields = areas_layer.pendingFields().toList()
writer = VectorWriter(buffered, None, fields, POLYGON, areas_layer.crs() )

for feature in areas_features:
  outFeat = rescaleBuffer(feature, scale_factor)
  writer.addFeature(outFeat)

ui

Gets this

Run

and get

Conflict Area

Getting the conflict area

Conflict processing script

outline


##[BSR scripts]=group
##areas=vector
##owner=field areas
##conflicts=output vector
...
for aFeature in features:
  for bFeature in features:
     if ownerValue(aFeature) != ownerValue(bFeature):
        if aFeature.geometry().intersects(bFeature.geometry()):
            outFeature.setGeometry(aFeature.geometry().intersection(bFeature.geometry()))
            writer.addFeature(outFeature)

Conflict UI

Dialog

Two steps

Can we do better?

Models

Model builder

Expansion Model

Model builder

Expansion UI

Conflict Output

One step, one extra layer

Other advanced QGIS features

Good stuff