Program Listing for File osi_trafficsign.proto¶
↰ Return to documentation for file (osi-documentation/osi-validation/open-simulation-interface/osi_trafficsign.proto)
syntax = "proto2";
option optimize_for = SPEED;
import "osi_common.proto";
package osi3;
//
// \brief Additional value associated with a traffic sign or road marking,
// its unit and its text. The interpretation of this text is left to a
// user-defined procedure
//
message TrafficSignValue
{
// Additional value associated with a traffic sign or road marking,
// e.g. value of a speed limit.
//
optional double value = 1;
// Unit for additional value.
//
optional Unit value_unit = 2;
// Unit for values on traffic sign.
//
enum Unit
{
// Unit of the sign's value is unknown (must not be used in ground
// truth).
//
UNIT_UNKNOWN = 0;
// Other (unspecified but known) unit of the sign's value.
//
UNIT_OTHER = 1;
// Value without unit.
//
// Unit: []
//
UNIT_NO_UNIT = 2;
// Velocity.
// Kilometers per hour.
//
// Unit: [km/h]
//
UNIT_KILOMETER_PER_HOUR = 3;
// Velocity.
// Miles per hour.
//
// Unit: [mph]
//
UNIT_MILE_PER_HOUR = 4;
// Length.
// Meter.
//
// Unit: [m]
//
UNIT_METER = 5;
// Length.
// Kilometer.
//
// Unit: [km]
//
UNIT_KILOMETER = 6;
// Length.
// Feet.
//
// Unit: [ft]
//
UNIT_FEET = 7;
// Length.
// Mile.
//
// Unit: [mile]
//
UNIT_MILE = 8;
// Weight.
// Ton.
//
// Unit: [t]
//
UNIT_METRIC_TON = 9;
// Weight.
// Long ton UK 1,016.047 [kg].
//
// Unit: [tn. l.]
//
UNIT_LONG_TON = 10;
// Weight.
// Short ton USA 907.1847 [kg].
//
// Unit: [tn. sh.]
//
UNIT_SHORT_TON = 11;
// Time of day.
// Hour since midnight.
//
// Unit: [min]
//
UNIT_MINUTES = 12;
// Day of the week.
// Days since Monday. Monday = 0; Tuesday = 1; ...
//
// Unit: []
//
UNIT_DAY = 13;
// Percentage.
// Value.
//
// Unit: [%]
//
UNIT_PERCENTAGE = 14;
}
// Text associated with a sign, e.g. the name of a location whose distance
// to the sign is indicated therein. The interpretation of this text is
// left to a user-defined procedure.
//
optional string text = 3;
}
//
// \brief A traffic sign.
//
// All coordinates and orientations are relative to the global ground truth
// coordinate system.
//
message TrafficSign
{
// The ID of the traffic sign.
//
optional Identifier id = 1;
// Main sign, e.g. speed limit 30 [km/h]
//
optional MainSign main_sign = 2;
// Additional supplementary signs, e.g. time limits, modifying the traffic
// sign.
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated SupplementarySign supplementary_sign = 3;
//
// \brief Main sign of the traffic sign.
//
// \image html OSI_MainSign.svg
//
message MainSign
{
// The base parameters of the traffic sign.
//
// The orientation of the bounding box \c #base
// ( \c BaseStationary::orientation ) is defined as follows:
// The z-axis of the given \c BaseStationary::orientation is the vector
// from the bottom to the top of the traffic sign's 2D image plate.
// (Normally it is equal to the ground truth z-axis.)
// The x-axis of the given \c BaseStationary::orientation is view
// normal of the traffic sign's image.
// This x-axis points from the traffic sign's image in the direction
// from where a 'viewer' could see the traffic sign image.
//
optional BaseStationary base = 1;
// The classification of the traffic sign.
//
optional Classification classification = 2;
//
// \brief \c Classification data for a traffic sign.
//
// \image html OSI_DirectionScope.svg
//
// When constructing a \c MainSign, consider the use of the following
// members:
// - In order to include numerical values indicated in the sign,
// use \c TrafficSignValue::value. Accompany this value with an
// indication of its unit of measure given by \c
// TrafficSignValue::value_unit.
// - In order to include strings of text indicated in the sign,
// use \c TrafficSignValue::text. The interpretation of this text is
// left to a user-defined procedure.
// - Some traffic signs exist in two variants that have a similar
// semantic meaning and the property that the one results from flipping
// the other one around the vertical axis. The optional member \c
// #vertically_mirrored has been provided to enable an explicit choice
// between both variants.
// - For signs in which an arrow symbol is included to constraint their
// scope, the \c #direction_scope member has been provided to indicate
// the direction of the arrow from the perspective of a viewer standing
// right in front of the sign and looking straight towards it.
//
// \note The definition of the sign types is thought to be independent
// of the country, even if the images used in this documentation are
// based on the German Road Traffic Regulations (StVO).
//
message Classification
{
// The traffic sign is not stationary, for example a temporary
// traffic sign in a street construction.
//
optional Variability variability = 1;
// The type of the traffic sign.
//
optional Type type = 2;
// Additional value associated with the traffic sign, e.g. value of
// the speed limit.
//
// \note Field need not be set if traffic sign type does not require
// it.
//
optional TrafficSignValue value = 3;
// Some traffic signs have an additional arrow symbol as an
// additional constraint for their scope (e.g. no parking to the
// right). The arrow direction is given relative to the sign's 2D
// image plane, i.e. as a viewer standing right in front of the sign
// and looking straight towards it would interpret the arrow.
//
// The definition for left and right is according to the following
// temporarily constructed right-handed local coordinate system:
// Set z-axis to match the z-axis of the ground truth coordinate
// system. Set x-axis to the view normal of the traffic sign's image
// (\c #base \c BaseStationary::orientation x-axis).
// Right: direction of the local coordinate system's positive
// y-axis. Left: opposite direction of the local coordinate system's
// y-axis i.e. negative y-axis',
//
// \note If a traffic sign image is on the ground (there is no
// definition for right or left). Normally, this is a road marking
// and not a traffic sign. Actual traffic signs lying on the ground
// might have been intentionally unmounted and, hence, not be in
// effect.
//
optional DirectionScope direction_scope = 4;
// The IDs of the lanes that the sign is assigned to.
// May be multiple if the sign is valid for multiple lanes.
//
// \note OSI uses singular instead of plural for repeated field
// names.
//
repeated Identifier assigned_lane_id = 5;
// Some traffic signs exist in two variants that have
// a similar semantic meaning but differ in that the symbol
// of the one corresponds to the specular reflection of the
// other with respect to the vertical axis.
// For some scenarios it might be relevant to choose the
// reflected version of a reference sign. This can be done
// by setting the \c #vertically_mirrored boolean to \c true.
// As for every boolean in the protocol buffers language, the
// default value of \c #vertically_mirrored is \c false.
//
optional bool vertically_mirrored = 6;
// Boolean flag to indicate that a traffic sign is taken out of service.
// This can be achieved by visibly crossing the sign or covering it completely.
//
optional bool is_out_of_service = 7;
// Definition of traffic sign types.
// Numbers are given according to German StVO.
//
// For an overview of the German StVO see:
// \arg
// https://www.bast.de/DE/Verkehrstechnik/Fachthemen/v1-verkehrszeichen/vz-download.html
// (Catalog of the Federal Road Research Institute - BASt)
// \arg
// https://www.dvr.de/publikationen/downloads/verkehrszeichen.html
// (Images) \arg
// https://www.gesetze-im-internet.de/stvo_2013/anlage_1.html
// (Allgemeine und Besondere Gefahrenzeichen) \arg
// https://www.gesetze-im-internet.de/stvo_2013/anlage_2.html
// (Vorschriftzeichen) \arg
// https://www.gesetze-im-internet.de/stvo_2013/anlage_3.html
// (Richtzeichen) \arg
// https://www.gesetze-im-internet.de/stvo_2013/anlage_4.html
// (Verkehrseinrichtungen) \arg https://traffic-rules.com/
//
enum Type
{
// Type of traffic sign is unknown (must not be used in ground
// truth).
//
TYPE_UNKNOWN = 0;
// Other (unspecified but known) type of traffic sign.
//
TYPE_OTHER = 1;
// Warning: Danger sign.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 101.png
// </td>
// <td>
// StVO 101
// </td>
// </table>
//
TYPE_DANGER_SPOT = 2;
// Warning: Zebra crossing.
// <table border="0">
// <tr>
// <td>
// \image html 101-11.png
// </td>
// <td>
// StVO 101-11
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 101-11.png
// </td>
// <td>
// StVO 101-21
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// <tr>
// <td>
// \image html 350-10.png
// </td>
// <td>
// StVO 350-10
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td>
// \image html 350-20.png
// </td>
// <td>
// StVO 350-20
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
// As symbolic road marking \c
// RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN.
//
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 293.png
// </td>
// <td>
// StVO 293
// </td>
// </table>
//
TYPE_ZEBRA_CROSSING = 87;
// Warning: Low-flying aircraft or sudden aircraft noise.
// <table border="0">
// <tr>
// <td>
// \image html 101-10.png
// </td>
// <td>
// StVO 101-10
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 101-10.png
// </td>
// <td>
// StVO 101-20
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
TYPE_FLIGHT = 110;
// Warning: Cattles crossing.
// <table border="0">
// <tr>
// <td>
// \image html 101-12.png
// </td>
// </td>
// <td>
// StVO 101-12
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 101-12.png
// </td>
// <td>
// StVO 101-22
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
TYPE_CATTLE = 200;
// Warning: Horse riders.
// <table border="0">
// <tr>
// <td>
// \image html 101-13.png
// </td>
// <td>
// StVO 101-13
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 101-13.png
// </td>
// <td>
// StVO 101-23
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
TYPE_HORSE_RIDERS = 197;
// Warning: Amphibian migration.
// <table border="0">
// <tr>
// <td>
// \image html 101-14.png
// </td>
// <td>
// StVO 101-14
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 101-14.png
// </td>
// <td>
// StVO 101-24
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
TYPE_AMPHIBIANS = 188;
// Warning: Falling rocks.
// <table border="0">
// <tr>
// <td>
// \image html 101-15.png
// </td>
// <td>
// StVO 101-15
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 101-15.png
// </td>
// <td>
// StVO 101-25
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
TYPE_FALLING_ROCKS = 96;
// Warning: Risk of snow or ice.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 101-51.png
// </td>
// <td>
// StVO 101-51
// </td>
// </tr>
// </table>
//
TYPE_SNOW_OR_ICE = 94;
// Warning: Crushed stones.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 101-52.png
// </td>
// <td>
// StVO 101-52
// </td>
// </tr>
// </table>
//
TYPE_LOOSE_GRAVEL = 97;
// Warning: Waterside.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 101-53.png
// </td>
// <td>
// StVO 101-53
// </td>
// </tr>
// </table>
//
TYPE_WATERSIDE = 102;
// Warning: Not enough clearance.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 101-54.png
// </td>
// <td>
// StVO 101-54
// </td>
// </tr>
// </table>
//
TYPE_CLEARANCE = 210;
// Warning: Movable bridge.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 101-55.png
// </td>
// <td>
// StVO 101-55
// </td>
// </tr>
// </table>
//
TYPE_MOVABLE_BRIDGE = 101;
// Warning: "Right before left" rule at the next intersection.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 102.png
// </td>
// <td>
// StVO 102
// </td>
// </tr>
// </table>
//
TYPE_RIGHT_BEFORE_LEFT_NEXT_INTERSECTION = 3;
// Warning: Sign for a left turn.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 103-10.png
// </td>
// <td>
// StVO 103-10
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_TURN_RIGHT
//
TYPE_TURN_LEFT = 4;
// Warning: Sign for a right turn.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 103-20.png
// </td>
// <td>
// StVO 103-20
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_TURN_LEFT
//
TYPE_TURN_RIGHT = 5;
// Warning: Sign for a double turn (first left turn).
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 105-10.png
// </td>
// <td>
// StVO 105-10
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_DOUBLE_TURN_RIGHT
//
TYPE_DOUBLE_TURN_LEFT = 6;
// Warning: Sign for a double turn (first right turn).
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 105-20.png
// </td>
// <td>
// StVO 105-20
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_DOUBLE_TURN_LEFT
//
TYPE_DOUBLE_TURN_RIGHT = 7;
// Warning: Steep hill downwards.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 108-4.png
// </td>
// <td>
// StVO 108
// </td>
// <td>
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to indicate slope.
// </td>
// </tr>
// </table>
//
TYPE_HILL_DOWNWARDS = 8;
// Warning: Steep hill upwards.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 110-4.png
// </td>
// <td>
// StVO 110
// </td>
// <td>
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to indicate slope
// </td>
// </tr>
// </table>
//
TYPE_HILL_UPWARDS = 9;
// Warning: Uneven road.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 112.png
// </td>
// <td>
// StVO 112
// </td>
// </tr>
// </table>
//
TYPE_UNEVEN_ROAD = 93;
// Warning: Road slippery when wet or dirty.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 114.png
// </td>
// <td>
// StVO 114
// </td>
// </tr>
// </table>
//
TYPE_ROAD_SLIPPERY_WET_OR_DIRTY = 95;
// Warning: Side winds.
// <table border="0">
// <tr>
// <td>
// \image html 117-10.png
// </td>
// <td>
// StVO 117-10
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 117-10.png
// </td>
// <td>
// StVO 117-20
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
TYPE_SIDE_WINDS = 98;
// Warning: Road narrowing.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 120.png
// </td>
// <td>
// StVO 120
// </td>
// </tr>
// </table>
//
TYPE_ROAD_NARROWING = 10;
// Warning: Road narrowing on the right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 121-10.png
// </td>
// <td>
// StVO 121-10
// </td>
// </tr>
// </table>
//
TYPE_ROAD_NARROWING_RIGHT = 12;
// Warning: Road narrowing on the left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 121-20.png
// </td>
// <td>
// StVO 121-20
// </td>
// </tr>
// </table>
//
TYPE_ROAD_NARROWING_LEFT = 11;
// Warning: Road works sign.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 123.png
// </td>
// <td>
// StVO 123
// </td>
// </tr>
// </table>
//
TYPE_ROAD_WORKS = 13;
// Warning: Traffic queues likely.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 124.png
// </td>
// <td>
// StVO 124
// </td>
// </tr>
// </table>
//
TYPE_TRAFFIC_QUEUES = 100;
// Warning: Two-way-traffic (after one-way lane).
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 125.png
// </td>
// <td>
// StVO 125
// </td>
// </tr>
// </table>
//
TYPE_TWO_WAY_TRAFFIC = 14;
// Warning: Traffic light ahead sign.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 131.png
// </td>
// <td>
// StVO 131
// </td>
// </tr>
// </table>
//
TYPE_ATTENTION_TRAFFIC_LIGHT = 15;
// Warning: Pedestrians.
// <table border="0">
// <tr>
// <td>
// \image html 133-10.png
// </td>
// <td>
// StVO 133-10
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 133-10.png
// </td>
// <td>
// StVO 133-20
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
TYPE_PEDESTRIANS = 103;
// Warning: Children crossing.
// <table border="0">
// <tr>
// <td>
// \image html 136-10.png
// </td>
// <td>
// StVO 136-10
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 136-10.png
// </td>
// <td>
// StVO 136-20
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
TYPE_CHILDREN_CROSSING = 106;
// Warning: Pedal cycle route crossing or joining road sign.
// <table border="0">
// <tr>
// <td>
// \image html 138-10.png
// </td>
// <td>
// StVO 138-10
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 138-10.png
// </td>
// <td>
// StVO 138-20
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
TYPE_CYCLE_ROUTE = 107;
// Warning: Deer crossing.
// <table border="0">
// <tr>
// <td>
// \image html 142-10.png
// </td>
// <td>
// StVO 142-10
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 142-10.png
// </td>
// <td>
// StVO 142-20
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
TYPE_DEER_CROSSING = 109;
// Warning: Level crossing without barrier or gate.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 151.png
// </td>
// <td>
// StVO 151
// </td>
// </tr>
// </table>
//
TYPE_UNGATED_LEVEL_CROSSING = 144;
// Level crossing marker.
// (StVO 156 - Countdown marker indicating that level crossing
// are 2 main signs \c #TYPE_UNGATED_LEVEL_CROSSING and \c
// #TYPE_LEVEL_CROSSING_MARKER.)
// <table border="0">
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 157-20.png
// </td>
// <td style="transform:scaleX(-1)">
// \image html 159-20.png
// </td>
// <td style="transform:scaleX(-1)">
// \image html 161-20.png
// </td>
// <td>
// \image html 156-10.png
// </td>
// <td>
// \image html 156-11.png
// </td>
// </tr>
// <tr style="font-weight:bold">
// <td>
// StVO 157-10
// </td>
// <td>
// StVO 159-10
// </td>
// <td>
// StVO 161-10
// </td>
// <td>
// (StVO 156-10)
// </td>
// <td>
// (StVO 156-11)
// </td>
// </tr>
// <tr>
// <td>
// \image html 157-20.png
// </td>
// <td>
// \image html 159-20.png
// </td>
// <td>
// \image html 161-20.png
// </td>
// <td style="transform:scaleX(-1)">
// \image html 156-10.png
// </td>
// <td>
// \image html 156-21.png
// </td>
// </tr>
// <tr style="font-weight:bold">
// <td>
// StVO 157-20
// </td>
// <td>
// StVO 159-20
// </td>
// <td>
// StVO 162-20
// </td>
// <td>
// (StVO 156-20)
// </td>
// <td>
// (StVO 156-21)
// </td>
// </tr>
// </table>
//
// Variants (here X is any of 157, 159 or 162):
// <table border="0">
// <tr>
// <td>
// StVO X-10
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td>
// StVO X-11
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// Additionally, use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to indicate the remaining
// distance or the number of displayed red stripes. In
// the second case, set \c TrafficSignValue::value_unit
// to \c TrafficSignValue::UNIT_NO_UNIT.
// </td>
// </tr>
// <tr>
// <td>
// StVO X-20
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// <tr>
// <td>
// StVO X-21
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// Additionally, use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to indicate the remaining
// distance or the number of displayed red stripes. In
// the second case, set \c TrafficSignValue::value_unit
// to \c TrafficSignValue::UNIT_NO_UNIT.
// </td>
// </tr>
// </table>
//
TYPE_LEVEL_CROSSING_MARKER = 112;
// St.Andrew's cross, railway traffic has priority.
// <table border="0">
// <tr>
// <td>
// \image html 201-50.png
// <td>
// StVO 201-50
// <td>
// </tr>
// <tr>
// <td>
// \image html 201-52.png
// </td>
// <td>
// StVO 201-52
// </td>
// <td>
// with lightning bolt indicating voltage-carrying overhead
// line.
// </td>
// </tr>
// </table>
//
TYPE_RAILWAY_TRAFFIC_PRIORITY = 135;
// Give way.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 205.png
// </td>
// <td>
// StVO 205
// </td>
// </tr>
// </table>
//
// As symbolic road marking
// \c RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN.
//
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 341.png
// -->
// </td>
// <td>
// StVO 341
// </td>
// </tr>
// </table>
//
TYPE_GIVE_WAY = 16;
// Stop sign.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 206.png
// </td>
// <td>
// StVO 206
// </td>
// </tr>
// </table>
//
// As symbolic road marking
// \c RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN.
//
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 294.png
// </td>
// <td>
// StVO 294
// </td>
// </table>
//
TYPE_STOP = 17;
// Priority must be given to vehicles from the opposite
// direction.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 208.png
// </td>
// <td>
// StVO 208
// </td>
// </tr>
// </table>
//
// See also: \c
// #TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION.
//
TYPE_PRIORITY_TO_OPPOSITE_DIRECTION = 18;
// Priority must be given to vehicles from the opposite
// direction.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:rotate(180deg)">
// \image html 208.png
// </td>
// <td>
// StVO 208, upside down
// </td>
// </tr>
// </table>
//
// See also: \c #TYPE_PRIORITY_TO_OPPOSITE_DIRECTION.
//
TYPE_PRIORITY_TO_OPPOSITE_DIRECTION_UPSIDE_DOWN = 19;
// Prescribed left turn.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 209-10.png
// </td>
// <td>
// StVO 209-10
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_PRESCRIBED_RIGHT_TURN
//
// As symbolic road marking \c
// RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
// (StVO 297).
//
TYPE_PRESCRIBED_LEFT_TURN = 20;
// Prescribed right turn.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 209-10.png
// </td>
// <td>
// StVO 209-20
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_PRESCRIBED_LEFT_TURN
//
// As symbolic road marking \c
// RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
// (StVO 297).
//
TYPE_PRESCRIBED_RIGHT_TURN = 21;
// Prescribed driving straight.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 209-30.png
// </td>
// <td>
// StVO 209-30
// </td>
// </tr>
// </table>
//
// As symbolic road marking \c
// RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
// (StVO 297).
//
TYPE_PRESCRIBED_STRAIGHT = 22;
// Prescribed right way.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 211.png
// </td>
// <td>
// StVO 211
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_PRESCRIBED_LEFT_WAY
//
TYPE_PRESCRIBED_RIGHT_WAY = 24;
// Prescribed left way.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 211-10.png
// </td>
// <td>
// StVO 211-10
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_PRESCRIBED_RIGHT_WAY
//
TYPE_PRESCRIBED_LEFT_WAY = 23;
// Prescribed right turn and driving straight.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 214.png
// </td>
// <td>
// StVO 214
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_PRESCRIBED_LEFT_TURN_AND_RIGHT_TURN
//
// As symbolic road marking \c
// RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
// (StVO 297).
//
TYPE_PRESCRIBED_RIGHT_TURN_AND_STRAIGHT = 26;
// Prescribed left turn and driving straight .
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 214-10.png
// </td>
// <td>
// StVO 214-10
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_PRESCRIBED_RIGHT_TURN_AND_STRAIGHT
//
// As symbolic road marking \c
// RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
// (StVO 297).
//
TYPE_PRESCRIBED_LEFT_TURN_AND_STRAIGHT = 25;
// Prescribed left and right turn.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 214-30.png
// </td>
// <td>
// StVO 214-30
// </td>
// </tr>
// </table>
//
// As symbolic road marking \c
// RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
// (StVO 297).
//
TYPE_PRESCRIBED_LEFT_TURN_AND_RIGHT_TURN = 27;
// Prescribed left turn, right turn and driving straight
// (required for logical signs as road marking).
//
// As symbolic road marking \c
// RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
// (StVO 297).
//
TYPE_PRESCRIBED_LEFT_TURN_RIGHT_TURN_AND_STRAIGHT = 28;
// Roundabout.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 215.png
// </td>
// <td>
// StVO 215
// </td>
// </tr>
// </table>
//
// \note The direction of driving (clockwise, counterclockwise)
// is country-specific.
//
TYPE_ROUNDABOUT = 29;
// One-way road to the left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 220-10.png
// </td>
// <td>
// StVO 220-10
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_ONEWAY_RIGHT
//
TYPE_ONEWAY_LEFT = 30;
// One-way road to the right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 220-20.png
// </td>
// <td>
// StVO 220-20
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_ONEWAY_LEFT
//
TYPE_ONEWAY_RIGHT = 31;
// Drive past on the left side.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 222.png
// </td>
// <td>
// StVO 222
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_PASS_RIGHT
//
TYPE_PASS_LEFT = 32;
// Drive past on the right side.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 222-10.png
// </td>
// <td>
// StVO 222-10
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_PASS_LEFT
//
TYPE_PASS_RIGHT = 33;
// Drive along side lanes.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 223.1-50.png
// </td>
// <td>
// StVO 223.1-50
// </td>
// <td>
// Drive along side lanes, 2 lanes and side lane.
// </td>
// </tr>
// <tr>
// <td>
// \image html 223.1-51.png
// </td>
// <td>
// StVO 223.1-51
// </td>
// <td>
// Drive along side lanes, 3 lanes and side lane.
// </td>
// </tr>
// <tr>
// <td>
// \image html 223.1-52.png
// </td>
// <td>
// StVO 223.1-52
// </td>
// <td>
// Drive along side lanes, 4 lanes and side lane.
// </td>
// </tr>
// </table>
//
TYPE_SIDE_LANE_OPEN_FOR_TRAFFIC = 128;
// Do not drive on the side lane.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 223.2-50.png
// </td>
// <td>
// StVO 223.2-50
// </td>
// <td>
// Do not drive on the side lane, 2 lanes and side lane.
// </td>
// </tr>
// <tr>
// <td>
// \image html 223.2-51.png
// </td>
// <td>
// StVO 223.2-51
// </td>
// <td>
// Do not drive on the side lane, 3 lanes and side lane.
// </td>
// </tr>
// <tr>
// <td>
// \image html 223.2-52.png
// </td>
// <td>
// StVO 223.2-52
// </td>
// <td>
// Do not drive on the side lane, 4 lanes and side lane.
// </td>
// </tr>
// </table>
//
TYPE_SIDE_LANE_CLOSED_FOR_TRAFFIC = 129;
// Side lane closing.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 223.3-50.png
// </td>
// <td>
// StVO 223.3-50
// </td>
// <td>
// Side lane closing, 2 lanes and side lane.
// </td>
// </tr>
// <tr>
// <td>
// \image html 223.3-51.png
// </td>
// <td>
// StVO 223.3-51
// </td>
// <td>
// Side lane closing, 3 lanes and side lane.
// </td>
// </tr>
// <tr>
// <td>
// \image html 223.3-52.png
// </td>
// <td>
// StVO 223.3-52
// </td>
// <td>
// Side lane closing, 4 lanes and side lane.
// </td>
// </tr>
// </table>
//
TYPE_SIDE_LANE_CLOSING_FOR_TRAFFIC = 130;
// Bus stop or tramway stop.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 224.png
// </td>
// <td>
// StVO 224
// </td>
// </tr>
// </table>
//
TYPE_BUS_STOP = 137;
// Taxi rank.
// <table border="0">
// <tr>
// <td colspan="2">
// \image html 229.png "StVO 229"
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_NO_DIRECTION
// </td>
// </tr>
// <tr>
// <td>
// \image html 229-10.png "StVO 229-10"
// </td>
// <td>
// \image html 229-21.png "StVO 229-21"
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_LEFT
// </td>
// </tr>
// <tr>
// <td>
// \image html 229-11.png "StVO 229-11"
// </td>
// <td>
// \image html 229-20.png "StVO 229-20"
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_RIGHT
// </td>
// </tr>
// <tr>
// <td>
// \image html 229-30.png "StVO 229-30"
// </td>
// <td>
// \image html 229-31.png "StVO 229-31"
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_LEFT_RIGHT
// </td>
// </tr>
// </table>
//
TYPE_TAXI_STAND = 138;
// Route for bicycles only.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 237.png
// </td>
// <td>
// StVO 237
// </td>
// </tr>
// </table>
//
TYPE_BICYCLES_ONLY = 145;
// Route for horse riders only.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 238.png
// </td>
// <td>
// StVO 238
// </td>
// </tr>
// </table>
//
TYPE_HORSE_RIDERS_ONLY = 146;
// Route for pedestrians only.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 239.png
// </td>
// <td>
// StVO 239
// </td>
// </tr>
// </table>
//
TYPE_PEDESTRIANS_ONLY = 147;
// Unsegregated route for use by bicycles and pedestrians only.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 240.png
// </td>
// <td>
// StVO 240
// </td>
// </tr>
// </table>
//
TYPE_BICYCLES_PEDESTRIANS_SHARED_ONLY = 148;
// Segregated route for use by bicycles and pedestrians only,
// bicycles on the left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 241-30.png
// </td>
// <td>
// StVO 241-30
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_BICYCLES_PEDESTRIANS_SEPARATED_RIGHT_ONLY
//
TYPE_BICYCLES_PEDESTRIANS_SEPARATED_LEFT_ONLY = 149;
// Segregated route for use by bicycles and pedestrians only,
// bicycles on the right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 241-31.png
// </td>
// <td>
// StVO 241-31
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_BICYCLES_PEDESTRIANS_SEPARATED_LEFT_ONLY
TYPE_BICYCLES_PEDESTRIANS_SEPARATED_RIGHT_ONLY = 150;
// Beginning of the pedestrian zone.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 242.1.png
// </td>
// <td>
// StVO 242.1
// </td>
// </tr>
// </table>
//
TYPE_PEDESTRIAN_ZONE_BEGIN = 151;
// End of the pedestrian zone.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 242.2.png
// </td>
// <td>
// StVO 242.2
// </td>
// </tr>
// </table>
//
TYPE_PEDESTRIAN_ZONE_END = 152;
// Beginning of bicycle road.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 244.1.png
// </td>
// <td>
// StVO 244.1
// </td>
// </tr>
// </table>
//
TYPE_BICYCLE_ROAD_BEGIN = 153;
// End of bicycle road.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 244.2.png
// </td>
// <td>
// StVO 244.2
// </td>
// </tr>
// </table>
//
TYPE_BICYCLE_ROAD_END = 154;
// Lane for buses.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 245.png
// </td>
// <td>
// StVO 245
// </td>
// </tr>
// </table>
//
TYPE_BUS_LANE = 34;
// Bus only lane begin.
// \n
// End: \c #TYPE_BUS_LANE_END
//
TYPE_BUS_LANE_BEGIN = 35;
// Bus only lane end.
// \n
// Begin: \c #TYPE_BUS_LANE_BEGIN
//
TYPE_BUS_LANE_END = 36;
// Entry prohibited for all types of vehicles.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 250.png
// </td>
// <td>
// StVO 250
// </td>
// </tr>
// </table>
//
TYPE_ALL_PROHIBITED = 37;
// Entry prohibited for cars, trucks, and other motorized
// multi-track vehicles.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 251.png
// </td>
// <td>
// StVO 251
// </td>
// </tr>
// </table>
//
TYPE_MOTORIZED_MULTITRACK_PROHIBITED = 38;
// Entry prohibited for trucks.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 253.png
// </td>
// <td>
// StVO 253
// </td>
// </tr>
// </table>
//
// \note In the German StVO, trucks are defined as motorized
// vehicles that are heavier than 3.5 [t].
//
TYPE_TRUCKS_PROHIBITED = 39;
// Entry prohibited for bicycles.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 254.png
// </td>
// <td>
// StVO 254
// </td>
// </tr>
// </table>
//
TYPE_BICYCLES_PROHIBITED = 40;
// Entry prohibited for motorcycles.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 255.png
// </td>
// <td>
// StVO 255
// </td>
// </tr>
// </table>
//
TYPE_MOTORCYCLES_PROHIBITED = 41;
// Entry prohibited for mopeds.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 257-50.png
// </td>
// <td>
// StVO 257-50
// </td>
// </tr>
// </table>
//
TYPE_MOPEDS_PROHIBITED = 155;
// Entry prohibited for horse riders.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 257-51.png
// </td>
// <td>
// StVO 257-51
// </td>
// </tr>
// </table>
//
TYPE_HORSE_RIDERS_PROHIBITED = 156;
// Entry prohibited for horse carriages.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 257-52.png
// </td>
// <td>
// StVO 257-52
// </td>
// </tr>
// </table>
//
TYPE_HORSE_CARRIAGES_PROHIBITED = 157;
// Entry prohibited for cattles.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 257-53.png
// </td>
// <td>
// StVO 257-53
// </td>
// </tr>
// </table>
//
TYPE_CATTLE_PROHIBITED = 158;
// Entry prohibited for buses.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 257-54.png
// </td>
// <td>
// StVO 257-54
// </td>
// </tr>
// </table>
//
TYPE_BUSES_PROHIBITED = 159;
// Entry prohibited for passenger cars.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 257-55.png
// </td>
// <td>
// StVO 257-55
// </td>
// </tr>
// </table>
//
TYPE_CARS_PROHIBITED = 160;
// Entry prohibited for passenger cars with trailers.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 257-56.png
// </td>
// <td>
// StVO 257-56
// </td>
// </tr>
// </table>
//
TYPE_CARS_TRAILERS_PROHIBITED = 161;
// Entry prohibited for trucks with trailers.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 257-57.png
// </td>
// <td>
// StVO 257-57
// </td>
// </tr>
// </table>
//
TYPE_TRUCKS_TRAILERS_PROHIBITED = 162;
// Entry prohibited for tractors.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 257-58.png
// </td>
// <td>
// StVO 257-58
// </td>
// </tr>
// </table>
//
// \note In the German StVO, tractors are defined as motorized
// vehicles that are not allowed to, or cannot, drive faster
// than 25 [km/h].
//
TYPE_TRACTORS_PROHIBITED = 163;
// Entry prohibited for pedestrians.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 259.png
// </td>
// <td>
// StVO 259
// </td>
// </tr>
// </table>
//
TYPE_PEDESTRIANS_PROHIBITED = 42;
// Entry prohibited for all motor vehicles.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 260.png
// </td>
// <td>
// StVO 260
// </td>
// </tr>
// </table>
//
TYPE_MOTOR_VEHICLES_PROHIBITED = 43;
// Entry prohibited for marked vehicles transporting hazardous
// goods.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 261.png
// </td>
// <td>
// StVO 261
// </td>
// </tr>
// </table>
//
TYPE_HAZARDOUS_GOODS_VEHICLES_PROHIBITED = 164;
// Weight limit (entry prohibited for vehicles over maximum
// gross weight shown).
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 262.png
// </td>
// <td>
// StVO 262
// </td>
// </tr>
// </table>
//
// Use
// \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to set the limit.
//
TYPE_OVER_WEIGHT_VEHICLES_PROHIBITED = 165;
// Axle weight limit (entry prohibited for vehicles over weight
// on axle shown).
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 263.png
// </td>
// <td>
// StVO 263
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to set the limit.
//
TYPE_VEHICLES_AXLE_OVER_WEIGHT_PROHIBITED = 166;
// Horizontal clearance (entry prohibited for vehicles wider
// than the width shown).
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html "264-2,3.png"
// </td>
// <td>
// StVO 264
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to set the limit.
//
TYPE_VEHICLES_EXCESS_WIDTH_PROHIBITED = 167;
// Vertical clearance (entry prohibited for vehicles higher than
// the height shown).
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 265.png
// </td>
// <td>
// StVO 265
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to set the limit.
//
TYPE_VEHICLES_EXCESS_HEIGHT_PROHIBITED = 168;
// Length restriction (entry prohibited for vehicles or
// combinations of vehicles longer than the length shown).
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 266.png
// </td>
// <td>
// StVO 266
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to set the limit.
//
TYPE_VEHICLES_EXCESS_LENGTH_PROHIBITED = 169;
// Entry not allowed. One-way road.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 267.png
// </td>
// <td>
// StVO 267
// </td>
// </tr>
// </table>
//
TYPE_DO_NOT_ENTER = 44;
// Snow chains required.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 268.png
// </td>
// <td>
// StVO 268
// </td>
// </tr>
// </table>
//
TYPE_SNOW_CHAINS_REQUIRED = 170;
// Entry prohibited for vehicles carrying water pollutants.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 269.png
// </td>
// <td>
// StVO 269
// </td>
// </tr>
// </table>
//
TYPE_WATER_POLLUTANT_VEHICLES_PROHIBITED = 171;
// Start of area without traffic to reduce harmful air
// pollution.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 270.1.png
// </td>
// <td>
// StVO 270.1
// </td>
// </tr>
// </table>
//
// End: \c #TYPE_ENVIRONMENTAL_ZONE_END
//
TYPE_ENVIRONMENTAL_ZONE_BEGIN = 45;
// End of area without traffic to reduce harmful air pollution.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 270.2.png
// </td>
// <td>
// StVO 270.2
// </td>
// </tr>
// </table>
//
// Begin: \c #TYPE_ENVIRONMENTAL_ZONE_BEGIN
//
TYPE_ENVIRONMENTAL_ZONE_END = 46;
// No U turn left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 272.png
// </td>
// <td>
// StVO 272
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_NO_U_TURN_RIGHT
//
TYPE_NO_U_TURN_LEFT = 47;
// No U turn right.
// <!--
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html abc.png
// </td>
// <td>
// </td>
// </tr>
// </table>
// -->
//
// \note This type is to be applied in left-driving countries.
//
// Left: \c #TYPE_NO_U_TURN_LEFT
//
TYPE_NO_U_TURN_RIGHT = 48;
// Prescribed U turn left.
// \n
// Right: \c #TYPE_PRESCRIBED_U_TURN_RIGHT
//
TYPE_PRESCRIBED_U_TURN_LEFT = 49;
// Prescribed U turn right.
// \n
// \note This type is to be applied in left-driving countries.
//
// Left: \c #TYPE_PRESCRIBED_U_TURN_LEFT
//
TYPE_PRESCRIBED_U_TURN_RIGHT = 50;
// Minimum safety distance for trucks.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 273.png
// </td>
// <td>
// StVO 273
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to set the limit.
//
TYPE_MINIMUM_DISTANCE_FOR_TRUCKS = 51;
// Start of speed limit.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 274-30.png
// </td>
// <td>
// StVO 274
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to set the limit.
//
// End: \c #TYPE_SPEED_LIMIT_END
//
TYPE_SPEED_LIMIT_BEGIN = 52;
// Start of zone with speed limit.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 274.1.png
// </td>
// <td>
// StVO 274.1
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to set the limit.
//
// End: \c #TYPE_SPEED_LIMIT_ZONE_END
//
TYPE_SPEED_LIMIT_ZONE_BEGIN = 53;
// End of zone with speed limit.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 274.2.png
// </td>
// <td>
// StVO 274.2
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to set the limit.
//
// Begin: \c #TYPE_SPEED_LIMIT_ZONE_BEGIN
//
TYPE_SPEED_LIMIT_ZONE_END = 54;
// Start of mandatory minimum speed.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 275.png
// </td>
// <td>
// StVO 275
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to set the speed.
//
// End: \c #TYPE_MINIMUM_SPEED_END
//
TYPE_MINIMUM_SPEED_BEGIN = 55;
// Start of overtaking ban.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 276.png
// </td>
// <td>
// StVO 276
// </td>
// </tr>
// </table>
//
// End: \c #TYPE_OVERTAKING_BAN_END
//
TYPE_OVERTAKING_BAN_BEGIN = 56;
// Start of overtaking ban for trucks.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 277.png
// </td>
// <td>
// StVO 277
// </td>
// </tr>
// </table>
//
// End: \c #TYPE_OVERTAKING_BAN_FOR_TRUCKS_END
//
TYPE_OVERTAKING_BAN_FOR_TRUCKS_BEGIN = 57;
// End of speed limit.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 278-60.png
// </td>
// <td>
// StVO 278
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to refer to the limit.
//
// Begin: \c #TYPE_SPEED_LIMIT_BEGIN
//
TYPE_SPEED_LIMIT_END = 58;
// End of mandatory minimum speed.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 279.png
// </td>
// <td>
// StVO 279
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to refer to the limit.
//
// Begin: \c #TYPE_MINIMUM_SPEED_BEGIN
//
TYPE_MINIMUM_SPEED_END = 59;
// End of overtaking ban.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 280.png
// </td>
// <td>
// StVO 280
// </td>
// </tr>
// </table>
//
// Begin: \c #TYPE_OVERTAKING_BAN_BEGIN
//
TYPE_OVERTAKING_BAN_END = 60;
// End of overtaking ban for trucks.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 281.png
// </td>
// <td>
// StVO 281
// </td>
// </tr>
// </table>
//
// Begin: \c #TYPE_OVERTAKING_BAN_FOR_TRUCKS_BEGIN
//
TYPE_OVERTAKING_BAN_FOR_TRUCKS_END = 61;
// End of all speed and overtaking restrictions.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 282.png
// </td>
// <td>
// StVO 282
// </td>
// </tr>
// </table>
//
TYPE_ALL_RESTRICTIONS_END = 62;
// No stopping sign.
// <table border="0">
// <tr>
// <td colspan="2">
// \image html 283.png "StVO 283"
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_NO_DIRECTION
// </td>
// </tr>
// <tr>
// <td>
// \image html 283-10.png "StVO 283-10"
// </td>
// <td>
// \image html 283-11.png "StVO 283-11"
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_LEFT
// </td>
// </tr>
// <tr>
// <td>
// \image html 283-20.png "StVO 283-20"
// </td>
// <td>
// \image html 283-21.png "StVO 283-21"
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_RIGHT
// </td>
// </tr>
// <tr>
// <td>
// \image html 283-30.png "StVO 283-30"
// </td>
// <td>
// \image html 283-31.png "StVO 283-31"
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_LEFT_RIGHT
// </td>
// </tr>
// </table>
//
TYPE_NO_STOPPING = 63;
// No parking sign.
// <table border="0">
// <tr>
// <td colspan="2">
// \image html 286.png "StVO 286"
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_NO_DIRECTION
// </td>
// </tr>
// <tr>
// <td>
// \image html 286-10.png "StVO 286-10"
// </td>
// <td>
// \image html 286-11.png "StVO 286-11"
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_LEFT
// </td>
// </tr>
// <tr>
// <td>
// \image html 286-20.png "StVO 286-20"
// </td>
// <td>
// \image html 286-21.png "StVO 286-21"
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_RIGHT
// </td>
// </tr>
// <tr>
// <td>
// \image html 286-30.png "StVO 286-30"
// </td>
// <td>
// \image html 286-31.png "StVO 286-31"
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_LEFT_RIGHT
// </td>
// </tr>
// </table>
//
// As symbolic road marking \c
// RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN.
//
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 299.png
// </td>
// <td>
// StVO 299
// </td>
// </table>
//
TYPE_NO_PARKING = 64;
// Begin of no parking zone.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 290.1.png
// </td>
// <td>
// StVO 290.1
// </td>
// </tr>
// </table>
//
// End: \c #TYPE_NO_PARKING_ZONE_END
//
TYPE_NO_PARKING_ZONE_BEGIN = 65;
// End of no parking zone.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 290.2.png
// </td>
// <td>
// StVO 290.2
// </td>
// </tr>
// </table>
//
// Begin: \c #TYPE_NO_PARKING_ZONE_BEGIN
//
TYPE_NO_PARKING_ZONE_END = 66;
// Right of way at the next intersection.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 301.png
// </td>
// <td>
// StVO 301
// </td>
// </tr>
// </table>
//
TYPE_RIGHT_OF_WAY_NEXT_INTERSECTION = 67;
// Begin of priority road with right of way.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 306.png
// </td>
// <td>
// StVO 306
// </td>
// </tr>
// </table>
//
// End: \c #TYPE_RIGHT_OF_WAY_END
//
TYPE_RIGHT_OF_WAY_BEGIN = 68;
// End of priority road with right of way.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 307.png
// </td>
// <td>
// StVO 307
// </td>
// </tr>
// </table>
//
// Begin: \c #TYPE_RIGHT_OF_WAY_BEGIN
//
TYPE_RIGHT_OF_WAY_END = 69;
// Traffic has priority over vehicles from the opposite
// direction.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 308.png
// </td>
// <td>
// StVO 308
// </td>
// </tr>
// </table>
//
// See also: \c #TYPE_PRIORITY_TO_OPPOSITE_DIRECTION
//
TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION = 70;
// Traffic has priority over vehicles from the opposite
// direction.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:rotate(180deg)">
// \image html 308.png
// </td>
// <td>
// StVO 308, upside down
// </td>
// </tr>
// </table>
//
// See also: \c #TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION
//
TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION_UPSIDE_DOWN = 71;
// Town entrance.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 310.png
// </td>
// <td>
// StVO 310
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the town's name and
// district, e.g. "Wilster, Kreis Steinburg".
//
// End: \c #TYPE_TOWN_END
//
TYPE_TOWN_BEGIN = 72;
// Town exit.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 311.png
// </td>
// <td>
// StVO 311
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the town's name and
// district, e.g. "Wilster".
//
// Begin: \c #TYPE_TOWN_BEGIN
//
TYPE_TOWN_END = 73;
// Parking space.
// <table border="0">
// <tr>
// <td>
// \image html 314.png
// </td>
// <td>
// StVO 314
// </td>
// <td>
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_NO_DIRECTION.
// </td>
// </tr>
// <tr>
// <td>
// \image html 314-50.png
// </td>
// <td>
// StVO 314-50
// </td>
// <td>
// Parking house
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_NO_DIRECTION.
// </td>
// </tr>
// <tr>
// <td>
// \image html 316.png
// </td>
// <td>
// StVO 316
// </td>
// <td>
// Park and ride
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_NO_DIRECTION. Set \c
// TrafficSignValue::text to "P+R".
// </td>
// </tr>
// <tr>
// <td>
// </td>
// <td>
// </td>
// <td>
// Park and move
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_NO_DIRECTION. Set \c
// TrafficSignValue::text to "P+M".
// </td>
// </tr>
// <tr>
// <td>
// \image html 317.png
// </td>
// <td>
// StVO 317
// </td>
// <td>
// Hiker's parking
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_NO_DIRECTION.
// </td>
// </tr>
// <tr>
// <td>
// \image html 318.png
// </td>
// <td>
// StVO 318
// </td>
// <td>
// Parking with parking disk
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_NO_DIRECTION.
// </td>
// </tr>
// <tr>
// <td>
// \image html 314-10.png
// </td>
// <td>
// StVO 314-10
// </td>
// <td>
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_LEFT.
// </td>
// </tr>
// <tr>
// <td>
// \image html 314-20.png
// </td>
// <td>
// StVO 314-20
// </td>
// <td>
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_RIGHT.
// </td>
// </tr>
// <tr>
// <td>
// \image html 314-30.png
// </td>
// <td>
// StVO 314-30
// </td>
// <td>
// </td>
// <td>
// Set \c Classification::direction_scope to \c
// #DIRECTION_SCOPE_LEFT_RIGHT.
// </td>
// </tr>
// </table>
//
TYPE_CAR_PARKING = 74;
// Begin of parking zone.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 314.1.png
// </td>
// <td>
// StVO 314.1
// </td>
// </tr>
// </table>
//
// End: \c #TYPE_CAR_PARKING_ZONE_END
//
TYPE_CAR_PARKING_ZONE_BEGIN = 75;
// End of parking zone.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 314.2.png
// </td>
// <td>
// StVO 314.2
// </td>
// </tr>
// </table>
//
// Begin: \c #TYPE_CAR_PARKING_ZONE_BEGIN
//
TYPE_CAR_PARKING_ZONE_END = 76;
// Parking on sidewalks half in the direction of travel left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 315-50.png
// -->
// </td>
// <td>
// StVO 315-50
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_SIDEWALK_HALF_PARKING_RIGHT
//
TYPE_SIDEWALK_HALF_PARKING_LEFT = 172;
// Parking on sidewalks half in the direction of travel right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 315-55.png
// </td>
// <td>
// StVO 315-55
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_SIDEWALK_HALF_PARKING_LEFT
//
TYPE_SIDEWALK_HALF_PARKING_RIGHT = 173;
// Parking on sidewalks completely in the direction of
// travel left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 315-60.png
// -->
// </td>
// <td>
// StVO 315-60
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_SIDEWALK_PARKING_RIGHT
//
TYPE_SIDEWALK_PARKING_LEFT = 174;
// Parking on sidewalks completely in direction of travel right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 315-65.png
// -->
// </td>
// <td>
// StVO 315-65
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_SIDEWALK_PARKING_LEFT
//
TYPE_SIDEWALK_PARKING_RIGHT = 175;
// Parking on sidewalks half, perpendicular, in the direction of
// travel left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 315-70.png
// -->
// </td>
// <td>
// StVO 315-70
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_SIDEWALK_PERPENDICULAR_HALF_PARKING_RIGHT
//
TYPE_SIDEWALK_PERPENDICULAR_HALF_PARKING_LEFT = 176;
// Parking on sidewalks half, perpendicular, in the direction of
// travel right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 315-75.png
// -->
// </td>
// <td>
// StVO 315-75
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_SIDEWALK_PERPENDICULAR_HALF_PARKING_LEFT
//
TYPE_SIDEWALK_PERPENDICULAR_HALF_PARKING_RIGHT = 177;
// Parking on sidewalks, perpendicular, in the direction of
// travel left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 315-80.png
// -->
// </td>
// <td>
// StVO 315-80
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_SIDEWALK_PERPENDICULAR_PARKING_RIGHT
//
TYPE_SIDEWALK_PERPENDICULAR_PARKING_LEFT = 178;
// Parking on sidewalks, perpendicular, in the direction of
// travel right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 315-85.png
// -->
// </td>
// <td>
// StVO 315-85
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_SIDEWALK_PERPENDICULAR_PARKING_LEFT
//
TYPE_SIDEWALK_PERPENDICULAR_PARKING_RIGHT = 179;
// Start of area with calmed / reduced traffic / home zone.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 325.1.png
// </td>
// <td>
// StVO 325.1
// </td>
// </tr>
// </table>
//
// End: \c #TYPE_LIVING_STREET_END
//
TYPE_LIVING_STREET_BEGIN = 77;
// End of area with calmed / reduced traffic / home zone.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 325.2.png
// </td>
// <td>
// StVO 325.2
// </td>
// </tr>
// </table>
//
// Begin: \c #TYPE_LIVING_STREET_BEGIN
//
TYPE_LIVING_STREET_END = 78;
// Tunnel ahead.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 327.png
// </td>
// <td>
// StVO 327
// </td>
// </tr>
// </table>
//
TYPE_TUNNEL = 79;
// Emergency stopping place left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 328.png
// </td>
// <td>
// </td>
// </tr>
// </table>
//
// \note This type is to be applied in left-driving countries.
//
// Right: \c #TYPE_EMERGENCY_STOPPING_RIGHT
//
TYPE_EMERGENCY_STOPPING_LEFT = 80;
// Emergency stopping place right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 328.png
// </td>
// <td>
// StVO 328
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_EMERGENCY_STOPPING_LEFT
//
TYPE_EMERGENCY_STOPPING_RIGHT = 81;
// Begin of highway.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 330.1.png
// </td>
// <td>
// StVO 330.1
// </td>
// </tr>
// </table>
//
// End: \c #TYPE_HIGHWAY_END
//
TYPE_HIGHWAY_BEGIN = 82;
// End of highway.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 330.2.png
// </td>
// <td>
// StVO 330.2
// </td>
// </tr>
// </table>
//
// Begin: \c #TYPE_HIGHWAY_BEGIN
//
TYPE_HIGHWAY_END = 83;
// Begin of expressway for motor vehicles.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 331.1.png
// </td>
// <td>
// StVO 331.1
// </td>
// </tr>
// </table>
//
// End: \c #TYPE_EXPRESSWAY_END
//
TYPE_EXPRESSWAY_BEGIN = 84;
// End of expressways for motor vehicles.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 331.2.png
// </td>
// <td>
// StVO 331.2
// </td>
// </tr>
// </table>
//
// Begin: \c #TYPE_EXPRESSWAY_BEGIN
//
TYPE_EXPRESSWAY_END = 85;
// Highway exit.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 332.png
// </td>
// <td>
// StVO 332
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the destination
// indicated in the sign, e.g. "Mainz Wiesbaden".
//
TYPE_NAMED_HIGHWAY_EXIT = 183;
// Expressway exit.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 332.1.png
// </td>
// <td>
// StVO 332.1
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the destination
// indicated in the sign, e.g. "Mainz Wiesbaden".
//
TYPE_NAMED_EXPRESSWAY_EXIT = 184;
// Exit sign on other roads.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 332.1-20.png
// </td>
// <td>
// StVO 332.1-20
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the destination
// indicated in the sign, e.g. "Duisburg Endeninch".
//
TYPE_NAMED_ROAD_EXIT = 185;
// Highway exit sign.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 333.png
// </td>
// <td>
// StVO 333
// </td>
// </tr>
// </table>
//
TYPE_HIGHWAY_EXIT = 86;
// Exit from expressway (arrow sign).
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 333.1.png
// </td>
// <td>
// StVO 333.1
// </td>
// </tr>
// </table>
//
TYPE_EXPRESSWAY_EXIT = 186;
// One-way street.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 353.png
// -->
// </td>
// <td>
// StVO 353 - Valid only until october 2022.
// </td>
// </tr>
// </table>
//
TYPE_ONEWAY_STREET = 187;
// Crossing guards.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 356.png
// </td>
// <td>
// StVO 356
// </td>
// </tr>
// </table>
//
TYPE_CROSSING_GUARDS = 189;
// Dead-end street.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 357.png
// </td>
// <td>
// StVO 357
// </td>
// </tr>
// </table>
//
TYPE_DEADEND = 190;
// Dead-end street excluding ...
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 357-50.png
// </td>
// <td>
// StVO 357-50
// </td>
// <td>
// excluding pedestrians and bicycles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 357-51.png
// </td>
// <td>
// StVO 357-51
// </td>
// <td>
// excluding pedestrians.
// </td>
// </tr>
// <tr>
// <td>
// \image html 357-52.png
// </td>
// <td>
// StVO 357-52
// </td>
// <td>
// excluding bicycles.
// </td>
// </tr>
// </table>
//
TYPE_DEADEND_EXCLUDING_DESIGNATED_ACTORS = 191;
// First aid station.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 358.png
// </td>
// <td>
// StVO 358
// </td>
// </tr>
// </table>
//
TYPE_FIRST_AID_STATION = 194;
// Police station.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 363.png
// </td>
// <td>
// StVO 363
// </td>
// </tr>
// </table>
//
TYPE_POLICE_STATION = 195;
// Telephone service.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-50.png
// </td>
// <td>
// StVO 365-50
// </td>
// <td>
// Telephone service
// </td>
// <td>
// </td>
// </tr>
// <tr>
// <td>
// \image html 365-51.png
// </td>
// <td>
// StVO 365-51
// </td>
// <td>
// Emergency telephone service
// </td>
// <td>
// Use \c TrafficSignValue::text for "SOS".
// </td>
// </tr>
// </table>
//
TYPE_TELEPHONE = 196;
// Filling station.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-52.png
// </td>
// <td>
// StVO 365-52
// </td>
// <td>
// Filling station.
// </td>
// <td>
// </td>
// </tr>
// <tr>
// <td>
// \image html 365-53.png
// </td>
// <td>
// StVO 365-53
// </td>
// <td>
// LPG filling station.
// </td>
// <td>
// Use \c TrafficSignValue::text for "LPG".
// </td>
// </tr>
// <tr>
// <td>
// \image html 365-54.png
// </td>
// <td>
// StVO 365-54
// </td>
// <td>
// CNG filling station.
// </td>
// <td>
// Use \c TrafficSignValue::text for "CNG".
// </td>
// </tr>
// <tr>
// <td>
// \image html 365-65.png
// </td>
// <td>
// StVO 365-65
// </td>
// <td>
// Charging station for electric vehicles.
// </td>
// <td>
// Use \c TrafficSignValue::text for "E".
// </td>
// </tr>
// <tr>
// <td>
// \image html 365-66.png
// </td>
// <td>
// StVO 365-66
// </td>
// <td>
// H2 filling station.
// </td>
// <td>
// Use \c TrafficSignValue::text for "H2".
// </td>
// </tr>
// </table>
//
TYPE_FILLING_STATION = 198;
// Highway hotel.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-55.png
// </td>
// <td>
// StVO 365-55
// </td>
// </tr>
// </table>
//
TYPE_HOTEL = 201;
// Highway inn.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-56.png
// </td>
// <td>
// StVO 365-56
// </td>
// </tr>
// </table>
//
TYPE_INN = 202;
// Highway kiosk.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-57.png
// </td>
// <td>
// StVO 365-57
// </td>
// </tr>
// </table>
//
TYPE_KIOSK = 203;
// Toilets.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-58.png
// </td>
// <td>
// StVO 365-58
// </td>
// </tr>
// </table>
//
TYPE_TOILET = 204;
// Highway chapel.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-59.png
// </td>
// <td>
// StVO 365-59
// </td>
// </tr>
// </table>
//
TYPE_CHAPEL = 205;
// Tourist information.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-61.png
// </td>
// <td>
// StVO 365-61
// </td>
// </tr>
// </table>
//
TYPE_TOURIST_INFO = 206;
// Roadside assistance.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-62.png
// </td>
// <td>
// StVO 365-62
// </td>
// </tr>
// </table>
//
TYPE_REPAIR_SERVICE = 207;
// Underpass for pedestrians.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-63.png
// </td>
// <td>
// StVO 365-63
// </td>
// </tr>
// </table>
//
TYPE_PEDESTRIAN_UNDERPASS = 208;
// Pedestrian bridge.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-64.png
// </td>
// <td>
// StVO 365-64
// </td>
// </tr>
// </table>
//
TYPE_PEDESTRIAN_BRIDGE = 209;
// Camper place.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-67.png
// </td>
// <td>
// StVO 365-67
// </td>
// </tr>
// </table>
// Camper and caravan place
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 365-68.png
// </td>
// <td>
// StVO 365-68
// </td>
// </tr>
// </table>
//
TYPE_CAMPER_PLACE = 213;
// Advisory speed limit beginning.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 380.png
// -->
// </td>
// <td>
// StVO 380 - Valid only until october 2022.
// </td>
// </tr>
// </table>
//
// \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit.
//
TYPE_ADVISORY_SPEED_LIMIT_BEGIN = 214;
// Advisory speed limit end.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 381.png
// -->
// </td>
// <td>
// StVO 381 - Valid only until october 2022
// </td>
// </tr>
// </table>
//
// \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit.
//
TYPE_ADVISORY_SPEED_LIMIT_END = 215;
// Road passes through the town but not its city center.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 385.png
// </td>
// <td>
// StVO 385
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the town indicated in
// the sign.
//
TYPE_PLACE_NAME = 216;
// Tourist attraction.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 386.1.png
// </td>
// <td>
// StVO 386.1
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the attraction
// indicated in the sign.
//
TYPE_TOURIST_ATTRACTION = 217;
// Tourist route.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 386.2.png
// </td>
// <td>
// StVO 386.2
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the route indicated
// in the sign.
//
TYPE_TOURIST_ROUTE = 218;
// Geographical area containing several tourist attractions.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 386.3.png
// </td>
// <td>
// StVO 386.3
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the area indicated in
// the sign.
//
TYPE_TOURIST_AREA = 219;
// Shoulder unsafe for multi-track motor vehicles.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 388.png
// -->
// </td>
// <td>
// StVO 388 - Valid only until october 2022
// </td>
// </tr>
// </table>
//
TYPE_SHOULDER_NOT_PASSABLE_MOTOR_VEHICLES = 220;
// Shoulder unsafe for vehicles with a permitted gross weight
// over 3.5 [t] and for tractors.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 389.png
// -->
// </td>
// <td>
// StVO 389 - Valid only until october 2022
// </td>
// </tr>
// </table>
//
TYPE_SHOULDER_UNSAFE_TRUCKS_TRACTORS = 221;
// Toll highway beginning.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 390.png
// </td>
// <td>
// StVO 390
// </td>
// </tr>
// </table>
//
TYPE_TOLL_BEGIN = 222;
// Toll highway end.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 390.2.png
// </td>
// <td>
// StVO 390.2
// </td>
// </tr>
// </table>
//
TYPE_TOLL_END = 223;
// Toll road.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 391.png
// </td>
// <td>
// StVO 391
// </td>
// </tr>
// </table>
//
TYPE_TOLL_ROAD = 224;
// Customs post.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 392.png
// -->
// </td>
// <td>
// StVO 392
// </td>
// </tr>
// </table>
//
TYPE_CUSTOMS = 225;
// Information sign posted at international borders.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 393.png
// </td>
// <td>
// StVO 393
// </td>
// </tr>
// </table>
//
TYPE_INTERNATIONAL_BORDER_INFO = 226;
// Red band on lamp posts indicate that streetlight does not
// stay on all night.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 394.png "StVO 394"
// <td>
// \image html 394-50.png "StVO 394-50"
// </tr>
// </table>
//
TYPE_STREETLIGHT_RED_BAND = 227;
// Federal Highway route number.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 401.png
// </td>
// <td>
// StVO 401
// </td>
// </tr>
// </table>
//
TYPE_FEDERAL_HIGHWAY_ROUTE_NUMBER = 228;
// Highway route number.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 405.png
// </td>
// <td>
// StVO 405
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the route number
// indicated in the sign.
//
TYPE_HIGHWAY_ROUTE_NUMBER = 229;
// Highway interchange number (exits, three and four-way
// interchanges).
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 406-50.png "StVO 406-50"
// <td>
// \image html 406-51.png "StVO 406-51"
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the route number
// indicated in the sign.
//
TYPE_HIGHWAY_INTERCHANGE_NUMBER = 230;
// European route number.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 410.png
// </td>
// <td>
// StVO 410
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the route number
// indicated in the sign.
//
TYPE_EUROPEAN_ROUTE_NUMBER = 231;
// Federal highway direction sign, left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 415-10.png
// </td>
// <td>
// StVO 415-10
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_FEDERAL_HIGHWAY_DIRECTION_RIGHT
//
TYPE_FEDERAL_HIGHWAY_DIRECTION_LEFT = 232;
// Federal highway direction sign, right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 415-20.png
// -->
// </td>
// <td>
// StVO 415-20
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_FEDERAL_HIGHWAY_DIRECTION_LEFT
//
TYPE_FEDERAL_HIGHWAY_DIRECTION_RIGHT = 233;
// Primary road direction sign, left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 418-10.png
// </td>
// <td>
// StVO 418-10
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_PRIMARY_ROAD_DIRECTION_RIGHT
//
TYPE_PRIMARY_ROAD_DIRECTION_LEFT = 234;
// Primary road direction sign, right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 418-20.png
// -->
// </td>
// <td>
// StVO 418-20
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_PRIMARY_ROAD_DIRECTION_LEFT
//
TYPE_PRIMARY_ROAD_DIRECTION_RIGHT = 235;
// Secondary road direction sign, left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 419-10.png
// </td>
// <td>
// StVO 419-10
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the destination
// indicated in the sign.
//
// Right: \c #TYPE_SECONDARY_ROAD_DIRECTION_RIGHT
//
TYPE_SECONDARY_ROAD_DIRECTION_LEFT = 236;
// Secondary road direction sign, right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 419-20.png
// </td>
// <td>
// StVO 419-20
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the destination
// indicated in the sign.
//
// Left: \c #TYPE_SECONDARY_ROAD_DIRECTION_LEFT
//
TYPE_SECONDARY_ROAD_DIRECTION_RIGHT = 237;
// Advance direction sign for designated type of vehicle, left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 421-10.png "StVO 421-10"
// <td>
// \image html 421-11.png "StVO 421-11"
// <td>
// \image html 421-12.png "StVO 421-12"
// </tr>
// </table>
//
// Right: \c #TYPE_DIRECTION_DESIGNATED_ACTORS_RIGHT
//
TYPE_DIRECTION_DESIGNATED_ACTORS_LEFT = 238;
// Advance direction sign for designated type of vehicle, right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 421-10.png
// <td style="transform:scaleX(-1)">
// \image html 421-11.png
// <td style="transform:scaleX(-1)">
// \image html 421-12.png
// </tr>
// <tr style="font-weight:bold">
// <td>
// StVO 421-20
// <td>
// StVO 421-21
// <td>
// StVO 421-22
// </tr>
// </table>
//
// Left: \c #TYPE_DIRECTION_DESIGNATED_ACTORS_LEFT
//
TYPE_DIRECTION_DESIGNATED_ACTORS_RIGHT = 239;
// Routing for designated type of vehicle, left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 422-10.png "StVO 422-10"
// <td>
// \image html 422-12.png "StVO 422-12"
// <td>
// \image html 422-14.png "StVO 422-14"
// <td>
// \image html 422-16.png "StVO 422-16"
// </tr>
// </table>
// Routing for designated type of vehicle, align left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 422-11.png "StVO 422-11"
// <td>
// \image html 422-13.png "StVO 422-13"
// <td>
// \image html 422-15.png "StVO 422-15"
// <td>
// \image html 422-17.png "StVO 422-17"
// </tr>
// </table>
// Direction preannouncement sign for designated type of
// vehicle, left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 442-10.png "StVO 442-10"
// <td>
// \image html 442-12.png "StVO 442-12"
// <td>
// \image html 442-13.png "StVO 442-13"
// </tr>
// </table>
//
// Routing or designated type of vehicle, right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 422-10.png
// <td style="transform:scaleX(-1)">
// \image html 422-12.png
// <td style="transform:scaleX(-1)">
// \image html 422-14.png
// <td style="transform:scaleX(-1)">
// \image html 422-16.png
// </tr>
// <tr style="font-weight:bold">
// <td>
// StVO 422-20
// <td>
// StVO 422-22
// <td>
// StVO 422-24
// <td>
// StVO 422-26
// </tr>
// </table>
// Routing for designated type of vehicle, align right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 422-11.png
// <td style="transform:scaleX(-1)">
// \image html 422-13.png
// <td style="transform:scaleX(-1)">
// \image html 422-15.png
// <td style="transform:scaleX(-1)">
// \image html 422-17.png
// </tr>
// <tr style="font-weight:bold">
// <td>
// StVO 422-21
// <td>
// StVO 422-23
// <td>
// StVO 422-25
// <td>
// StVO 422-27
// </tr>
// </table>
// Direction preannouncement sign for designated type of
// vehicle, right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 442-10.png
// <td style="transform:scaleX(-1)">
// \image html 442-12.png
// <td style="transform:scaleX(-1)">
// \image html 442-13.png
// </tr>
// <tr style="font-weight:bold">
// <td>
// StVO 442-20
// <td>
// StVO 442-22
// <td>
// StVO 442-23
// </tr>
// </table>
// Routing for designated type of vehicle, straight.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 422-30.png "StVO 422-30"
// <td>
// \image html 422-32.png "StVO 422-32"
// <td>
// \image html 422-34.png "StVO 422-34"
// <td>
// \image html 422-36.png "StVO 422-36"
// </tr>
// </table>
//
// \note OSI 4.0 will describe the actors and arrows similar to
// the supplementary signs approach.
//
TYPE_ROUTING_DESIGNATED_ACTORS = 240;
// Direction to highway, left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 430-10.png
// </td>
// <td>
// StVO 430-10
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_DIRECTION_TO_HIGHWAY_RIGHT
//
TYPE_DIRECTION_TO_HIGHWAY_LEFT = 143;
// Direction to highway, right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 430-20.png
// -->
// </td>
// <td>
// StVO 430-20
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_DIRECTION_TO_HIGHWAY_LEFT
//
TYPE_DIRECTION_TO_HIGHWAY_RIGHT = 108;
// Direction sign to important local destinations, left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 432-10.png
// </td>
// <td>
// StVO 432-10
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the destination
// indicated in the sign.
//
// Right: \c #TYPE_DIRECTION_TO_LOCAL_DESTINATION_RIGHT
//
TYPE_DIRECTION_TO_LOCAL_DESTINATION_LEFT = 127;
// Direction sign to important local destinations, right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 432-20.png
// -->
// </td>
// <td>
// StVO 432-20
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the destination
// indicated in the sign.
//
// Left: \c #TYPE_DIRECTION_TO_LOCAL_DESTINATION_LEFT
//
TYPE_DIRECTION_TO_LOCAL_DESTINATION_RIGHT = 136;
// Consolidated direction sign.
// <table border="0">
// <tr>
// <td>
// \image html 434-50.png "StVO 434-50"
// <td>
// \image html 434-51.png "StVO 434-51"
// <td>
// \image html 434-52.png "StVO 434-52"
// <td>
// \image html 434-53.png "StVO 434-53"
// </tr>
// </table>
//
TYPE_CONSOLIDATED_DIRECTIONS = 118;
// Street name sign.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 437.png
// </td>
// <td>
// StVO 437
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the street name.
//
TYPE_STREET_NAME = 119;
// Direction preannouncement sign.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 438.png
// </td>
// <td>
// StVO 438
// </td>
// </tr>
// </table>
//
TYPE_DIRECTION_PREANNOUNCEMENT = 120;
// Direction preannouncement sign including lane configuration.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 439.png
// </td>
// <td>
// StVO 439
// </td>
// </tr>
// </table>
//
TYPE_DIRECTION_PREANNOUNCEMENT_LANE_CONFIG = 121;
// Direction preannouncement sign including highway entries.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 440.png
// </td>
// <td>
// StVO 440
// </td>
// </tr>
// </table>
//
TYPE_DIRECTION_PREANNOUNCEMENT_HIGHWAY_ENTRIES = 122;
// Highway announcement board.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 448.png
// </td>
// <td>
// StVO 448
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to set the distance. Use \c
// TrafficSignValue::text to denote the highway and the
// direction indicated in the sign, e.g. "26 Duesseldorf -
// Benrath".
//
TYPE_HIGHWAY_ANNOUNCEMENT = 123;
// Announcement board on other roads outside of highways.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 448-50.png
// </td>
// <td>
// StVO 448-50
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to set the distance. Use \c
// TrafficSignValue::text to denote the destination indicated in
// the sign.
//
TYPE_OTHER_ROAD_ANNOUNCEMENT = 124;
// Announcement highway truck stop.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 448.1.png
// </td>
// <td>
// StVO 448.1
// </td>
// </tr>
// </table>
//
TYPE_HIGHWAY_ANNOUNCEMENT_TRUCK_STOP = 125;
// Highway interchange advance directional sign.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 449.png
// </td>
// <td>
// StVO 449
// </td>
// </tr>
// </table>
//
TYPE_HIGHWAY_PREANNOUNCEMENT_DIRECTIONS = 126;
// Pole indicating highways exit in ... [m].
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 450-50.png "StVO 450-50"
// <td>
// \image html 450-51.png "StVO 450-51"
// <td>
// \image html 450-52.png "StVO 450-52"
// <td>
// \image html 450-53.png "StVO 450-53"
// <td>
// \image html 450-54.png "StVO 450-54"
// <td>
// \image html 450-55.png "StVO 450-55"
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit to specify the distance in [m]
// or the displayed number of stripes (in that case, set \c
// TrafficSignValue::value_unit to \c
// TrafficSignValue::UNIT_NO_UNIT.).
//
TYPE_POLE_EXIT = 88;
// Highway distance board.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 453.png "StVO 453"
// <td>
// \image html 453-50.png "StVO 453-50"
// </tr>
// </table>
//
TYPE_HIGHWAY_DISTANCE_BOARD = 180;
// Detour sign, pointing left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 454-10.png
// </td>
// <td>
// StVO 454-10
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_DETOUR_RIGHT
//
TYPE_DETOUR_LEFT = 181;
// Detour sign, pointing right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 454-20.png
// -->
// </td>
// <td>
// StVO 454-20
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_DETOUR_LEFT
//
TYPE_DETOUR_RIGHT = 182;
// Numbered detour route.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 455.1.png
// </td>
// <td>
// StVO 455.1
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the alternative
// routing name indicated in the sign.
//
// \note OSI 4.0 will describe the arrows similar to the
// supplementary signs approach.
//
TYPE_NUMBERED_DETOUR = 131;
// Announcement; begin of detour.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 457.1.png
// </td>
// <td>
// StVO 457.1
// </td>
// </tr>
// </table>
//
TYPE_DETOUR_BEGIN = 132;
// End of detour.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 457.2.png
// </td>
// <td>
// StVO 457.2
// </td>
// </tr>
// </table>
//
TYPE_DETOUR_END = 133;
// Diversion routing board.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 458.png
// </td>
// <td>
// StVO 458
// </td>
// </tr>
// </table>
//
TYPE_DETOUR_ROUTING_BOARD = 134;
// The sign indicates an alternative routing.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 460-50.png
// </td>
// <td>
// StVO 460-50
// </td>
// <td>
// The sign indicates an alternative routing, announcement.
// </td>
// </tr>
// <tr>
// <td>
// \image html 460-10.png
// </td>
// <td>
// StVO 460-10
// </td>
// <td>
// The sign indicates an alternative routing, preannouncement
// left.
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 460-11.png
// -->
// </td>
// <td>
// StVO 460-11
// </td>
// <td>
// The sign indicates an alternative routing, left.
// </td>
// </tr>
// <tr>
// <td>
// \image html 460-12.png
// </td>
// <td>
// StVO 460-12
// </td>
// <td>
// The sign indicates an alternative routing, change lane left.
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 460-20.png
// -->
// </td>
// <td>
// StVO 460-20
// </td>
// <td>
// The sign indicates an alternative routing, preannouncement
// right.
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 460-21.png
// -->
// </td>
// <td>
// StVO 460-21
// </td>
// <td>
// The sign indicates an alternative routing, right.
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 460-22.png
// -->
// </td>
// <td>
// StVO 460-22
// </td>
// <td>
// The sign indicates an alternative routing, lane change
// right.
// </td>
// </tr>
// <tr>
// <td>
// \image html 460-30.png
// </td>
// <td>
// StVO 460-30
// </td>
// <td>
// The sign indicates an alternative routing, straight.
// </td>
// </tr>
// </table>
//
// Use \c TrafficSignValue::text to denote the alternative
// routing name indicated in the sign.
//
// \note OSI 4.0 will describe the arrows similar to the
// supplementary signs approach.
//
TYPE_OPTIONAL_DETOUR = 111;
// Provisional diversion route schematic.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 466.png
// </td>
// <td>
// StVO 466
// </td>
// </tr>
// </table>
//
TYPE_OPTIONAL_DETOUR_ROUTING = 199;
// Recommended alternate route.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 467.1-10.png
// </td>
// <td>
// StVO 467.1-10
// </td>
// <td>
// Set \c Classification::direction_scope as \c
// DIRECTION_SCOPE_LEFT.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 467.1-10.png
// </td>
// <td>
// StVO 467.1-20
// </td>
// <td>
// Set \c Classification::direction_scope as \c
// DIRECTION_SCOPE_RIGHT.
// </td>
// </tr>
// </table>
//
TYPE_ROUTE_RECOMMENDATION = 211;
// End of recommended alternate route.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 467.2.png
// </td>
// <td>
// StVO 467.2
// </td>
// </tr>
// </table>
//
TYPE_ROUTE_RECOMMENDATION_END = 212;
// X lanes transition, left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 501-10.png
// -->
// </td>
// <td>
// StVO 501-10
// </td>
// <td>
// One associated lane.
// </td>
// </tr>
// <tr>
// <td>
// \image html 501-11.png
// </td>
// <td>
// StVO 501-11
// </td>
// <td>
// Two associated lanes.
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 501-12.png
// -->
// </td>
// <td>
// StVO 501-12
// </td>
// <td>
// Three associated lanes.
// </td>
// </tr>
// <tr>
// <td>
// \image html 505-11.png
// </td>
// <td>
// (StVO 505-11)
// </td>
// <td>
// Two associated lanes with restriction.
// Restriction defined as additional main sign.
// </td>
// </tr>
// <tr>
// <td>
// \image html 505-12.png
// </td>
// <td>
// (StVO 505-12)
// </td>
// <td>
// Three associated lanes with restriction.
// Restrictions defined as additional main sign(s).
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_ANNOUNCE_LANE_TRANSITION_RIGHT
//
TYPE_ANNOUNCE_LANE_TRANSITION_LEFT = 192;
// X lanes transition, right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 501-20.png
// -->
// </td>
// <td>
// StVO 501-20
// </td>
// <td>
// One associated lane.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 501-11.png
// </td>
// <td>
// StVO 501-21
// </td>
// <td>
// Two associated lanes.
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 501-22.png
// -->
// </td>
// <td>
// StVO 501-22
// </td>
// <td>
// Three associated lanes.
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 505-21.png
// -->
// </td>
// <td>
// (StVO 505-21)
// </td>
// <td>
// Two associated lanes with restriction.
// Restriction defined as additional main sign.
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 505-22.png
// -->
// </td>
// <td>
// (StVO 505-22)
// </td>
// <td>
// Three associated lanes with restriction.
// Restrictions defined as additional main sign(s).
// </td>
// </tr>
// </table>
//
// Left: \c #TYPE_ANNOUNCE_LANE_TRANSITION_LEFT
//
TYPE_ANNOUNCE_LANE_TRANSITION_RIGHT = 193;
// End of X right lanes.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 531-10.png
// </td>
// <td>
// StVO 531-10
// </td>
// </tr>
// </table>
//
// As symbolic road marking \c
// RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN.
//
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image tml 297.1-21.png
// -->
// </td>
// <td>
// StVO 297.1-21
// </td>
// </tr>
// </table>
//
TYPE_ANNOUNCE_RIGHT_LANE_END = 90;
// End of X left lanes.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 531-10.png
// </td>
// <td>
// StVO 531-20
// </td>
// </tr>
// </table>
//
// As symbolic road marking \c
// RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN.
//
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 297.1-21.png
// -->
// </td>
// <td>
// StVO 297.1-21
// </td>
// </tr>
// </table>
//
TYPE_ANNOUNCE_LEFT_LANE_END = 89;
// Begin of X right lanes.
// <!--
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 545-11.png
// </td>
// <td>
// (StVO 545-11)
// </td>
// <td>
// Extension from two to three lanes with minimum speed by lane.
// </td>
// <td>
// Restrictions defined as additional main sign(s).
// </td>
// </tr>
// </table>-->
//
// Left: \c #TYPE_ANNOUNCE_LEFT_LANE_BEGIN
//
TYPE_ANNOUNCE_RIGHT_LANE_BEGIN = 115;
// Begin of X left lanes.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 545-11.png
// </td>
// <td>
// (StVO 545-11)
// </td>
// <td>
// Extension from two to three lanes with minimum speed by lane.
// </td>
// <td>
// Restrictions defined as additional main signs.
// </td>
// </tr>
// </table>
//
// Right: \c #TYPE_ANNOUNCE_RIGHT_LANE_BEGIN
//
TYPE_ANNOUNCE_LEFT_LANE_BEGIN = 116;
// Announce lane consolidation.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 551-20.png
// -->
// </td>
// <td>
// StVO 551-20
// </td>
// <td>
// Consolidation of lanes from multiple roads, one continuing,
// one opening.
// </td>
// </tr>
// <tr>
// <td>
// \image html 551-21.png
// </td>
// <td>
// StVO 551-21
// </td>
// <td>
// Consolidation of lanes from multiple roads, two continuing,
// one opening.
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 551-22.png
// -->
// </td>
// <td>
// StVO 551-22
// </td>
// <td>
// Consolidation of lanes from multiple roads, two continuing,
// two opening.
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 551-23.png
// -->
// </td>
// <td>
// StVO 551-23
// </td>
// <td>
// Consolidation of lanes from multiple roads, three continuing,
// two opening.
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 551-24.png
// -->
// </td>
// <td>
// StVO 551-24
// </td>
// <td>
// Consolidation of lanes from multiple roads, three continuing,
// one opening.
// </td>
// </tr>
// </table>
//
TYPE_ANNOUNCE_LANE_CONSOLIDATION = 117;
// Detour around city block.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 590-10.png
// </td>
// <td>
// StVO 590-10
// </td>
// <td>
// turn right, left, left
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 590-11.png
// -->
// </td>
// <td>
// StVO 590-11
// </td>
// <td>
// turn right, right, right
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 590-10.png
// </td>
// <td>
// </td>
// <td>
// turn left, right, right
// </td>
// </tr>
// <tr>
// <td>
// </td>
// <td>
// </td>
// <td>
// turn left, left, left
// </td>
// </tr>
// </table>
//
TYPE_DETOUR_CITY_BLOCK = 142;
// Boom gate.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 600-25.png
// </td>
// <td>
// StVO 600
// </td>
// </tr>
// </table>
//
TYPE_GATE = 141;
// Pole for warning and guiding purposes
// (red/white stripes - StVO 605, also StVO 628 and StVO 629).
// <table border="0">
// <tr>
// <td>
// \image html 605-10.png "StVO 605"
// <td>
// \image html 628-10.png "StVO 628"
// <td>
// \image html 629-10.png "StVO 629"
// </tr>
// </table>
//
// Variants (here X can be any of 605, 628 or 629):
// <table border="0">
// <tr>
// <td>
// StVO X-10, -12, -13 and -14
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td>
// StVO X-11
// </td>
// <td>
// Set \c Classification::direction_scope as \c
// #DIRECTION_SCOPE_RIGHT.
// </td>
// </tr>
// <tr>
// <td>
// StVO X-20, -22, -23 and -24
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// <tr>
// <td>
// StVO X-21
// </td>
// <td>
// Set \c Classification::direction_scope as \c
// #DIRECTION_SCOPE_LEFT.
// </td>
// </tr>
// </table>
//
TYPE_POLE_WARNING = 91;
// Traffic cone.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 610-41.png
// </td>
// <td>
// StVO 610
// </td>
// </tr>
// </table>
//
TYPE_TRAFFIC_CONE = 140;
// Mobile lane closure board.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 615.png
// </td>
// <td>
// StVO 615
// </td>
// <td>
// no arrow
// </td>
// </tr>
// <tr>
// <td>
// \image html 616-30.png
// </td>
// <td>
// StVO 616-30
// </td>
// <td>
// with lighted arrow, large
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 616-31.png
// -->
// </td>
// <td>
// StVO 616-31
// </td>
// <td>
// with lighted arrow, small
// </td>
// </tr>
// </table>
//
// \note Additional traffic signs are modelled as separate main
// signs.
//
TYPE_MOBILE_LANE_CLOSURE = 139;
// Reflector guide posts.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 620-40.png
// </td>
// <td>
// StVO 620-40
// </td>
// <td>
// Reflector guide posts, rectangular reflecting.
// </td>
// </tr>
// <tr>
// <td>
// \image html 620-41.png
// </td>
// <td>
// StVO 621-40
// </td>
// <td>
// Reflector guide posts, two dots reflecting.
// </td>
// </tr>
// </table>
//
// \note No reflecting color is specified.
TYPE_REFLECTOR_POST = 114;
// Directional board used for warning and guiding purposes
// (red/white stripes - StVO 625).
//
// Use the optional attribute \c Classification::direction_scope
// to specify the direction the wedge symbols are pointing at.
//
// Variants (here X is any of 0, 1, 2, 3):
// <table border="0">
// <tr>
// <td>
// \image html 625-11.png
// </td>
// <td>
// StVO 625-1X
// </td>
// <td>
// - Set \c Classification::direction_scope as \c
// #DIRECTION_SCOPE_LEFT.
// - Optionally, use \c TrafficSignValue::value to specify the
// number of wedges on the board. If you do so, set \c
// TrafficSignValue::value_unit to \c
// TrafficSignValue::UNIT_NO_UNIT.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 625-11.png
// </td>
// <td>
// StVO 625-2X
// </td>
// <td>
// - Set \c Classification::direction_scope as \c
// DIRECTION_SCOPE_RIGHT.
// - Optionally, use \c TrafficSignValue::value to specify the
// number of wedges on the board. If you do so, set \c
// TrafficSignValue::value_unit to \c
// TrafficSignValue::UNIT_NO_UNIT.
// </td>
// </tr>
// </table>
//
TYPE_DIRECTIONAL_BOARD_WARNING = 113;
// Guiding plate.
// <table border="0">
// <tr>
// <td>
// \image html 626-10.png
// </td>
// <td>
// StVO 626-10
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 626-10.png
// </td>
// <td>
// StVO 626-20
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
TYPE_GUIDING_PLATE = 104;
// Guiding plate, wedges.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 626-30.png
// </td>
// <td>
// StVO 626-30, 626-31
// </td>
// </tr>
// </table>
//
TYPE_GUIDING_PLATE_WEDGES = 105;
// Parking hazard.
// <table border="0">
// <tr>
// <td>
// \image html 630.png
// </td>
// <td>
// StVO 630-10
// </td>
// <td>
// Set \c #vertically_mirrored to \c false.
// </td>
// </tr>
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 630.png
// </td>
// <td>
// StVO 630-20
// </td>
// <td>
// Set \c #vertically_mirrored to \c true.
// </td>
// </tr>
// </table>
//
TYPE_PARKING_HAZARD = 99;
// Green arrow sign at a traffic light.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 720.png
// </td>
// <td>
// StVO 720
// </td>
// </tr>
// </table>
//
TYPE_TRAFFIC_LIGHT_GREEN_ARROW = 92;
// last_counter = 240
// Please add next element with counter equal to last_counter+1.
// After that, manually increment last_counter
}
// Definition of the direction of the traffic sign's scope.
// Signs marked with additional arrows. (E.g. No parking sign (StVO
// 286) to the left.)
//
enum DirectionScope
{
// Direction of the sign's scope is unknown (must not be used in
// ground truth).
//
DIRECTION_SCOPE_UNKNOWN = 0;
// Other (unspecified but known) direction of the sign's scope.
//
DIRECTION_SCOPE_OTHER = 1;
// Direction of the sign's scope is not specified.
//
DIRECTION_SCOPE_NO_DIRECTION = 2;
// Direction of the sign's scope for its viewer is left.
//
DIRECTION_SCOPE_LEFT = 3;
// Direction of the sign's scope for its viewer is right.
//
DIRECTION_SCOPE_RIGHT = 4;
// Direction of the sign's scope for its viewer is to both
// sides.
//
DIRECTION_SCOPE_LEFT_RIGHT = 5;
}
}
}
//
// \brief Additional supplementary sign modifying the main sign.
//
// \image html OSI_SupplementarySign.svg
//
message SupplementarySign
{
// The base parameters of the supplementary traffic sign.
//
// The orientation of the bounding box \c SupplementarySign::base
// ( \c BaseStationary::orientation ) is defined as follows:
// The z-axis of the given \c BaseStationary::orientation is the vector
// from the bottom to the top of the supplementary traffic sign's 2D
// image plate. (Normally it is equal to the ground truth z-axis.) The
// x-axis of the given \c BaseStationary::orientation is view normal of
// the supplementary traffic sign's image. This x-axis points from the
// supplementary traffic sign's image in the direction from where a
// 'viewer' could see the supplementary traffic sign image.
//
optional BaseStationary base = 1;
// The classification of the supplementary traffic sign.
//
optional Classification classification = 2;
//
// \brief \c Classification data for a supplementary traffic sign.
//
// When constructing a \c SupplementarySign, consider the use of the
// following members:
// - In order to include numerical values indicated in the sign,
// use \c TrafficSignValue::value. Accompany this value with an
// indication of its unit of measure given by \c
// TrafficSignValue::value_unit.
// - In order to include strings of text indicated in the sign,
// use \c TrafficSignValue::text. The interpretation of this text is
// left to a user-defined procedure.
//
// \note The definition of the sign types is thought to be independent
// of the country, even if the images used in this documentation are
// based on the German Road Traffic Regulations (StVO).
//
message Classification
{
// Variability.
//
optional Variability variability = 1;
// Type of the supplementary sign.
//
optional Type type = 2;
// Additional value(s) associated with the traffic sign, e.g.
// length, mass or starting time in time range.
//
// \note Field need not be set if traffic sign type does not require
// it.
//
// \note OSI uses singular instead of plural for repeated field
// names.
//
repeated TrafficSignValue value = 3;
// The IDs of the lanes that the sign is assigned to.
// May be multiple if the sign is valid for multiple lanes.
//
// \note OSI uses singular instead of plural for repeated field
// names.
//
repeated Identifier assigned_lane_id = 4;
// This enumerator indicates a traffic actor (e.g.
// bikes, cars, trucks and so on), that the supplementary sign
// makes reference to.
//
repeated Actor actor = 5;
// A direction arrow shown on the supplementary sign.
//
repeated Arrow arrow = 6;
// Boolean flag to indicate that the supplementary traffic sign is taken out of service.
// This can be achieved by visibly crossing the sign or covering it completely.
//
optional bool is_out_of_service = 7;
// Definition of supplementary sign types.
//
// For general supplementary signs use \c #TYPE_TEXT.
// Supplementary signs with general space restrictions use \c
// #TYPE_SPACE. Supplementary signs with general time restrictions
// use \c #TYPE_TIME. Supplementary signs with displayed arrow
// directions use \c #TYPE_ARROW. Supplementary signs constraint to
// one type of actors use \c #TYPE_CONSTRAINED_TO. Supplementary
// signs that will exclude one type of actors use \c #TYPE_EXCEPT.
// If supplementary signs combine contraints, restrictions, or plain
// text, \c Type is used in descending order in the following
// sequence: \c #TYPE_EXCEPT, \c #TYPE_CONSTRAINED_TO, \c
// #TYPE_ARROW, \c #TYPE_TIME, \c #TYPE_SPACE, \c #TYPE_TEXT.
enum Type
{
// Type of supplementary sign is unknown (must not be used in
// ground truth).
//
TYPE_UNKNOWN = 0;
// Other (unspecified but known) type of supplementary sign.
//
TYPE_OTHER = 1;
// There is no supplementary sign (must not be used in ground
// truth).
//
TYPE_NO_SIGN = 2;
// Text sign.
// \n
// Use it as a canvas for text-only signs:
// - Use \c TrafficSignValue::value to indicate a numerical
// value indicated on the sign. Accompany this value with an
// indication of its unit of measure given by \c
// TrafficSignValue::value_unit.
// - Use \c TrafficSignValue::text to indicate a string of text
// indicated on the sign.
//
// The following table summarizes possible configurations for
// this kind of supplementary signs:
//
// <table cellspacing="0" cellpadding="0">
// <tr>
// <th>
// Image
// </th>
// <th>
// StVO-No.
// </th>
// <th>
// \c TrafficSignValue::text
// </th>
// <th>
// Meaning and Remarks
// </th>
// </tr>
// <tr>
// <td>
// \image html 1007-30.png
// </td>
// <td>
// StVO 1007-30 (StVO 2017)
// \anchor OIL_TEXT
// </td>
// <td>
// ”Ölspur”
// </td>
// <td>
// Trail of oil hazard.
// <br>
// \note The identifier "StVO 1007-30" is currently used to
// denote the hazard of oil trails. Prior to the edition of
// 2017 of the Catalog of Street Signs of the Federal Road
// Research Institute of Germany - BASt, it was used to denote a
// restriction of the validity of the traffic sign to snowy /
// icy conditions.
// See \c #TYPE_SNOW.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-31.png
// </td>
// <td>
// StVO 1007-31
// </td>
// <td>
// "Rauch"
// </td>
// <td>
// Smoke hazard.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-32.png
// </td>
// <td>
// StVO 1007-32
// </td>
// <td>
// "Rollsplitt"
// </td>
// <td>
// Loose gravel hazard.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-33.png
// </td>
// <td>
// StVO 1007-33
// </td>
// <td>
// "Baustellenausfahrt"
// </td>
// <td>
// Construction site exit.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-34.png
// </td>
// <td>
// StVO 1007-34
// </td>
// <td>
// ”Straßenschaden”
// </td>
// <td>
// Damaged roadway.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-35.png
// </td>
// <td>
// StVO 1007-35
// </td>
// <td>
// "Verschmutzte Fahrbahn"
// </td>
// <td>
// Dirty roadway.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-36.png
// </td>
// <td>
// StVO 1007-36
// </td>
// <td>
// "Sprengarbeiten"
// </td>
// <td>
// Blasting.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-37.png
// </td>
// <td>
// StVO 1007-37
// </td>
// <td>
// "Ausfahrt"
// </td>
// <td>
// Exit.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-38.png
// </td>
// <td>
// StVO 1007-38
// </td>
// <td>
// "Baustellen verkehr"
// </td>
// <td>
// Construction vehicles traffic.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-39.png
// </td>
// <td>
// StVO 1007-39
// </td>
// <td>
// "fehlende Fahrbahnmarkierung"
// </td>
// <td>
// Missing lane marking.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-50.png
// </td>
// <td>
// StVO 1007-50
// \anchor ACCIDENT_TEXT
// </td>
// <td>
// "Unfall"
// </td>
// <td>
// Accident hazard.
// <br>
// See \c #TYPE_ACCIDENT
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-51.png
// </td>
// <td>
// StVO 1007-51
// </td>
// <td>
// "Hochwasser"
// </td>
// <td>
// Flood.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-52.png
// </td>
// <td>
// StVO 1007-52
// </td>
// <td>
// "neuer Fahrbahnbelag"
// </td>
// <td>
// New road surface.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-53.png
// </td>
// <td>
// StVO 1007-53
// </td>
// <td>
// "Spurrinnen"
// </td>
// <td>
// Wheel ruts.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-54.png
// </td>
// <td>
// StVO 1007-54
// </td>
// <td>
// "Linksabbieger"
// </td>
// <td>
// Left-turning drivers.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-57.png
// </td>
// <td>
// StVO 1007-57
// </td>
// <td>
// "Kuppe"
// </td>
// <td>
// Hilltop.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-58.png
// </td>
// <td>
// StVO 1007-58
// </td>
// <td>
// "Polizeikontrolle"
// </td>
// <td>
// Police check.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-60.png
// </td>
// <td>
// StVO 1007-60
// </td>
// <td>
// "Seitenstreifen nicht befahrbar"
// </td>
// <td>
// Side strips not passable.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-61.png
// </td>
// <td>
// StVO 1007-61
// </td>
// <td>
// "NEBEL"
// </td>
// <td>
// Restriction of the validity of the traffic sign to foggy.
// </td>
// <tr>
// <td>
// \image html 1007-62.png
// </td>
// <td>
// StVO 1007-62
// </td>
// <td>
// "Zufahrt"
// </td>
// <td>
// Driveway.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1008-30.png
// </td>
// <td>
// StVO 1008-30
// </td>
// <td>
// ”Vorfahrt geändert”
// </td>
// <td>
// Priority changed.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1008-31.png
// </td>
// <td>
// StVO 1008-31
// </td>
// <td>
// ”Verkehrsführung geändert”
// </td>
// <td>
// Routing changed.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1008-32.png
// </td>
// <td>
// StVO 1008-32
// </td>
// <td>
// "Industriegebiet Schienenfahrzeuge haben Vorweg"
// </td>
// <td>
// Industrial area (rail traffic has priority).
// </td>
// </tr>
// <tr>
// <td>
// \image html 1008-33.png
// </td>
// <td>
// StVO 1008-33
// </td>
// <td>
// "Hafengebiet Schienenfahrzeuge haben Vorweg"
// </td>
// <td>
// Port area (rail traffic has priority).
// </td>
// </tr>
// <tr>
// <td>
// \image html 1008-34.png
// </td>
// <td>
// StVO 1008-34
// </td>
// <td>
// ”keine Wendemöglichkeit”
// </td>
// <td>
// No turning possibility.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-30n.png
// </td>
// <td>
// StVO 1012-30 (StVO 2017)
// </td>
// <td>
// "Ladezone"
// </td>
// <td>
// Loading zone.
// \anchor LOADING_ZONE_TEXT
// \note The identifier "StVO 1012-30" is currently used to
// denote a loading zone. Prior to the edition of 2017 of
// the Catalog of Street Signs of the Federal Road Research
// Institute of Germany - BASt, it was used to denote
// the beginning of the validity of regulation prescribed by
// the \c MainSign.
// See [\c Begin](\ref BEGIN_TEXT).
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-30a.png
// </td>
// <td>
// StVO 1012-30
// </td>
// <td>
// "Anfang"
// </td>
// <td>
// Begin
// \anchor BEGIN_TEXT
// \note The identifier "StVO 1012-30" is currently used to
// denote a loading zone. Prior to the edition of 2017 of
// the Catalog of Street Signs of the Federal Road Research
// Institute of Germany - BASt, it was used to denote
// the beginning of the validity of regulation prescribed by
// the \c MainSign.
// See [\c Loading zone](\ref LOADING_ZONE_TEXT).
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-31.png
// </td>
// <td>
// StVO 1012-31
// </td>
// <td>
// "Ende"
// </td>
// <td>
// End.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-34.png
// </td>
// <td>
// StVO 1012-34
// </td>
// <td>
// ”Grüne Welle bei XX km/h”
// </td>
// <td>
// All green signals ("green wave") at certain speed.
// <br>
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit (e.g. [km/h]) to indicate the
// speed.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-35.png
// </td>
// <td>
// StVO 1012-35
// </td>
// <td>
// "bei Rot hier halten"
// </td>
// <td>
// Stop at red light.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-36.png
// </td>
// <td>
// StVO 1012-36
// \anchor NOISE_PROTECTION_TEXT
// </td>
// <td>
// ”Lärmschutz”
// </td>
// <td>
// Noise protection.
// <br>
// See also:
// [\c Noise protection with time limit](\ref NOISE_PROTECTION2)
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-37.png
// </td>
// <td>
// StVO 1012-37
// </td>
// <td>
// "Zuflussregelung"
// </td>
// <td>
// Inflow regulation.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-38.png
// </td>
// <td>
// StVO 1012-38
// </td>
// <td>
// "Nebenstrecke"
// </td>
// <td>
// Secondary route.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-50.png
// </td>
// <td>
// StVO 1012-50
// </td>
// <td>
// "Schule"
// </td>
// <td>
// School.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-51.png
// </td>
// <td>
// StVO 1012-51
// </td>
// <td>
// "Kindergarten"
// </td>
// <td>
// Kindergarten.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-52.png
// </td>
// <td>
// StVO 1012-52
// </td>
// <td>
// "Altenheim"
// </td>
// <td>
// Retirement home.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-53.png
// </td>
// <td>
// StVO 1012-53
// </td>
// <td>
// "Krankenhaus"
// </td>
// <td>
// Hospital.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1013-50.png
// </td>
// <td>
// StVO 1013-50
// </td>
// <td>
// "Seitenstreifen befahren"
// </td>
// <td>
// Driving on side stripes.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1013-51.png
// </td>
// <td>
// StVO 1013-51
// </td>
// <td>
// ”Seitenstreifen räumen”
// </td>
// <td>
// Vacate side stripes.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1014-50.png
// </td>
// <td>
// StVO 1014-50
// </td>
// <td>
// A letter among B,C,D or E
// </td>
// <td>
// Tunnel category according to ADR agreement.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1028-31.png
// </td>
// <td>
// StVO 1028-31
// </td>
// <td>
// "bis Baustelle frei"
// </td>
// <td>
// Exception up to construction site.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1053-30.png
// </td>
// <td>
// StVO 1053-30
// </td>
// <td>
// ”Parken in gekennzeichneten Flächen erlaubt”
// </td>
// <td>
// Parking in marked areas allowed.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1053-31.png
// </td>
// <td>
// StVO 1053-31
// </td>
// <td>
// "mit Parkschein"
// </td>
// <td>
// With parking ticket.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1053-32.png
// </td>
// <td>
// StVO 1053-32
// </td>
// <td>
// ”gebührenpflichtig”
// </td>
// <td>
// Fees apply.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1053-34.png
// </td>
// <td>
// StVO 1053-34
// </td>
// <td>
// "auf dem Seitenstreifen"
// </td>
// <td>
// On the shoulder.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1053-36.png
// </td>
// <td>
// StVO 1053-36
// </td>
// <td>
// "Durchgangsverkehr"
// </td>
// <td>
// Transit traffic.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1053-52.png
// </td>
// <td>
// StVO 1053-52
// </td>
// <td>
// ”nur innerhalb gekennzeichneter Parkflächen”
// </td>
// <td>
// Only within marked parking areas.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1053-53.png
// </td>
// <td>
// StVO 1053-53
// </td>
// <td>
// ”Parken mit Parkschein in gekennzeichneter
// flächen”
// </td>
// <td>
// Parking with parking permit in marked areas.
// </td>
// </tr>
// </table>
//
TYPE_TEXT = 41;
// Text sign with distance indication.
// \n
// Use it as a canvas for text signs that make reference to a
// point or area in space:
// - Use \c TrafficSignValue::value to include the distance
// indicated in the sign. Accompany this value with an
// indication of its unit of measure given by \c
// TrafficSignValue::value_unit (e.g. [m]),
// - Use \c TrafficSignValue::text to indicate the sign's
// specific text,
//
// The following table summarizes possible configurations for
// this kind of supplementary signs:
//
// <table cellspacing="0" cellpadding="0">
// <tr>
// <th>
// Image
// </th>
// <th>
// StVO-No.
// </th>
// <th>
// \c TrafficSignValue member(s)
// </th>
// <th>
// Meaning and Remarks
// </th>
// </tr>
// <tr>
// <td>
// \image html 1004-32.png
// </td>
// <td>
// StVO 1004-32
// </td>
// <td>
// "STOP" + distance
// </td>
// <td>
// Stop in e.g. ... [m]
// </td>
// </tr>
// <tr>
// <td>
// \image html 1005-30.png
// </td>
// <td>
// StVO 1005-30
// </td>
// <td>
// ”Reißverschluss erst in” + distance
// </td>
// <td>
// Zipper merge in e.g. ... [m]
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-59.png
// </td>
// <td>
// StVO 1007-59
// </td>
// <td>
// "Ende Seitenstreifen in" + distance
// </td>
// <td>
// End of the side strip in e.g. ... [m]
// </td>
// </tr>
// <tr>
// <td>
// \image html 1013-52.png
// </td>
// <td>
// StVO 1013-52
// </td>
// <td>
// "Ende in" + distance
// </td>
// <td>
// End in .. [m]
// </td>
// </tr>
// <tr>
// <td>
// \image html 1028-33.png
// </td>
// <td>
// StVO 1028-33
// </td>
// <td>
// "Zufahrt bis frei" + distance or location
// </td>
// <td>
// Except up to ...
// <br>
// If there is a prohibition for all vehicles, the street can
// still be used up to a certain point. To indicate the point,
// use one of the following alternatives:
// - A numerical value described by \c TrafficSignValue::value
// and \c TrafficSignValue::value_unit (e.g. [m]) to indicate
// the point as a distance from the sign.
// - A text described by \c TrafficSignValue::text in order to
// describe the point's location verbally, e.g. "Baugebiet ...".
// </td>
// </tr>
// </table>
//
TYPE_SPACE = 39;
// Text sign with time indication.
// \n
// Use it as a canvas for text signs that make:
// reference to a point in time or a time range.
// - Use one or more \c TrafficSignValue messages to include
// the times indicated in the sign. Accompany each value with an
// indication of its unit of measure given by \c
// TrafficSignValue::value_unit, e.g. [h].
// - For each \c TrafficSignValue, \c TrafficSignValue::value
// indicates the time elapsed since midnight every day.
// - Use the \c TrafficSignValue::text member of the
// first \c TrafficSignValue message to indicate the sign's
// specific text.
//
// \note
// - Time interval need two \c TrafficSignValue messages,
// one to indicate their start and one to indicate their end.
// - In case more than one time range is required, the
// \c TrafficSignValue::value member of the first \c
// TrafficSignValue message is interpreted as the beginning of
// the first interval, the \c TrafficSignValue::value member of
// the second \c TrafficSignValue message is interpreted as the
// end of the first interval, and so on.
//
// The following table summarizes possible configurations for
// this kind of supplementary signs:
//
// <table cellspacing="0" cellpadding="0">
// <tr>
// <th>
// Image
// </th>
// <th>
// StVO-No.
// </th>
// <th>
// \c TrafficSignValue member(s)
// </th>
// <th>
// Meaning and Remarks
// </th>
// </tr>
// <tr>
// <td>
// \image html 1040-30.png
// </td>
// <td>
// StVO 1040-30
// </td>
// <td>
// Time range
// </td>
// <td>
// Time range for validity of traffic sign.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1040-31.png
// </td>
// <td>
// StVO 1040-31
// \anchor StVO_1040-31
// </td>
// <td>
// Two time ranges
// </td>
// <td>
// Time range for validity of traffic sign - two ranges.
// <br>
// For each time range, include a pair of \c TrafficSignValue
// messages according to the [\c rules above](\ref TYPE_TIME).
// </td>
// </tr>
// <tr>
// <td>
// \image html 1040-34.png
// </td>
// <td>
// StVO 1040-34
// </td>
// <td>
// "ab" + Date + Time of the day
// </td>
// <td>
// Restricted from point in time.
// <br>
// - Use three \c TrafficSignValue messages to indicate
// respectively the day of the month, the month of the year,
// and the hour of the day corresponding to the start of the
// restriction.
// - The first two \c TrafficSignValue::value_unit should be
// set to \c TrafficSignValue::UNIT_NO_UNIT.
// - For the last \c TrafficSignValue, \c
// TrafficSignValue::value indicates the time elapsed since
// midnight of the corresponding day, and \c
// TrafficSignValue::value_unit indicates the unit this time is
// expressed in, e.g. in [min].
// </td>
// </tr>
// <tr>
// <td>
// \image html 1040-35.png
// </td>
// <td>
// StVO 1040-35
// \anchor NOISE_PROTECTION2
// </td>
// <td>
// ”Lärmschutz” + time range
// </td>
// <td>
// Noise protection with time limit.
// <br>
// See [\c Noise protection](\ref NOISE_PROTECTION_TEXT).
// </tt>
// </td>
// </tr>
// <tr>
// <td>
// \image html 1040-36.png
// </td>
// <td>
// StVO 1040-36
// </td>
// <td>
// "Schulweg" + time range
// </td>
// <td>
// Way to or from school with time limit.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1042-30.png
// </td>
// <td>
// StVO 1042-30
// </td>
// <td>
// "werktags"
// </td>
// <td>
// Working days.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1042-31.png
// </td>
// <td>
// StVO 1042-31
// \anchor StVO_1042-31
// </td>
// <td>
// "werktags" + time range
// </td>
// <td>
// Working days with time limit.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1042-32.png
// </td>
// <td>
// StVO 1042-32
// </td>
// <td>
// "werktags" + two time ranges
// </td>
// <td>
// Restricted to working days with two time intervals.
// <br>
// For each time range, include a pair of \c TrafficSignValue
// messages according to the [\c rules above](\ref TYPE_TIME).
// <br>
// See also: [\c Two time ranges](\ref StVO_1040-31).
// </td>
// </tr>
// <tr>
// <td>
// \image html 1042-33.png
// </td>
// <td>
// StVO 1042-33
// </td>
// <td>
// "Mo-Fr" + time range
// </td>
// <td>
// Time range for validity of traffic sign with days of the
// week.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1042-34.png
// </td>
// <td>
// StVO 1042-34
// </td>
// <td>
// "Di,Do,Fr" + time range
// </td>
// <td>
// Tuesdays, Thursdays and Fridays with time limit.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1042-35.png
// </td>
// <td>
// StVO 1042-35
// </td>
// <td>
// "an Sonn- und Feiertagen" + time range
// </td>
// <td>
// Restricted times, Sundays and public holidays only.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1042-36.png
// </td>
// <td>
// StVO 1042-36
// </td>
// <td>
// ”Schulbus werktags außer samstags” + two
// time ranges
// </td>
// <td>
// School bus, restricted to daytimes
// <br>
// For each time range, include a pair of \c
// TrafficSignValue messages according to the
// [\c rules above](\ref TYPE_TIME).
// <br>
// See also: [\c Two time ranges](\ref StVO_1040-31),
// [\c Working days except saturdays](\ref StVO_1042-38).
// </td>
// </tr>
// <tr>
// <td>
// \image html 1042-37.png
// </td>
// <td>
// StVO 1042-37
// </td>
// <td>
// "Parken Sa und So erlaubt"
// </td>
// <td>
// Parking on Saturdays and Sundays allowed.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1042-38.png
// </td>
// <td>
// StVO 1042-38
// \anchor StVO_1042-38
// </td>
// <td>
// ”werktags außer samstags”
// </td>
// <td>
// Working days except saturdays.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1042-51.png
// </td>
// <td>
// StVO 1042-51
// </td>
// <td>
// "Sa und So"
// </td>
// <td>
// Saturdays and Sundays.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1042-53.png
// </td>
// <td>
// StVO 1042-53
// </td>
// <td>
// "werktags Schulweg" + time range
// </td>
// <td>
// Way to or from school with time limit on working days.
// <br>
// See also
// [\c Working days with time limit](\ref StVO_1042-31).
// </td>
// </tr>
// </table>
//
TYPE_TIME = 26;
// A supplementary sign showing a direction alone.
// \n
// Use together with the message \c Classification::arrow. The
// following signs can be built:
// <table cellspacing="0" cellpadding="0">
// <tr>
// <th>
// Image
// </th>
// <th>
// StVO-No.
// </th>
// <th>
// Meaning and Remarks
// </th>
// </tr>
// <tr>
// <td>
// \image html 1000-13.png
// </td>
// <td>
// StVO 1000-13
// </td>
// <td>
// Detour sign, three-quarter circle.
// <br>
// Set \c Classification::arrow to \c
// Arrow::DIRECTION_CIRCLE_90_DEG_LEFT.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1000-23.png
// </td>
// <td>
// StVO 1000-23
// </td>
// <td>
// Detour sign, one-quarter circle.
// <br>
// Set \c Classification::arrow to \c
// Arrow::DIRECTION_CIRCLE_90_DEG_RIGHT.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1000-30.png
// </td>
// <td>
// StVO 1000-30
// </td>
// <td>
// Bidirectional traffic sideways.
// <br>
// Use two \c Classification::arrow messages. Set one to \c
// Arrow::DIRECTION_DIRECT_90_DEG_RIGHT and the other one to \c
// Arrow::DIRECTION_DIRECT_90_DEG_LEFT.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1000-31.png
// </td>
// <td>
// StVO 1000-31
// </td>
// <td>
// Bidirectional traffic back and forth.
// <br>
// Use two \c Classification::arrow messages. Set one to \c
// Arrow::DIRECTION_DIRECT_0_DEG and the other one to \c
// Arrow::DIRECTION_DIRECT_180_DEG.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1000-34.png
// </td>
// <td>
// StVO 1000-34
// </td>
// <td>
// Detour sign, semicircle.
// <br>
// Set \c Classification::arrow to \c
// Arrow::DIRECTION_CIRCLE_0_DEG.
// </td>
// </tr>
// </table>
//
TYPE_ARROW = 30;
// The list of traffic actors to which the main sign's
// regulation is constrained to.
// \n
// Use as many members of the \c Actor enumerator as needed to
// denote the related traffic actors.
//
// The following tables summarize possible configurations for
// this kind of supplementary signs:
// <table cellspacing="0" cellpadding="0">
// <tr>
// <th>
// Image
// </th>
// <th>
// StVO-No.
// </th>
// <th>
// \c Actor
// </th>
// <th>
// Meaning and Remarks
// </th>
// </tr>
// <tr>
// <td>
// \image html 1000-12.png
// </td>
// <td>
// StVO 1000-12
// </td>
// <td>
// \c #ACTOR_PEDESTRIANS
// </td>
// <td>
// Use sidewalk on left side of roadway.
// <br>
// Set \c Classification::arrow to \c
// Arrow::DIRECTION_DIRECT_90_DEG_LEFT.
// </td>
// </tr>
// <tr>
// <td>
// <!--
// \image html 1000-22.png
// -->
// </td>
// <td>
// StVO 1000-22
// </td>
// <td>
// \c #ACTOR_PEDESTRIANS
// </td>
// <td>
// Use sidewalk on right side of roadway.
// <br>
// Set \c Classification::arrow to \c
// Arrow::DIRECTION_DIRECT_90_DEG_RIGHT.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1000-32.png
// </td>
// <td>
// StVO 1000-32
// </td>
// <td>
// \c #ACTOR_BICYCLES
// </td>
// <td>
// Bidirectional traffic bicycles sideways.
// <br>
// Use two \c Classification::arrow messages. Set one to \c
// Arrow::DIRECTION_DIRECT_90_DEG_RIGHT and the other one to \c
// Arrow::DIRECTION_DIRECT_90_DEG_LEFT.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1000-33.png
// </td>
// <td>
// StVO 1000-33
// </td>
// <td>
// \c #ACTOR_BICYCLES
// </td>
// <td>
// Bidirectional traffic bicyclesback and forth.
// <br>
// Use two \c Classification::arrow messages. Set one to \c
// Arrow::DIRECTION_DIRECT_0_DEG and the other one to \c
// Arrow::DIRECTION_DIRECT_180_DEG.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-50.png
// </td>
// <td>
// StVO 1010-50
// </td>
// <td>
// \c #ACTOR_MOTORIZED_MULTITRACK_VEHICLES
// </td>
// <td>
// Motorized multi-track vehicles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-51.png
// </td>
// <td>
// StVO 1010-51
// </td>
// <td>
// \c #ACTOR_TRUCKS
// </td>
// <td>
// Trucks.
// \note
// - In the German StVO, trucks are defined as motorized
// vehicles that are heavier than 3.5 [t].
// - This supplementary sign also denotes the trucks' tractor
// units and trailers.
// - Cars and buses with a total weight superior to 3.5 [t] are
// not denoted by this. sign.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-52.png
// </td>
// <td>
// StVO 1010-52
// </td>
// <td>
// \c #ACTOR_BICYCLES
// </td>
// <td>
// Bicycles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-53.png
// </td>
// <td>
// StVO 1010-53
// </td>
// <td>
// \c #ACTOR_PEDESTRIANS
// </td>
// <td>
// Pedestrians.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-54.png
// </td>
// <td>
// StVO 1010-54
// </td>
// <td>
// \c #ACTOR_HORSE_RIDERS
// </td>
// <td>
// Horse riders.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-55.png
// </td>
// <td>
// StVO 1010-55
// </td>
// <td>
// \c #ACTOR_CATTLE
// </td>
// <td>
// Cattles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-56.png
// </td>
// <td>
// StVO 1010-56
// </td>
// <td>
// \c #ACTOR_TRAMS
// </td>
// <td>
// Trams.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-57.png
// </td>
// <td>
// StVO 1010-57
// </td>
// <td>
// \c #ACTOR_BUSES
// </td>
// <td>
// Buses.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-58.png
// </td>
// <td>
// StVO 1010-58
// </td>
// <td>
// \c #ACTOR_CARS
// </td>
// <td>
// Passenger cars.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-59.png
// </td>
// <td>
// StVO 1010-59
// </td>
// <td>
// \c #ACTOR_CARS_WITH_TRAILERS
// </td>
// <td>
// Passenger cars with trailers.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-60.png
// </td>
// <td>
// StVO 1010-60
// </td>
// <td>
// \c #ACTOR_TRUCKS_WITH_TRAILERS
// </td>
// <td>
// Trucks with trailers.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-61.png
// </td>
// <td>
// StVO 1010-61
// </td>
// <td>
// \c #ACTOR_TRACTORS
// </td>
// <td>
// Tractors.
// \note In the German StVO, tractors are defined as motorized
// vehicles that are not allowed to, or cannot, drive faster
// than 25 [km/h].
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-62.png
// </td>
// <td>
// StVO 1010-62
// </td>
// <td>
// \c #ACTOR_MOTORCYCLES
// </td>
// <td>
// Motorbikes.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-63.png
// </td>
// <td>
// StVO 1010-63
// </td>
// <td>
// \c #ACTOR_MOPEDS
// </td>
// <td>
// Mopeds.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-64.png
// </td>
// <td>
// StVO 1010-64
// </td>
// <td>
// \c #ACTOR_HORSE_CARRIAGES
// </td>
// <td>
// Horse carriages.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-65.png
// </td>
// <td>
// StVO 1010-65
// </td>
// <td>
// \c #ACTOR_EBIKES
// </td>
// <td>
// E-bikes.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-66.png
// </td>
// <td>
// StVO 1010-66
// </td>
// <td>
// \c #ACTOR_ELECTRIC_VEHICLES
// </td>
// <td>
// Electric vehicles.
// <br>
// See also: [\c StVO 1050-33](\ref EV_T).
// \anchor EV_I
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-67.png
// </td>
// <td>
// StVO 1010-67
// </td>
// <td>
// \c #ACTOR_CAMPERS
// </td>
// <td>
// Campers.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-32.png
// </td>
// <td>
// StVO 1012-32
// </td>
// <td>
// \c #ACTOR_BICYCLES
// </td>
// <td>
// Cyclists must walk.
// <br>
// Set \c TrafficSignValue::text as "absteigen".
// </td>
// </tr>
// <tr>
// <td>
// \image html 1049-11.png
// </td>
// <td>
// StVO 1049-11
// </td>
// <td>
// \c #ACTOR_TRACTORS
// </td>
// <td>
// Overtaking of tractors allowed.
// <br>
// Set \c TrafficSignValue::text as
// ”dürfen überholt werden”.
// \note In the German StVO, tractors are defined as motorized
// vehicles that are not allowed to, or cannot, drive faster
// than 25 [km/h].
// </td>
// </tr>
// <tr>
// <td>
// \image html 1050-30.png
// </td>
// <td>
// StVO 1050-30
// </td>
// <td>
// \c #ACTOR_TAXIS
// </td>
// <td>
// Taxis.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1050-31.png
// </td>
// <td>
// StVO 1050-31
// </td>
// <td>
// \c #ACTOR_TAXIS
// </td>
// <td>
// A number of taxis.
// <br>
// Use \c TrafficSignValue::value to indicate the number of
// taxis. Set \c TrafficSignValue::value_unit to \c
// TrafficSignValue::UNIT_NO_UNIT.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1050-32.png
// </td>
// <td>
// StVO 1050-32
// </td>
// <td>
// \c #ACTOR_ELECTRIC_VEHICLES
// </td>
// <td>
// Electric vehicles during the charging process.
// <br>
// Set \c TrafficSignValue::text as ”während des
// Ladevorgangs”.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1050-33.png
// </td>
// <td>
// StVO 1050-33
// </td>
// <td>
// \c #ACTOR_ELECTRIC_VEHICLES
// </td>
// <td>
// Electric vehicles.
// <br>
// See also: [\c StVO 1010-66](\ref EV_I).
// \anchor EV_T
// </td>
// </tr>
// <tr>
// <td>
// \image html 1060-32.png
// </td>
// <td>
// StVO 1060-32
// </td>
// <td>
// Two actors \c #ACTOR_BUSES and \c #ACTOR_CARS_WITH_TRAILERS.
// </td>
// <td>
// Buses and cars with trailers.
// <br>
// Set \c TrafficSignValue::text as "auch".
// </td>
// </tr>
// </table>
//
// Also, some of the German StVO traffic signs denoting traffic
// actors for which the main sign's regulation applies
// exclusively can be constructed.
//
// \note
// In the German StVO, these signs typically include the word
// "Nur".
//
// <table cellspacing="0" ellpadding="0">
// <tr>
// <th>
// Image
// </th>
// <th>
// StVO-No.
// </th>
// <th>
// \c
// Actor
// </th>
// <th>
// Meaning and Remarks
// </th>
// </tr>
// <tr>
// <td>
// \image html 1044-10.png
// </td>
// <td>
// StVO 1044-10
// </td>
// <td>
// \c #ACTOR_DISABLED_PERSONS
// </td>
// <td>
// Only disabled persons with an exceptional walking disability
// and blind persons.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1044-11.png
// </td>
// <td>
// StVO 1044-11
// </td>
// <td>
// \c #ACTOR_DISABLED_PERSONS
// </td>
// <td>
// Only disabled persons with parking permit.
// <br>
// Set \c TrafficSignValue::text as "mit Parkausweis
// Nr. XXXX".
// </td>
// </tr>
// <tr>
// <td>
// \image html 1044-12.png
// </td>
// <td>
// StVO 1044-12
// </td>
// <td>
// \c#ACTOR_DISABLED_PERSONS
// </td>
// <td>
// Only disabled persons with an exceptional walking disability
// and blind persons, with number of parking places.
// <br>
// Use \c TrafficSignValue::value to indicate the number of
// parking places. Set \c TrafficSignValue::value_unit to \c
// TrafficSignValue::UNIT_NO_UNIT. Set \c
// TrafficSignValue::text as ”Parkstände”.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1044-30.png
// </td>
// <td>
// StVO 1044-30
// </td>
// <td>
// \c #ACTOR_RESIDENTS
// </td>
// <td>
// Only residents with parking permit.
// <br>
// Set \c TrafficSignValue::text as "mit Parkausweis Nr. XXXX".
// </td>
// </tr>
// <tr>
// <td>
// \image html 1048-14.png
// </td>
// <td>
// StVO 1048-14
// </td>
// <td>
// \c #ACTOR_TRUCKS_WITH_SEMITRAILERS
// </td>
// <td>
// Only trucks with semi-trailers.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1048-15.png
// </td>
// <td>
// StVO 1048-15
// </td>
// <td>
// Two actors: one set to \c #ACTOR_TRUCKS_WITH_SEMITRAILERS
// and the other one set to \c #ACTOR_TRUCKS_WITH_TRAILERS.
// </td>
// <td>
// Only trucks with trailers and trucks with semi-trailers.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1048-18.png
// </td>
// <td>
// StVO 1048-18
// </td>
// <td>
// \c #ACTOR_RAILROAD_TRAFFIC
// </td>
// <td>
// Only railroad traffic.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1048-20.png
// </td>
// <td>
// StVO 1048-20
// </td>
// <td>
// Two actors: one set to \c #ACTOR_CARS_WITH_TRAILERS
// and the other one set to \c #ACTOR_TRUCKS.
// </td>
// <td>
// Only trucks with trailers and trucks with semi-trailers.
// \note
// - In the German StVO, trucks are defined as motorized
// vehicles that are heavier than 3.5 [t].
// - This supplementary sign also denotes the trucks'
// tractor units and trailers.
// - This supplementary sign excludes passenger cars and
// buses.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1049-12.png
// </td>
// <td>
// StVO 1049-12
// </td>
// <td>
// \c #ACTOR_MILITARY_VEHICLES
// </td>
// <td>
// Only military vehicles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1049-13.png
// </td>
// <td>
// StVO 1049-13
// </td>
// <td>
// Three actors, set to respectively \c #ACTOR_TRUCKS, \c
// #ACTOR_BUSES and \c #ACTOR_CARS_WITH_TRAILERS.
// </td>
// <td>
// Only trucks, buses, passenger cars with trailers.
// <br>
// \note
// - In the German StVO, trucks are defined as motorized
// vehicles that are heavier than 3.5 [t].
// - This supplementary sign also denotes the trucks' tractor
// units and trailers.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1052-30.png
// </td>
// <td>
// StVO 1052-30
// </td>
// <td>
// \c #ACTOR_HAZARDOUS_GOODS_VEHICLES
// </td>
// <td>
// Only hazardous goods vehicles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1052-31.png
// </td>
// <td>
// StVO 1052-31
// </td>
// <td>
// \c #ACTOR_WATER_POLLUTANT_VEHICLES
// </td>
// <td>
// Only water pollutant vehicles.
// </td>
// </tr>
// </table>
//
// In addition, some of the German StVO supplementary signs
// with actors that receive an explicit allowance to use
// the street or the shoulder can be constructed:
// <table cellspacing="0" ellpadding="0">
// <tr>
// <th>
// Image
// </th>
// <th>
// StVO-No.
// </th>
// <th>
// \c Actor
// </th>
// <th>
// Meaning and Remarks
// </th>
// </tr>
// <tr>
// <td>
// \image html 1010-10.png
// </td>
// <td>
// StVO 1010-10
// </td>
// <td>
// \c #ACTOR_CHILDREN
// </td>
// <td>
// Children playing on the road and shoulder allowed.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-11.png
// </td>
// <td>
// StVO 1010-11
// </td>
// <td>
// \c #ACTOR_WINTER_SPORTSPEOPLE
// </td>
// <td>
// Winter sports allowed.
// <br>
// Use \c TrafficSignValue::value to indicate the number
// of taxis.
// Set \c TrafficSignValue::value_unit to \c
// TrafficSignValue::UNIT_NO_UNIT.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-12.png
// </td>
// <td>
// StVO 1010-12
// </td>
// <td>
// \c#ACTOR_TRAILERS
// </td>
// <td>
// Trailers allowed.
// \note In the German StVO, this sign states that Trailers can
// park here without the usual two week temporal parking
// restriction.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1010-13.png
// </td>
// <td>
// StVO 1010-13
// </td>
// <td>
// \c #ACTOR_CARAVANS
// </td>
// <td>
// Caravans allowed.
// \note In the German StVO, this sign states that Caravans can
// park here without the usual two week temporal parking
// restriction.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1040-10.png
// </td>
// <td>
// StVO 1040-10
// </td>
// <td>
// \c #ACTOR_WINTER_SPORTSPEOPLE
// </td>
// <td>
// Winter sports within time range allowed.
// <br>
// In order to indicate an allowance limited by a time period,
// use one \c TrafficSignValue message to indicate its start and
// one \c TrafficSignValue message to indicate its end. For
// each \c TrafficSignValue, \c TrafficSignValue::value
// indicates the time elapsed since midnight every day, and \c
// TrafficSignValue::value_unit indicates the unit this time is
// expressed in, e.g. in [min].
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-55.png
// </td>
// <td>
// StVO 1007-55
// </td>
// <td>
// \c #ACTOR_WINTER_SPORTSPEOPLE
// </td>
// <td>
// Ski run crosses.
// <br>
// Set \c TrafficSignValue::text as "kreuzt".
// </td>
// </tr>
// <tr>
// <td>
// \image html 1007-56.png
// </td>
// <td>
// StVO 1007-56
// </td>
// <td>
// \c #ACTOR_WINTER_SPORTSPEOPLE
// </td>
// <td>
// Ski trail.
// <br>
// Set \c TrafficSignValue::text as "kreuzt".
// </td>
// </tr>
// </table>
//
// Finally, the signs
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1006-30.png
// </td>
// <td>
// StVO
// 1006-30
// </td>
// <td>
// \c #ACTOR_CARS_WITH_CARAVANS
// </td>
// <td>
// Slide danger for car/caravan combinations under strong winds.
// <br>
// Set \c TrafficSignValue::text as "Schleudergefahr".
// </td>
// </tr>
// <tr>
// <td>
// \image html 1012-33.png
// </td>
// <td>
// StVO
// 1012-33
// </td>
// <td>
// \c #ACTOR_MOPEDS
// </td>
// <td>
// No mopeds.
// <br>
// Set \c TrafficSignValue::text as "keine".
// </td>
// </tr>
// </table>
// can be incorporated.
//
TYPE_CONSTRAINED_TO = 46;
// The list of traffic actors for which the main sign's
// regulation does not apply or have a special driving
// allowance.
// \n
// Use as many members of the \c Actor enumerator
// as needed to denote the excepted traffic actors:
//
// \note
// In the German StVO, these signs include the word "frei".
//
// The following table summarizes possible configurations for
// this kind of supplementary signs:
//
// <table cellspacing="0" cellpadding="0">
// <tr>
// <th>
// Image
// </th>
// <th>
// StVO-No.
// </th>
// <th>
// \c Actor
// </th>
// <th>
// Meaning and Remarks
// </th>
// </tr>
// <tr>
// <td>
// \image html 1020-11.png
// </td>
// <td>
// StVO 1020-11
// </td>
// <td>
// \c #ACTOR_DISABLED_PERSONS
// </td>
// <td>
// Except disabled persons with parking permit.
// <br>
// Set \c TrafficSignValue::text as "mit Parkausweis Nr. XXXX".
// </td>
// </tr>
// <tr>
// <td>
// \image html 1020-12.png
// </td>
// <td>
// StVO 1020-12
// </td>
// <td>
// Two actors: one set to \c #ACTOR_BICYCLES and the other one
// set to \c #ACTOR_RESIDENTS.
// </td>
// <td>
// Except cyclists and residents.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1020-14.png
// </td>
// <td>
// StVO 1020-14
// </td>
// <td>
// \c #ACTOR_WINTER_SPORTSPEOPLE
// </td>
// <td>
// Except winter sportspeople.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1020-30.png
// </td>
// <td>
// StVO 1020-30
// </td>
// <td>
// \c #ACTOR_RESIDENTS
// </td>
// <td>
// Except residents.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1020-31.png
// </td>
// <td>
// StVO 1020-31
// </td>
// <td>
// \c #ACTOR_RESIDENTS
// </td>
// <td>
// Except residents or free parking.
// </td>
// <br>
// Set \c TrafficSignValue::text as "oder Parken".
// </td>
// </tr>
// <tr>
// <td>
// \image html 1020-32.png
// </td>
// <td>
// StVO 1020-32
// </td>
// <td>
// \c #ACTOR_RESIDENTS
// </td>
// <td>
// Except residents with parking permit.
// <br>
// Set \c TrafficSignValue::text as "mit Parkausweis Nr. XXXX".
// </td>
// </tr>
// <tr>
// <td>
// \image html 1022-10.png
// </td>
// <td>
// StVO 1022-10
// </td>
// <td>
// \c #ACTOR_BICYCLES
// </td>
// <td>
// Except bicycles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1022-11.png
// </td>
// <td>
// StVO 1022-11
// </td>
// <td>
// \c #ACTOR_MOPEDS
// </td>
// <td>
// Except mopeds.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1022-12.png
// </td>
// <td>
// StVO 1022-12
// </td>
// <td>
// \c #ACTOR_MOTORCYCLES
// </td>
// <td>
// Except motorcycles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1022-13.png
// </td>
// <td>
// StVO 1022-13
// </td>
// <td>
// \c #ACTOR_EBIKES
// </td>
// <td>
// Except e-bikes.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1022-14.png
// </td>
// <td>
// StVO 1022-14
// </td>
// <td>
// Two actors: one set to \c #ACTOR_BICYCLES and the other one
// set to \c #ACTOR_MOPEDS.
// </td>
// <td>
// Except bicycles and mopeds.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1022-15.png
// </td>
// <td>
// StVO 1022-15
// </td>
// <td>
// Two actors: one set to \c #ACTOR_EBIKES and the other one
// set to \c #ACTOR_MOPEDS.
// </td>
// <td>
// Except e-bikes and mopeds.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1024-10.png
// </td>
// <td>
// StVO 1024-10
// </td>
// <td>
// \c #ACTOR_CARS
// </td>
// <td>
// Except passenger cars.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1024-11.png
// </td>
// <td>
// StVO 1024-11
// </td>
// <td>
// \c #ACTOR_CARS_WITH_TRAILERS
// </td>
// <td>
// Except passenger cars with trailers.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1024-12.png
// </td>
// <td>
// StVO 1024-12
// </td>
// <td>
// \c #ACTOR_TRUCKS
// </td>
// <td>
// Except trucks, their tractor unit and their trailers.
// \note
// - In the German StVO, trucks are defined as motorized
// vehicles that are heavier than 3.5 [t].
// - This supplementary sign also denotes the trucks' tractor
// units and trailers.
// - Cars and buses with a total weight superior to 3.5 [t] are
// not exempted of a rule by this sign.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1024-13.png
// </td>
// <td>
// StVO 1024-13
// </td>
// <td>
// \c #ACTOR_TRUCKS_WITH_TRAILERS
// </td>
// <td>
// Except trucks with trailers.
// \note
// - In the German StVO, trucks are defined as motorized
// vehicles that are heavier than 3.5 [t].
// - This supplementary sign also denotes the trucks' tractor
// units and trailers.
// - Cars and buses with a total weight superior to 3.5 [t] are
// not exempted of a rule by this sign.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1024-14.png
// </td>
// <td>
// StVO 1024-14
// </td>
// <td>
// \c #ACTOR_BUSES
// </td>
// <td>
// Except buses.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1024-15.png
// </td>
// <td>
// StVO 1024-15
// </td>
// <td>
// \c #ACTOR_RAILROAD_TRAFFIC
// </td>
// <td>
// Except railroad traffic.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1024-16.png
// </td>
// <td>
// StVO 1024-16
// </td>
// <td>
// \c #ACTOR_TRAMS
// </td>
// <td>
// Except trams.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1024-17.png
// </td>
// <td>
// StVO 1024-17
// </td>
// <td>
// \c #ACTOR_TRACTORS
// </td>
// <td>
// Except tractors.
// \note In the German StVO, tractors are defined as motorized
// vehicles that are not allowed to, or cannot, drive faster
// than 25 [km/h].
// </td>
// </tr>
// <tr>
// <td>
// \image html 1024-18.png
// </td>
// <td>
// StVO 1024-18
// </td>
// <td>
// \c #ACTOR_HORSE_CARRIAGES
// </td>
// <td>
// Except horse carriages.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1024-19.png
// </td>
// <td>
// StVO 1024-19
// </td>
// <td>
// \c #ACTOR_CAMPERS
// </td>
// <td>
// Except campers with a maximum allowed mass.
// <br>
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit (e.g. [t]) to indicate the mass.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1024-20.png
// </td>
// <td>
// StVO 1024-20
// </td>
// <td>
// \c #ACTOR_ELECTRIC_VEHICLES
// </td>
// <td>
// Except electric vehicles.
// <br>
// See also: [\c StVO 1026-61](\ref EV_EXCEPT_T).
// \anchor EV_EXCEPT_I
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-31.png
// </td>
// <td>
// StVO 1026-31
// </td>
// <td>
// \c #ACTOR_BUSES
// </td>
// <td>
// Except buses in ocasional service.
// <br>
// Set \c TrafficSignValue::text as "im Gelegenheitsverkehr".
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-32.png
// </td>
// <td>
// StVO 1026-32
// </td>
// <td>
// \c #ACTOR_PUBLIC_TRANSPORT_VEHICLES
// </td>
// <td>
// Except public transport vehicles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-33.png
// </td>
// <td>
// StVO 1026-33
// </td>
// <td>
// \c #ACTOR_EMERGENCY_VEHICLES
// </td>
// <td>
// Except emergency vehicles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-34.png
// </td>
// <td>
// StVO 1026-34
// </td>
// <td>
// \c #ACTOR_MEDICAL_VEHICLES
// </td>
// <td>
// Except medical vehicles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-35.png
// </td>
// <td>
// StVO 1026-35
// </td>
// <td>
// \c #ACTOR_DELIVERY_VEHICLES
// </td>
// <td>
// Except delivery vehicles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-36.png
// </td>
// <td>
// StVO 1026-36
// </td>
// <td>
// \c #ACTOR_AGRICULTURAL_VEHICLES
// </td>
// <td>
// Except agricultural vehicles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-37.png
// </td>
// <td>
// StVO 1026-37
// </td>
// <td>
// \c #ACTOR_FORESTRY_VEHICLES
// </td>
// <td>
// Except forestry vehicles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-38.png
// </td>
// <td>
// StVO 1026-38
// </td>
// <td>
// Two actors: one set to \c #ACTOR_FORESTRY_VEHICLES and
// the other one set to \c #ACTOR_AGRICULTURAL_VEHICLES.
// </td>
// <td>
// Except agricultural and forestry vehicles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-39.png
// </td>
// <td>
// StVO 1026-39
// </td>
// <td>
// \c #ACTOR_OPERATIONAL_AND_UTILITY_VEHICLES
// </td>
// <td>
// Except operational and utility vehicles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-60.png
// </td>
// <td>
// StVO 1026-60
// </td>
// <td>
// \c #ACTOR_ELECTRIC_VEHICLES
// </td>
// <td>
// Except electric vehicles during the charging process.
// <br>
// Set \c TrafficSignValue::text as
// ”während des Ladevorgangs”
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-61.png
// </td>
// <td>
// StVO 1026-61
// </td>
// <td>
// \c #ACTOR_ELECTRIC_VEHICLES
// </td>
// <td>
// Except electric vehicles.
// <br>
// See also: [\c StVO 1024-20](\ref EV_EXCEPT_I).
// \anchor EV_EXCEPT_T
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-62.png
// </td>
// <td>
// StVO 1026-62
// </td>
// <td>
// \c #ACTOR_SLURRY_TRANSPORT
// </td>
// <td>
// Except slurry transport.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1026-63.png
// </td>
// <td>
// StVO 1026-63
// </td>
// <td>
// \c #ACTOR_EBIKES
// </td>
// <td>
// Except e-bikes.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1028-30.png
// </td>
// <td>
// StVO 1028-30
// </td>
// <td>
// \c #ACTOR_CONSTRUCTION_VEHICLES
// </td>
// <td>
// Except construction vehicles.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1028-32.png
// </td>
// <td>
// StVO 1028-32
// </td>
// <td>
// \c #ACTOR_RESIDENTS
// </td>
// <td>
// Exception for residents up to construction site.
// <br>
// Set \c TrafficSignValue::text as "bis Baustelle"
// </td>
// </tr>
// <tr>
// <td>
// \image html 1028-34.png
// </td>
// <td>
// StVO 1028-34
// </td>
// <td>
// \c #ACTOR_FERRY_USERS
// </td>
// <td>
// Except ferry users.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1031-50.png
// </td>
// <td>
// StVO 1031-50
// </td>
// <td>
// Three actors, set to respectively \c
// #ACTOR_VEHICLES_WITH_RED_BADGES,
// \c #ACTOR_VEHICLES_WITH_YELLOW_BADGES and \c
// #ACTOR_VEHICLES_WITH_GREEN_BADGES
// </td>
// <td>
// Vehicles with red, yellow or green badges allowed
// \note Exemption from traffic ban according to 40(1) of the
// Federal Immission Control Act.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1031-51.png
// </td>
// <td>
// StVO 1031-51
// </td>
// <td>
// Two actors, set to respectively \c
// #ACTOR_VEHICLES_WITH_YELLOW_BADGES and \c
// #ACTOR_VEHICLES_WITH_GREEN_BADGES
// </td>
// <td>
// Vehicles with yellow or green badges allowed
// \note Exemption from traffic ban according to 40(1) of the
// Federal Immission Control Act.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1031-52.png
// </td>
// <td>
// StVO 1031-52
// </td>
// <td>
// \c #ACTOR_VEHICLES_WITH_GREEN_BADGES
// </td>
// <td>
// Vehicles with green badges allowed
// \note Exemption from traffic ban according to 40(1) of the
// Federal Immission Control Act.
// </td>
// </tr>
// </table>
//
TYPE_EXCEPT = 45;
// Traffic sign is valid for a certain distance.
// <table border="0">
// <tr>
// <td>
// \image html 1001-30.png "StVO 1001-30"
// <td>
// <!--
// \image html 1001-31.png
// -->
// <td>
// <B>
// StVO 1001-31
// </B>
// <td>
// \image html 1001-32.png "StVO 1001-32"
// <td>
// \image html 1001-33.png "StVO 1001-33"
// <td>
// \image html 1001-34.png "StVO 1001-34"
// <td>
// \image html 1001-35.png "StVO 1001-35"
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit (e.g. [m]) to indicate the
// distance.
//
TYPE_VALID_FOR_DISTANCE = 3;
// Priority road from bottom to left in the intersection.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1002-10.png
// </td>
// <td>
// StVO 1002-10
// </td>
// </tr>
// </table>
//
TYPE_PRIORITY_ROAD_BOTTOM_LEFT_FOUR_WAY = 27;
// Priority road from top to left in the intersection.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleY(-1)">
// \image html 1002-10.png
// </td>
// <td>
// StVO 1002-11
// </td>
// </tr>
// </table>
//
TYPE_PRIORITY_ROAD_TOP_LEFT_FOUR_WAY = 28;
// Priority road from bottom to left, junction from above.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1002-12.png
// </td>
// <td>
// StVO 1002-12
// </td>
// </tr>
// </table>
//
TYPE_PRIORITY_ROAD_BOTTOM_LEFT_THREE_WAY_STRAIGHT = 32;
// Priority road from bottom to left, junction from the right.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleX(-1) rotate(-90deg)">
// \image html 1002-12.png
// </td>
// <td>
// StVO 1002-13
// </td>
// </tr>
// </table>
//
TYPE_PRIORITY_ROAD_BOTTOM_LEFT_THREE_WAY_SIDEWAYS = 33;
// Priority road from top to left, junction from below.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleY(-1)">
// \image html 1002-12.png
// </td>
// <td>
// StVO 1002-14
// </td>
// </tr>
// </table>
//
TYPE_PRIORITY_ROAD_TOP_LEFT_THREE_WAY_STRAIGHT = 34;
// Priority road from bottom to right in the intersection.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:rotate(270deg)">
// \image html 1002-10.png
// </td>
// <td>
// StVO 1002-20
// </td>
// </tr>
// </table>
//
TYPE_PRIORITY_ROAD_BOTTOM_RIGHT_FOUR_WAY = 29;
// Priority road from top to right in the intersection.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:rotate(180deg)">
// \image html 1002-10.png
// </td>
// <td>
// StVO 1002-21
// </td>
// </tr>
// </table>
//
TYPE_PRIORITY_ROAD_TOP_RIGHT_FOUR_WAY = 31;
// Priority road from bottom to right, junction from above.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 1002-12.png
// </td>
// <td>
// StVO 1002-22
// </td>
// </tr>
// </table>
//
TYPE_PRIORITY_ROAD_BOTTOM_RIGHT_THREE_WAY_STRAIGHT = 35;
// Priority road from bottom to right, junction from the left.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:rotate(-90deg)">
// \image html 1002-12.png
// </td>
// <td>
// StVO 1002-23
// </td>
// </tr>
// </table>
//
TYPE_PRIORITY_ROAD_BOTTOM_RIGHT_THREE_WAY_SIDEWAY = 36;
// Priority road from top to right, junction from below.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:rotate(180deg)">
// \image html 1002-12.png
// </td>
// <td>
// StVO 1002-24
// </td>
// </tr>
// </table>
//
TYPE_PRIORITY_ROAD_TOP_RIGHT_THREE_WAY_STRAIGHT = 37;
// Distance to the start of validity of the traffic sign.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1004-30.png "StVO 1004-30"
// <td>
// \image html 1004-31.png "StVO 1004-31"
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit (e.g. [m]) to indicate the
// distance.
//
// \note For OSI 4.0 compatibility use \c #TYPE_SPACE instead.
//
TYPE_VALID_IN_DISTANCE = 4;
// Stop in e.g. .. [m].
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1004-32.png
// </td>
// <td>
// StVO 1004-32
// </td>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit (e.g. [m]) to indicate the
// distance.
//
// \note For OSI 4.0 compatibility use \c #TYPE_SPACE instead.
//
TYPE_STOP_IN = 25;
// Direction, left-pointing.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1000-10.png
// </td>
// <td>
// StVO 1000-10
// </td>
// </tr>
// </table>
//
// \note For OSI 4.0 compatibility use \c #TYPE_ARROW instead.
//
TYPE_LEFT_ARROW = 11;
// Direction of potential danger, left-pointing.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1000-11.png
// </td>
// <td>
// StVO 1000-11
// </td>
// </tr>
// </table>
//
// \note For OSI 4.0 compatibility use \c #TYPE_ARROW instead.
//
TYPE_LEFT_BEND_ARROW = 13;
// Direction, right-pointing.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 1000-10.png
// </td>
// <td>
// StVO 1000-20
// </td>
// </tr>
// </table>
//
// \note For OSI 4.0 compatibility use \c #TYPE_ARROW instead.
//
TYPE_RIGHT_ARROW = 12;
// Direction of potential danger, right-pointing.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td style="transform:scaleX(-1)">
// \image html 1000-11.png
// </td>
// <td>
// StVO 1000-21
// </td>
// </tr>
// </table>
//
// \note For OSI 4.0 compatibility use \c #TYPE_ARROW instead.
//
TYPE_RIGHT_BEND_ARROW = 14;
// Accident hazard.
// <table border="0">
// <tr>
// <td>
// \image html 1006-31.png
// </td>
// <td>
// StVO 1006-31
// </td>
// </tr>
// </table>
//
// See also: [\c TYPE_TEXT](\ref ACCIDENT_TEXT).
//
TYPE_ACCIDENT = 40;
// Restriction of the validity of the traffic sign to snowy /
// icy conditions.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// <!--
// \image html 1007-30.png
// -->
// </td>
// <td>
// StVO 1007-30
// </td>
// </tr>
// </table>
//
// \note The identifier "StVO 1007-30" was used to denote a
// restriction of the validity of the traffic sign to snowy /
// icy conditions until the edition of 2013 of the official
// Catalog of Street Signs of the Federal Road Research
// Institute of Germany - BASt. Since the edition corresponding
// to 2017, "StVO 1007-30" is used to denote the hazard of oil
// trails. See [\c TYPE_OIL](\ref OIL_TEXT).
//
TYPE_SNOW = 9;
// Restriction of the validity of the traffic sign to foggy
// conditions.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1007-61.png
// </td>
// <td>
// StVO 1007-61
// </td>
// </tr>
// </table>
//
// \note For OSI 4.0 compatibility use \c #TYPE_TEXT instead.
//
TYPE_FOG = 8;
// Information on rolling highway.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1010-14.png
// </td>
// <td>
// StVO 1010-14
// </td>
// </tr>
// </table>
//
TYPE_ROLLING_HIGHWAY_INFORMATION = 48;
// Information about services.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1010-15.png
// </td>
// <td>
// StVO 1010-15
// </td>
// </tr>
// </table>
//
TYPE_SERVICES = 47;
// Time range for validity of traffic sign.
// <table border="0">
// <tr>
// <td>
// \image html 1040-30.png "StVO 1040-30"
// <td>
// \image html 1042-33.png "StVO 1042-33"
// </tr>
// </table>
//
// - Use one \c TrafficSignValue message to indicate the start
// of the time range and one \c TrafficSignValue message to
// indicate the end of the time range. For each \c
// TrafficSignValue, \c TrafficSignValue::value indicates
// the time elapsed since midnight each day, and \c
// TrafficSignValue::value_unit indicates the unit this time is
// expressed in, e.g. in [min].
// - If including start and end days of the week, include two
// additional \c TrafficSignValue messages. For these messages,
// use \c TrafficSignValue::value_unit as \c
// TrafficSignValue::UNIT_NO_UNIT and \c
// TrafficSignValue::value as an \c integer from 1 to 7,
// where 1 denotes Monday and 7 denotes Sunday.
//
// \note For OSI 4.0 compatibility use \c #TYPE_TIME instead.
//
TYPE_TIME_RANGE = 5;
// Parking disc restrictions.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1040-32.png
// </td>
// <td>
// StVO 1040-32
// </td>
// <td>
// Parking disc restriction
// </td>
// <td>
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit (e.g. [min]) to indicate the
// allowed duration of parking.
// </td>
// </tr>
// <tr>
// <td>
// \image html 1040-33.png
// </td>
// <td>
// StVO 1040-33
// </td>
// <td>
// Parking disc restriction for marked parking areas
// </td>
// <td>
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit (e.g. [min]) to indicate the
// allowed duration of parking. Set \c TrafficSignValue::text
// to ”in gekennzeichneten Flächen”.
// </td>
// </tr>
// </table>
//
TYPE_PARKING_DISC_TIME_RESTRICTION = 43;
// Restriction of the validity of the traffic sign depending on
// the vehicle's weight.
// <table border="0">
// <tr>
// <td>
// \image html 1053-33.png "StVO 1053-33"
// <td>
// \image html 1053-37.png "StVO 1053-37"
// <td>
// \image html 1060-33.png "StVO 1060-33"
// </tr>
// </table>
//
// Use \c TrafficSignValue::value and \c
// TrafficSignValue::value_unit (e.g. in [t]) to indicate the
// weight.
//
TYPE_WEIGHT = 6;
// If "wet surface".
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1053-35.png
// </td>
// <td>
// StVO 1053-35
// </td>
// </tr>
// </table>
//
TYPE_WET = 44;
// Parking constraints.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1053-38.png
// </td>
// <td>
// StVO 1053-38
// </td>
// <td>
// pull in crosswise
// </td>
// </tr>
// <tr>
// <td>
// \image html 1053-39.png
// </td>
// <td>
// StVO 1053-39
// </td>
// <td>
// pull in diagonally
// </td>
// </tr>
// </table>
//
TYPE_PARKING_CONSTRAINT = 42;
// No parking, also on verges/shoulder.
// <table cellspacing="0" cellpadding="0">
// <tr>
// <td>
// \image html 1060-31.png
// </td>
// <td>
// StVO 1060-31
// </td>
// </tr>
// </table>
//
TYPE_NO_WAITING_SIDE_STRIPES = 38;
// Restriction of the validity of the traffic sign to wet /
// rainy conditions.
//
// (No German StVO-Nr., Austrian StVO 1960 supplementary sign
// g).
//
TYPE_RAIN = 7;
// Combined restriction of the validity of the traffic sign to
// rainy or snowy conditions denoted by a single supplementary
// sign (instead of two signs of \c #TYPE_RAIN and \c #TYPE_SNOW
// respectively).
//
// (StVO -, Austria)
//
TYPE_SNOW_RAIN = 10;
// Valid at night.
//
TYPE_NIGHT = 19;
// Stop 4 way.
//
TYPE_STOP_4_WAY = 21;
// Trucks.
//
// \note For OSI 4.0 compatibility use the message \c Actor
// instead.
//
TYPE_TRUCK = 15;
// Tractors may be passed.
//
// \note For OSI 4.0 compatibility use the message \c Actor
// instead.
//
TYPE_TRACTORS_MAY_BE_PASSED = 16;
// Vehicles transporting hazardous goods.
//
// \note For OSI 4.0 compatibility use the message \c Actor
// instead.
//
TYPE_HAZARDOUS = 17;
// Trailers.
//
// \note For OSI 4.0 compatibility use the message \c Actor
// instead.
//
TYPE_TRAILER = 18;
// Zone.
//
// \note For OSI 4.0 compatibility use the message \c Actor
// instead.
//
TYPE_ZONE = 20;
// Motorcycles.
//
// \note For OSI 4.0 compatibility use the message \c Actor
// instead.
//
TYPE_MOTORCYCLE = 22;
// Motorcycles allowed.
//
// \note For OSI 4.0 compatibility use the message \c Actor
// instead.
//
TYPE_MOTORCYCLE_ALLOWED = 23;
// Cars.
//
// \note For OSI 4.0 compatibility use the message \c Actor
// instead.
//
TYPE_CAR = 24;
// last_counter = 48
// Please add next element with counter equal to last_counter+1.
// After that, manually increment last_counter
}
// Definition of the traffic actors the supplementary sign makes
// reference to. E.g. bikes, trucks, cars, etc.
//
enum Actor
{
// An unknown actor
//
ACTOR_UNKNOWN = 0;
// Other actor (specified but known)
//
ACTOR_OTHER = 1;
// The actor is not specified
//
ACTOR_NO_ACTOR = 2;
// Agricultural vehicles
//
ACTOR_AGRICULTURAL_VEHICLES = 3;
// Bicycles
//
ACTOR_BICYCLES = 4;
// Buses
//
ACTOR_BUSES = 5;
// Campers
//
ACTOR_CAMPERS = 6;
// Caravans
//
ACTOR_CARAVANS = 7;
// Cars
//
ACTOR_CARS = 8;
// Cars with caravans
//
ACTOR_CARS_WITH_CARAVANS = 9;
// Cars with trailers
//
ACTOR_CARS_WITH_TRAILERS = 10;
// Cattles
//
ACTOR_CATTLE = 11;
// Children
//
ACTOR_CHILDREN = 12;
// Construction vehicles
//
ACTOR_CONSTRUCTION_VEHICLES = 13;
// Delivery vehicles
//
ACTOR_DELIVERY_VEHICLES = 14;
// Disabled persons
//
ACTOR_DISABLED_PERSONS = 15;
// E-bikes
//
ACTOR_EBIKES = 16;
// Electric vehicles
//
ACTOR_ELECTRIC_VEHICLES = 17;
// Emergency vehicles
//
ACTOR_EMERGENCY_VEHICLES = 18;
// Ferry users
//
ACTOR_FERRY_USERS = 19;
// Forestry vehicles
//
ACTOR_FORESTRY_VEHICLES = 20;
// Hazardous goods vehicles
//
ACTOR_HAZARDOUS_GOODS_VEHICLES = 21;
// Horse carriages
//
ACTOR_HORSE_CARRIAGES = 22;
// Horse riders
//
ACTOR_HORSE_RIDERS = 23;
// Inline skaters
//
ACTOR_INLINE_SKATERS = 24;
// Medical vehicles
//
ACTOR_MEDICAL_VEHICLES = 25;
// Military vehicles
//
ACTOR_MILITARY_VEHICLES = 26;
// Mopeds
//
ACTOR_MOPEDS = 27;
// Motorcycles
//
ACTOR_MOTORCYCLES = 28;
// Motorized multi-track vehicles
//
ACTOR_MOTORIZED_MULTITRACK_VEHICLES = 29;
// Operational and utility vehicles
//
ACTOR_OPERATIONAL_AND_UTILITY_VEHICLES = 30;
// Pedestrians
//
ACTOR_PEDESTRIANS = 31;
// Public transport vehicles
//
ACTOR_PUBLIC_TRANSPORT_VEHICLES = 32;
// Railroad traffic
//
ACTOR_RAILROAD_TRAFFIC = 33;
// Residents
//
// \note In the German StVO, typically denoted with the text
// "Anlieger" or "Bewohner"
//
ACTOR_RESIDENTS = 34;
// Slurry transport
//
ACTOR_SLURRY_TRANSPORT = 35;
// Taxis
//
ACTOR_TAXIS = 36;
// Tractors
//
// \note In the German StVO, tractors are defined as
// motorized vehicles that are not allowed to, or cannot,
// drive faster than 25 [km/h]
//
ACTOR_TRACTORS = 37;
// Trailers
//
ACTOR_TRAILERS = 38;
// Trams
//
ACTOR_TRAMS = 39;
// Trucks
//
// \note
// In the German StVO, trucks are defined as
// motorized vehicles that are heavier than 3.5 [t]
//
ACTOR_TRUCKS = 40;
// Trucks with semi-trailers
//
ACTOR_TRUCKS_WITH_SEMITRAILERS = 41;
// Trucks with trailers
//
ACTOR_TRUCKS_WITH_TRAILERS = 42;
// Vehicles with green badges
//
ACTOR_VEHICLES_WITH_GREEN_BADGES = 43;
// Vehicles with red badges
//
ACTOR_VEHICLES_WITH_RED_BADGES = 44;
// Vehicles with yellow badges
//
ACTOR_VEHICLES_WITH_YELLOW_BADGES = 45;
// Water pollutant vehicles
//
ACTOR_WATER_POLLUTANT_VEHICLES = 46;
// Winter sportspeople
//
ACTOR_WINTER_SPORTSPEOPLE = 47;
}
//
// \brief An arrow denoting a direction shown on the traffic sign.
//
message Arrow
{
// The IDs of the lanes the arrow applies to
//
repeated Identifier lane_id = 1;
// The direction to which the arrow points to
//
repeated Direction direction = 2;
// The direction to which the arrow points to
//
enum Direction
{
// Direction of sign is unknown (must not be used in ground
// truth).
//
DIRECTION_UNKNOWN = 0;
// Other (specified but known) direction.
//
DIRECTION_OTHER = 1;
// No arrow direction is specified.
//
DIRECTION_NO_DIRECTION = 2;
// An arrow pointing straight ahead in the direction of
// driving.
//
DIRECTION_DIRECT_0_DEG = 3;
// A straight arrow pointing 45 degrees to the right in the
// direction of driving.
//
DIRECTION_DIRECT_45_DEG_RIGHT = 4;
// A straight arrow pointing 45 degrees to the left in the
// direction of driving.
//
DIRECTION_DIRECT_45_DEG_LEFT = 5;
// A straight arrow pointing 90 degrees to the right in the
// direction of driving.
//
DIRECTION_DIRECT_90_DEG_RIGHT = 6;
// A straight arrow pointing 90 degrees to the left in the
// direction of driving.
//
DIRECTION_DIRECT_90_DEG_LEFT = 7;
// A straight arrow pointing 135 degrees to the right in the
// direction of driving.
//
DIRECTION_DIRECT_135_DEG_RIGHT = 8;
// A straight arrow pointing 135 degrees to the left in the
// direction of driving.
//
DIRECTION_DIRECT_135_DEG_LEFT = 9;
// A straight arrow pointing oposite to the direction of
// driving.
//
DIRECTION_DIRECT_180_DEG = 10;
// A curved arrow pointing 45 degrees to the right in the
// direction of driving.
//
DIRECTION_TURN_45_DEG_RIGHT = 11;
// A curved arrow pointing 45 degrees to the left in the
// direction of driving.
//
DIRECTION_TURN_45_DEG_LEFT = 12;
// A curved arrow pointing 90 degrees to the right in the
// direction of driving.
//
DIRECTION_TURN_90_DEG_RIGHT = 13;
// A curved arrow pointing 90 degrees to the left in the
// direction of driving.
//
DIRECTION_TURN_90_DEG_LEFT = 14;
// A curved arrow pointing 135 degrees to the right in the
// direction of driving.
//
DIRECTION_TURN_135_DEG_RIGHT = 15;
// A curved arrow pointing 135 degrees to the left in the
// direction of driving.
//
DIRECTION_TURN_135_DEG_LEFT = 16;
// A u-turn arrow towards the right.
//
DIRECTION_TURN_180_DEG_RIGHT = 17;
// A u-turn arrow towards the left.
//
DIRECTION_TURN_180_DEG_LEFT = 18;
// An arrow that includes a fraction of a circle and points
// forward in the direction of driving. Used typically for
// roundabouts.
//
DIRECTION_CIRCLE_0_DEG = 19;
// An arrow that includes a fraction of a circle and points
// in 45 degrees to the right in the direction of driving.
// Used typically for roundabouts.
//
DIRECTION_CIRCLE_45_DEG_RIGHT = 20;
// An arrow that includes a fraction of a circle and points
// in 45 degrees to the left in the direction of driving.
// Used typically for roundabouts.
//
DIRECTION_CIRCLE_45_DEG_LEFT = 21;
// An arrow that includes a fraction of a circle and points
// in 90 degrees to the right in the direction of driving.
// Used typically for roundabouts.
//
DIRECTION_CIRCLE_90_DEG_RIGHT = 22;
// An arrow that includes a fraction of a circle and points
// in 90 degrees to the left in the direction of driving.
// Used typically for roundabouts.
//
DIRECTION_CIRCLE_90_DEG_LEFT = 23;
// An arrow that includes a fraction of a circle and points
// in 135 degrees to the right in the direction of driving.
// Used typically for roundabouts.
//
DIRECTION_CIRCLE_135_DEG_RIGHT = 24;
// An arrow that includes a fraction of a circle and points
// in 135 degrees to the left in the direction of driving.
// Used typically for roundabouts.
//
DIRECTION_CIRCLE_135_DEG_LEFT = 25;
// An arrow that includes a fraction of a circle and points
// in the oposite to the direction of driving. Can be used
// in detours in roundabouts.
//
DIRECTION_CIRCLE_180_DEG = 26;
// An arrow that includes a fraction of a square and points
// forward in direction of driving. Can be used for detours
// where you have to use a separate left lane to drive
// ahead.
//
DIRECTION_KEEP_LEFT_TO_TURN_0_DEG = 27;
// An arrow that includes a fraction of a square and points
// forward in direction of driving. Can be used for detours
// where you have to use a separate right lane to drive
// ahead.
//
DIRECTION_KEEP_RIGHT_TO_TURN_0_DEG = 28;
// An arrow that includes a fraction of a square and points
// in 90 degrees to the right in direction of driving. Can
// be used for detours where you have to use a separate left
// lane to turn right.
//
DIRECTION_KEEP_LEFT_TO_TURN_90_DEG_RIGHT = 29;
// An arrow that includes a fraction of a square and points
// in 90 degrees to the right in direction of driving. Can
// be used for detours where you have to use a separate
// right lane to turn left.
//
DIRECTION_KEEP_RIGHT_TO_TURN_90_DEG_LEFT = 30;
// An arrow that includes a fraction of a square and points
// in 90 degrees to the right in direction of driving. Can
// be used for detours where you have to use a separate left
// lane and you have to drive back to turn right.
//
DIRECTION_KEEP_LEFT_DRIVE_BACK_TO_TURN_90_DEG_RIGHT = 31;
// An arrow that includes a fraction of a square and points
// in 90 degrees to the right in direction of driving. Can
// be used for detours where you have to use a separate
// right lane and you have to drive back to turn left.
//
DIRECTION_KEEP_RIGHT_DRIVE_BACK_TO_TURN_90_DEG_LEFT = 32;
}
}
}
}
// Definition of the variability of a traffic sign.
//
enum Variability
{
// Variability type of sign is unknown (must not be used in ground
// truth).
//
VARIABILITY_UNKNOWN = 0;
// Other (unspecified but known) variability.
//
VARIABILITY_OTHER = 1;
// Fixed sign, i.e. always present.
//
VARIABILITY_FIXED = 2;
// Temporary or variable sign, e.g. on a sign bridge.
//
VARIABILITY_VARIABLE = 3;
}
}