Skip to content

v.label

Creates paint labels for a vector map from attached attributes.

v.label [-ac] [labels=name] map=name column=name [type=string [,string,...]] [layer=string] [where=sql_query] [xoffset=float] [yoffset=float] [reference=string [,string,...]] [font=string] [size=float] [space=float] [fontsize=integer] [color=name] [rotation=angle] [width=float] [highlight_color=name] [highlight_width=float] [bgcolor=name] [border=name] [opaque=yes|no] [--verbose] [--quiet] [--qq] [--ui]

Example:

v.label map=name column=name

grass.script.run_command("v.label", labels=None, map, column, type="point,line,boundary,centroid", layer="1", where=None, xoffset=0, yoffset=0, reference="center", font="standard", size=100, space=None, fontsize=None, color="black", rotation=0, width=1, highlight_color="none", highlight_width=0, bgcolor="none", border="none", opaque="yes", flags=None, verbose=False, quiet=False, superquiet=False)

Example:

gs.run_command("v.label", map="name", column="name")

Parameters

labels=name
    Name for new paint-label file
    If not given the name of the input map is used
map=name [required]
    Name of vector map
    Or data source for direct OGR access
column=name [required]
    Name of attribute column to be used for labels
type=string [,string,...]
    Input feature type
    Allowed values: point, line, boundary, centroid
    Default: point,line,boundary,centroid
layer=string
    Layer number or name
    Vector features can have category values in different layers. This number determines which layer to use. When used with direct OGR access this is the layer name.
    Default: 1
where=sql_query
    WHERE conditions of SQL statement without 'where' keyword
    Example: income < 1000 and population >= 10000
xoffset=float
    Offset label in x-direction
    Default: 0
yoffset=float
    Offset label in y-direction
    Default: 0
reference=string [,string,...]
    Reference position
    Allowed values: center, left, right, upper, lower
    Default: center
font=string
    Font name
    Default: standard
size=float
    Label size (in map-units)
    Default: 100
space=float
    Space between letters for curled labels (in map-units)
fontsize=integer
    Label size (in points)
    Allowed values: 1-1000
color=name
    Text color
    Either a standard color name or R:G:B triplet
    Default: black
rotation=angle
    Rotation angle in degrees (counter-clockwise)
    Allowed values: 0-360
    Default: 0
width=float
    Border width
    Allowed values: 0-25
    Default: 1
highlight_color=name
    Highlight color for text
    Either a standard color name, R:G:B triplet, or "none"
    Default: none
highlight_width=float
    Width of highlight coloring
    Default: 0
bgcolor=name
    Background color
    Either a standard color name, R:G:B triplet, or "none"
    Default: none
border=name
    Border color
    Either a standard color name, R:G:B triplet, or "none"
    Default: none
opaque=yes|no
    Opaque to vector (only relevant if background color is selected)
    Allowed values: yes, no
    Default: yes
-a
    Rotate labels to align with lines
-c
    Curl labels along lines
--help
    Print usage summary
--verbose
    Verbose module output
--quiet
    Quiet module output
--qq
    Very quiet module output
--ui
    Force launching GUI dialog

labels : str, optional
    Name for new paint-label file
    If not given the name of the input map is used
    Used as: name
map : str, required
    Name of vector map
    Or data source for direct OGR access
    Used as: input, vector, name
column : str, required
    Name of attribute column to be used for labels
    Used as: input, dbcolumn, name
type : str | list[str], optional
    Input feature type
    Allowed values: point, line, boundary, centroid
    Default: point,line,boundary,centroid
layer : str, optional
    Layer number or name
    Vector features can have category values in different layers. This number determines which layer to use. When used with direct OGR access this is the layer name.
    Used as: input, layer
    Default: 1
where : str, optional
    WHERE conditions of SQL statement without 'where' keyword
    Example: income < 1000 and population >= 10000
    Used as: input, sql_query, sql_query
xoffset : float, optional
    Offset label in x-direction
    Default: 0
yoffset : float, optional
    Offset label in y-direction
    Default: 0
reference : str | list[str], optional
    Reference position
    Allowed values: center, left, right, upper, lower
    Default: center
font : str, optional
    Font name
    Default: standard
size : float, optional
    Label size (in map-units)
    Default: 100
space : float, optional
    Space between letters for curled labels (in map-units)
fontsize : int, optional
    Label size (in points)
    Allowed values: 1-1000
color : str, optional
    Text color
    Either a standard color name or R:G:B triplet
    Used as: input, color, name
    Default: black
rotation : float, optional
    Rotation angle in degrees (counter-clockwise)
    Used as: angle
    Allowed values: 0-360
    Default: 0
width : float, optional
    Border width
    Allowed values: 0-25
    Default: 1
highlight_color : str, optional
    Highlight color for text
    Either a standard color name, R:G:B triplet, or "none"
    Used as: input, color, name
    Default: none
highlight_width : float, optional
    Width of highlight coloring
    Default: 0
bgcolor : str, optional
    Background color
    Either a standard color name, R:G:B triplet, or "none"
    Used as: input, color, name
    Default: none
