JOSM/Plugins/Routing
Routing
Provides routing capabilities to JOSM. This plugin is based on JGraphT and uses some code from the former navigator plugin by Christof Dallermassl.
Usage
After the plugin is installed and enabled, a new menu Routing appears.
Once an OSM data layer is open, routing layers can be added using the menu option "Add routing layer". This layer is linked with the current OSM layer, thus the name of the layer states "Routing [name_of_data_layer]". A set of tool buttons is created. Routing layers can also be removed with through the layer's context menu, or when the associated OSM layer is removed.
Selecting destinations
This plugin supports multi-destination routing. When adding, removing or moving route nodes, the Routing Layer has to be selected.
The left toolbar (Or Edition Toolbar) has to be enable (Menu View > Edition Toolbar) because actually there is the only place where the Add, Delete and Move Buttons appear.
The "Add destination" button is used to add nodes to the route. You can add as many route nodes as you want. The route is computed on the fly, as you add new nodes to it. Only nodes belonging to ways tagged with a "highway" key can be used for routing. When clicking on the map, the closest highway node will be selected.
The "Delete destination" button lets you remove a node from the route. Click on a destination to remove it from the map, the route will be computed again.
The "Move destination" button lets you move a node of the route from one place to another. Click on a destination and drag, the route will be recomputed when you release the mouse button.
Selecting routing criteria
Using the Routing menu you can switch between "shortest" and "fastest" route. Using a shortest criterion, all the values from the routing profile will be ignored, while using a fastest criterion the highway speeds from the routing profile will be used to compute the route.
There's also an option to ignore oneway tags. This option is useful to simulate pedestrian behavior.
Editing routing profile
The routing profile tells the routing engine which is the speed for each type of highway. It is accessed from the Preferences dialog.
Source code
Source code is available through the openstreetmap repository where plugin sources are hosted.
https://github.com/openstreetmap/josm-plugins
TODOs
- Use restrictions for routing
- User creation and management of routing profiles
- Enable using more than one routing layer (done)
- Exporting to GPX
- Generation of driving (or walking) textual directions
- Add new algorithms
- Traveling salesman
- Accessibility analysis (shortest path tree)