## DESCRIPTION

v.buffer creates a buffer around features of given type, which have a category in the given layer. The tolerance controls the number of vector segments being generated (the smaller the value, the more vector segments are generated).

## NOTES

Internal buffers for areas can be generated with negative distiance values (GRASS must be compiled with GEOS).

Categories and attributes can be transferred with the t flag. The resulting buffer areas can have multiple categories, and multiple buffer areas can have the same category. The buffer for the input feature with category X can thus be retrieved by selecting all buffer areas with category X (see example below).

Buffers for lines and areas are generated using algorithm from GEOS library. If GRASS is not compiled with GEOS support or environmental variable `GRASS_VECTOR_BUFFER` is defined, then GRASS generates buffers using built-in buffering algorithm (which is still buggy for some input data).

## EXAMPLES

All examples are based on the North Carolina sample dataset.

### Buffer around input lines

    v.buffer input=roadsmajor output=roadsmajor_buffer type=line distance=100

### Circles around input points

    v.buffer input=hospitals output=hospitals_circled type=point distance=1000

### Circles around input points with attribute transfer

    v.buffer input=hospitals output=hospitals_circled type=point distance=1000 -t
    # display buffer around hospital with category 36,
    # this buffer is composed of several areas:
    d.vect map=hospitals_circled type=area layer=1 cats=36
    # extract this buffer, dissolving boundaries
    v.extract in=hospitals_circled out=hospital_36_circled layer=1 cats=36 -d

## REFERENCE

- GEOS Library

## SEE ALSO

r.buffer, v.extract, v.type, v.patch, v.db.connect

## AUTHORS

Radim Blazek
Rewritten by Rosen Matev (with support through the Google Summer of Code program 2008)
Rewritten by Markus Metz (2011, 2012)

Last changed: $Date$