border : str, optional
    Border color
    Either a standard color name, R:G:B triplet, or "none"
    Used as: input, color, name
    Default: none
opaque : str, optional
    Opaque to vector (only relevant if background color is selected)
    Used as: yes|no
    Allowed values: yes, no
    Default: yes
flags : str, optional
    Allowed values: a, c
    a
        Rotate labels to align with lines
    c
        Curl labels along lines
verbose: bool, optional
    Verbose module output
    Default: False
quiet: bool, optional
    Quiet module output
    Default: False
superquiet: bool, optional
    Very quiet module output
    Default: False

DESCRIPTION

v.label makes a label-file from a GRASS vector map with labels created from attributes in the attached table. If no label file name is given, the name of the source map is used.

NOTES

If the fontsize option is given then the space option is determined automatically from the current display window, otherwise the space option should be set roughly the same as the size option.

A description of the labels file follows.

The file is located in $MAPSET/paint/labels/. The file is a plain-text ASCII file containing the following fields:

TEXT:
Lines in multiple line labels will appear one above the next. More than one line of text can be specified by notating the end of a line with a '\n'.
(e.g. SPEARFISH\nSOUTH DAKOTA).

LOCATION:
Determines where the text will be located on the image. The user specifies the easting and northing, and (optionally) specifies a vertical and horizontal offset from the specified easting/northing. These offsets are provided to allow finer placement of labels and are measured in local pixels. Thus in d.labels the offset is measured in screen pixels, and in ps.map the offset is measured in PostScript points (i.e. 1/72" steps).

PLACEMENT:
Determines which part of the label to which the location refers. If placement is unspecified, the label is centered (center), by default. Label placement may be specified as:

    lower left    (lower left corner of the text)
    lower right    (lower right corner of the text)
    lower center    (bottom center of the text)

    upper left    (upper left corner of the text)
    upper right    (upper right corner of the text)
    upper center    (top center of the text)

    center    (center of the text)

FONT:
This specifies the font to use.

The following fonts are available for use with d.labels:

  cyrilc gothgbt gothgrt gothitt greekc greekcs greekp greeks
  italicc italiccs italict romanc romancs romand romans romant
  scriptc scripts

Alternatively the path to a FreeType (.ttf) font may be given. (for d.labels only)

The word standard can be used to specify the default font (which is romans).

Note ps.map can override this setting to use other fonts. Its default font is Helvetica.

TEXT SIZE:
This determines the size of the letters. The size specifies the vertical height of the letters in meters on the ground. Thus text will grow or shrink depending on the scale at which the map is drawn. Alternatively fontsize can set the font size in normal font points.

TEXT COLOR:
This selects the text color. If unspecified, the label's text is drawn in black, by default. The text color can be specified in one of several ways:

  1. By color name: aqua, black, blue, brown, cyan, gray, green, grey, indigo, magenta, orange, purple, red, violet, white, yellow
  2. As red, green, blue component values. (0-255)
    for example: 128:100:200
  3. Specify "none" to suppress the lettering.

WIDTH:
This determines the line thickness of the border box.
The maximum value is 25.0.

HIGHLIGHT COLOR:
The text can be highlighted in another color so that it appears to be in two colors. The text is drawn first in this color at a wider line width, and then redrawn in the text color at the regular line width. No highlight color ("none") is used by default, if unspecified by the user. To specify use of no highlight color, specify "none". (See TEXT COLOR above for a list of permissible color names.)

HIGHLIGHT WIDTH:
Specifies how far from the text lines (in units of pixels) the highlight color should extend. The default highlight width is set to 0 (i.e., no highlight color).

BACKGROUND COLOR:
Text may be boxed in a solid color by specifying a background color. Specify "none" for no background. The default background color setting, if unspecified by the user, is white. (See TEXT COLOR above for a list of permissible color names.)

BORDER COLOR:
Select a color for the border around the background. Specify "none" to suppress the border. The default border color used, if unspecified, is black. (See TEXT COLOR above for a list of permissible color names.)

OPAQUE TO VECTORS:
yes|no. This field only has meaning if a background color is selected. yes will prevent vector lines from entering the background. no will allow vector lines to enter the background. The default setting, if unspecified by the user, is yes.

EXAMPLE

Spearfish example with TrueType font (path may differ):

v.label -a map=roads column=label labels=lroads \
        font=/usr/X11R6/lib/X11/fonts/TTF/luximri.ttf
d.vect roads
d.labels lroads

Since the label files are simple text files, you can merge them together if you like. For example if you set the label colors based on database attributes using multiple runs with the where option. This example uses the standard UNIX cat program.

cd $MAPSET/paint/labels/
cat file1 file2 file3 file4 > file_all

SEE ALSO

d.labels, ps.map

AUTHORS

Philip Verhagen (original s.label)
Radim Blazek (GRASS 6 port)
Hamish Bowman (enhancements)

SOURCE CODE

Available at: v.label source code (history)
Latest change: Tuesday Feb 25 14:08:58 2025 in commit 429a884