navit  0.5.3-trunk
navigation_maneuver Struct Reference

Holds information about a navigation maneuver. More...

Data Fields

enum item_type type
 
int delta
 
int merge_or_exit
 
int is_complex_t_junction
 
int num_options
 
int num_new_motorways
 
int num_other_ways
 
int old_cat
 
int new_cat
 
int max_cat
 
int num_similar_ways
 
int left
 
int right
 
int is_unambiguous
 
int is_same_street
 

Detailed Description

Holds information about a navigation maneuver.

This structure is populated when a navigation maneuver is first analyzed. Its members contain all information needed to decide whether or not to announce the maneuver, what type of maneuver it is and the information that was used to determine the former two.

Field Documentation

◆ delta

int navigation_maneuver::delta

Bearing difference (the angle the driver has to steer) for the maneuver

Referenced by command_new(), maneuver_required2(), and navigation_map_item_attr_get().

◆ is_complex_t_junction

int navigation_maneuver::is_complex_t_junction

Whether we are coming from the "stem" of a T junction whose "bar" is a dual-carriageway road and crossing the opposite lane of the "bar" first (i.e. turning left in countries that drive on the right, or turning right in countries that drive on the left). For these maneuvers

int num_options
Definition: navigation.c:277

is 1 (which means we normally wouldn't announce the maneuver) but drivers would expect an announcement in such cases.

Referenced by maneuver_required2(), and navigation_map_item_attr_get().

◆ is_same_street

int navigation_maneuver::is_same_street

Whether the street keeps its name after the maneuver.

Referenced by maneuver_required2(), and navigation_map_item_attr_get().

◆ is_unambiguous

int navigation_maneuver::is_unambiguous

Whether the maneuver is unambiguous. A maneuver is unambiguous if, despite multiple candidate way being available, we can reasonable expect the driver to continue on the route without being told to do so. This is typically the case when the route stays on the main road and goes straight, while all other candidate ways are minor roads and involve a significant turn.

Referenced by maneuver_required2(), and navigation_map_item_attr_get().

◆ left

int navigation_maneuver::left

Minimum bearing delta of any candidate way left of the route, -180 for none

Referenced by command_new(), maneuver_required2(), and navigation_map_item_attr_get().

◆ max_cat

int navigation_maneuver::max_cat

Highest maneuver category of any permitted candidate way other than the route

Referenced by maneuver_required2(), and navigation_map_item_attr_get().

◆ merge_or_exit

int navigation_maneuver::merge_or_exit

Whether we are merging into or exiting from a motorway_like road or we are at an interchange

Referenced by maneuver_required2(), navigation_item_destination(), navigation_map_get_item(), navigation_map_item_attr_get(), and show_maneuver().

◆ new_cat

int navigation_maneuver::new_cat

Maneuver category of the selected way after the maneuver

Referenced by maneuver_required2(), and navigation_map_item_attr_get().

◆ num_new_motorways

int navigation_maneuver::num_new_motorways

Number of permitted candidate ways that are motorway-like. Numbers greater then one should be interpreted as "more than one", not as a precise number.

Referenced by maneuver_required2(), and navigation_map_item_attr_get().

◆ num_options

int navigation_maneuver::num_options

Number of permitted candidate ways, i.e. ways which we may enter (based on access flags of the way but without considering turn restrictions). Permitted candidate ways include the route.

Referenced by maneuver_required2(), and navigation_map_item_attr_get().

◆ num_other_ways

int navigation_maneuver::num_other_ways

Number of permitted candidate ways that are neither ramps nor motorway-like

Referenced by maneuver_required2(), and navigation_map_item_attr_get().

◆ num_similar_ways

int navigation_maneuver::num_similar_ways

Number of candidate ways (including the route) that have a

static int maneuver_category(enum item_type type)
Definition: navigation.c:1724

similar to

int old_cat
Definition: navigation.c:282

. See

static int maneuver_required2(struct navigation *nav, struct navigation_itm *old, struct navigation_itm *new, struct navigation_maneuver **maneuver)
Checks if navit has to create a maneuver to drive from old to new.
Definition: navigation.c:1844

for definition of "similar".

Referenced by maneuver_required2(), and navigation_map_item_attr_get().

◆ old_cat

int navigation_maneuver::old_cat

Maneuver category of the way leading to the maneuver

Referenced by maneuver_required2(), and navigation_map_item_attr_get().

◆ right

int navigation_maneuver::right

Minimum bearing delta of any candidate way right of the route, 180 for none

Referenced by command_new(), maneuver_required2(), and navigation_map_item_attr_get().

◆ type

enum item_type navigation_maneuver::type

The type of maneuver to perform. Any

nav_*

item is permitted here, with one exception: merge or exit maneuvers are indicated by the

int merge_or_exit
Definition: navigation.c:271

member. The

item_type
Definition: item.h:29

for such maneuvers should be a turn instruction in cases where the maneuver is ambiguous, or

nav_none

for cases in which we would expect the driver to perform this maneuver even without being instructed to do so.

Referenced by command_new(), make_maneuvers(), maneuver_required2(), navigation_analyze_roundabout(), navigation_item_destination(), navigation_map_get_item(), navigation_map_item_attr_get(), and show_maneuver().


The documentation for this struct was generated from the following file: