Labels
Dernière mise à jour
Dernière mise à jour
K2 Geospatial 2022
In JMap, labels are text that is related to map elements. They are used to display information about the elements on the map. For example, you can use labels to display the city names for a layer of points representing cities.
Labels can either be placed manually using the labeling tool or generated automatically by JMap at display time. Depending on the type of elements of the layer, the labeling configuration section can slightly vary. The following figure shows an example of curved labels (left) and labels with a frame (right).
The following figure shows an example of of labels with a background symbol.
Labeling is configured by specifying text that defines the label's content; this text can contain static parts, variable parts (functions) and JavaScript programs. At display time, functions are executed and replaced by the result. For example, the ElementValue(attrib)function (or ev(attrib), in its short form) will be replaced by the value of the corresponding attribute. JavaScript programs can be used to perform operations on attribute values. Label text can span multiple lines.
The functions supported by labels are the same as those supported by mouseover. For more information on these functions, refer to the Mouseover section.
Labeling parameters
Label text
The text of the label.
Static parts will be displayed as is and ev(attrib)
functions will be replaced by the corresponding bound attribute values.
Unlike mouseover bubbles, labels don't support HTML formatting or hyperlinks.
See the following examples:
Country: ev(country)
Country: Canada
City: ev(city) (ev(country))
City: Paris (France)
Population: ev(pop)
Population: 2150000
Labels also support JavaScript programming to perform mathematical operations as well as operations on character strings using attribute values. The print function is used to print content in the label.
Area: ev(area_km2) km2
<script>
var SQ_KM_IN_SQ_MI = 2.58998811;
var area_sq_mi = ev(area_km2) / SQ_KM_IN_SQ_MI;
print(area_sq_mi.toFixed(1) + " sq. mi");
</script>
leads to:
Area:
91935.7 km2
31635.6 sq. mi
Label style
Font
Select the font to use to display the labels.
Size
Select the size of the font.
Bold, Italic, Underline, Striked through
Select the font attributes.
Outlined
Select this option to display an outline around the label text. This makes it easier to read labels on the map.
Use antialiasing
Select this option to enable antialiasing.
Text color
Select the color of the label text.
Outline color
If the Outlined option is selected, choose the color of the outline. White is the default.
Automatic labeling adds labels to map elements automatically, without user interaction. For each vector layer, you can enable or disable automatic labeling and define scales between which automatic labeling will be activated. It is often useful to set a minimum scale limit for automatic labeling to avoid overcrowding the map.
Also, in order to avoid overcrowding the map, three tools allow you to control the order or priority in the position or display of the labels: dynamic position, layer priority, and priority by attribute.
Automatic labeling
Automatic labeling
Select this option to enable automatic labeling.
Minimum scale
Minimum scale over which automatic labeling will be activated.
Maximum scale
Maximum scale under which automatic labeling will be activated.
Label position
The position of the label in relation to the map element is determined based on a grid, with nine possible positions. This position can be fixed or dynamic. Fixed: The label is always displayed at the selected position. This is the default option. Dynamic: The position of the labels of the layer varies according to the relative priority established for each position of the grid. This function allows you to display the maximum number of labels avoiding overlapping conflicts of labels. Possible values are: 0 Blocked, 1 High, 2 Medium, and 3 Low. The default value of the center position is 1. At first JMap attempts to place the label in the center position. If this position is occupied by another label, JMap places the label in another lower priority position (Medium or Low) to minimize conflicts. Once you have defined the relative priorities in the grid, you must check the Dynamic placement box to activate the function.
Label offset
Enter an offset in X and Y to modify the position of the label text.
Layer priority
This parameter allows you to assign the layer a priority over other layers for displaying its labels. This priority is relative, depending on the other layers that are present. The available values, from lowest to highest priority, are the following: Normal, Above Normal, High, Very High, Maximum. For example, the labels of a layer with a High priority are displayed before the labels of a layer whose priority is lower (Normal or Above Normal).
Priority by attribute
This parameter allows you to assign a display priority to the elements of a layer based on the value of an attribute. This priority is relative and depends on the other elements that are present in the same layer. For example, in a road network layer in which road sections are categorized according to their importance, the labels of the most important sections have a higher display priority than the labels of the less important sections. The attribute can be numeric or alphanumeric, and it must be possible to organize the values in ascending or descending order. Check this option to select the attribute to use for the prioritization in the drop-down menu. This icon is used to establish whether the priority gradient is in the ascending or descending direction of the values.
Allow labels overlapping
Allow the labels of one layer to overlap and to overlap the labels of other layers. This option overrides the global project setting that prevents label overlapping. This can be useful to ensure that all labels of this layer are displayed.
Prevent label duplication
Select this option to avoid having the same label text displayed many times. Useful for displaying street names.
Parse numeric labels
If label contains text and numbers, display only numeric values. Useful when you want to display only highway numbers using an attribute containing other text (e.g. "Highway 40" becomes "40").
Oriented labels (along the line)
Only for line elements. Select this option to display the label text along the lines.
Curved labels
Only for line elements. Select this option to have the label text follow curved lines.
Proportional size
By default, label text is always displayed at the specified font size, independently of the scale of the map. Use this option to have the label text size adjusted proportionally to the scale of the map. The text will be displayed at its specified font size when looking at the map at the specified reference scale. When the scale of the displayed map is changed, the text size will be modified accordingly.
Background symbol
Select this option in order to choose a symbol that will be displayed behind the label text. Note that the label text should fit in the selected symbol. This is used mainly for highway shields containing highway numbers.
Draw frame
Select this option to draw a frame around the label text. You can also select the color of the background of the frame as well as the color of its border.
Rotation
Select this option if you want the labels to have a rotation. Angle attribute: You can select a numeric bound attribute that contains the rotation angle of the text. The labels will follow this rotation. Rotation direction: If an angle attribute is used, select the direction of the rotation.
Follow map rotation
Select this option to have the labels rotated with the map if the user sets a map rotation.
Follow symbol position
Check this option if you want the labels to follow the symbol when an offset is applied to it.
Dynamic placement
Select this option to enable dynamic placement of the labels. This option allows you to enable or disable the dynamic placement settings you configured in the Label position section.