2013-10-08

Created page with "{{Languages}} {{Information |Description={{en|Under construction icon}} File:Skobbler_screenshot.png|thumb|200px|Skobbler Navigation (online turn-by-turn navigation app for..."

New page

{{Languages}}

{{Information |Description={{en|Under construction icon}}

[[File:Skobbler_screenshot.png|thumb|200px|Skobbler Navigation (online turn-by-turn navigation app for iOS).]]

'''Navigation''' oder navigieren bzw. die Routenberechnung ''(vom engl. "routing")'' ist ein Dienst, um effizient von einem Ort zu einem anderen zu gelangen. OpenStreetMap-Daten beinhalten informationen um in verschiedenen Modis wie Auto, zu Fuß, mit Fahrrad oder dem Pferd zu navigieren.

Es gibt viele verschiedene Navigationsdienste die OpenStreetMap-Daten nutzen. Dabei gibt es [[Routing/OfflineRouters|offline genutzte]] und [[Routing/OnlineRouters|web-basierte]] Dienste.

Für Entwickler gibt es auf dieser Seite einige Empfehlungen zu verfügbarer Navigationssoftware und Hinweise zur Softwareentwicklung von neuen Navigationsprogrammen und -lösungen.

Außerdem wird detailiert auf den Zugriff von OpenStreetMap-Daten eingegangen um bessere Navigationsengines entwickeln zu können. Unter anderem ist auch eine Mailing-Liste verfügbar.

==End users: Routing software==

''See also: [[List_of_OSM_based_Services#Routing]]''

* [[Routing/online routers]] – There are many websites that use OpenStreetMap data to provide ''online route planners''; those with global support are featured below.

* [[Routing/offline routers]] – Furthermore several options exist for installing ''offline'' navigation software on your heldheld device or laptop.

* ''Navigation apps'' are available for [[Android#Navigating_features|Android]], [[Apple_iOS#Navigating_features|Apple iOS]], [[J2ME#Navigating_features|Java ME (J2ME)]] and [[Openmoko#Navigating_features|Openmoko]]. For other mobile platforms see [[Software#Mobile Devices]].

<gallery caption="Example: Routing from Hères to Thère, France" widths="180px" heights="120px">

File:Routing_mapquestopen.png|'''[[MapQuest|MapQuest Open]]''', [http://open.mapquest.com/ go]

File:Routing_osrm.png|'''[[Open Source Routing Machine|OSRM]]''', [http://map.project-osrm.org/ go]

File:Routing_skobbler.png|'''[[Skobbler|Skobbler]]''', [http://maps.skobbler.co.uk/ go]

File:Routing_yours.png|'''[[YOURS]]''', [http://www.yournavigation.org/ go]

</gallery>

== Mappers: Improving the map data ==

For routing software to work well, the underlying map data must be of good quality. Essentially this means that ways that should be connected are in fact connected, one-way roads are tagged, turn restrictions are mapped, and so on. You should be familiar with the [[Map Features]] used, in particular see [[OSM tags for routing]] to understand the tags specific to routing.

===Fixing bugs with MapDust===

[[Image:Connected Ways in Potlatch.png|200px|thumb|right|Showing how to determine connected and unconnected nodes in Potlatch]]

Many of the bugs on [[MapDust]] have been added directly from within iOS or Android navigation apps. This makes it a good place to look for improvements to the map data. Some bugs are specifically about one-way roads or turn restrictions, and are marked as such.

Look out for many "poor routing" or "other" bugs in a small area as this may indicate that thre is a missing connection between ways. In Potlatch when you select a way you will see all the nodes highlighted. If a node is big and square then it is connected to another way. To improve the quality of OSM data you can use also the reports generated by [[WayCheck]].

Note: Try unchecking the "Hide bugs with default text" on mapdust as many users do not change the default text whilst using the navigation app.

===Speed data===

In order to better calculate the fastest route, please consider helping by adding speed data using the {{tag|maxspeed}} tag. This is especially important where the speed limit differs from the [[OSM_tags_for_routing/Maxspeed|assumed maximum permitted speed]] for the road type per country and vehicle-type.

:''Note: ITO World provide a number of services to help [[Key:maxspeed#Services|identify missing speed limits]].''

== Developers ==

==== Desktop and server software ====

Java:

* The [[Traveling salesman]] routing-application contains the osmNavigation -library for doing all the basics except a user-interface. All important parts can be exchanged via plugins.

* [[OpenTripPlanner]] [http://www.opentripplanner.org site] is a multi-modal trip planner supporting OSM data. OTP Deployer makes it easy to deploy your own routing instance.

* [[GraphHopper]] is a Java routing engine for (road) networks. [http://graphhopper.com/maps/?from=kiel&to=freiburg Fast] and memory efficient (for Android, desktop and server).

* [http://brensche.de/brouter BRouter] focuses on bike routing and features elevation awareness, alternatives, fully configurable routing profiles and offline routing initially written for Android, but has now also a web api

C/C++

* [[Gosmore]]

* [[MoNav]]

* [[Navit]]

* [[Open Source Routing Machine]]

* [[Routino]] Flexible router with user selectable routing preferences.

C#

* [http://www.imotris.de IMORTIS(Intermodal Transport Routing Informations-System)] is an approach to route/optimise transport routes via different vehicles using a optimzed A* Algorithm

* [[OsmSharp]] Library for routing and transportation optimisation problems.

* [http://www.dupuis.me/node/27 Simple Map Routing] Demo routing program (using optimized double A* Algorithm) with SQLite and OSM uploader.

Scala

* [https://github.com/orangeman/osm_routing osm_routing] super-simple plain Dijkstras

Ruby

* [https://github.com/geronimod/mormon Mormon] ruby version of pyroutelib

Python

* [[PyrouteLib]] routing engine behind [[Pyroute]]

==== Mobile Device software ====

C/Java

* [[OsmAnd]] OSM Map, POI and Routing (car/bike/foot) for Android

* [[ZANavi]] Android

* [[Navit]] Linux, Windows and portable devices

* [[GraphHopper]] Android, Only routing engine yet

* [http://brensche.de/brouter BRouter] focuses on bike routing and features elevation awareness, alternatives, fully configurable routing profiles and offline routing for Android

==== Libraries/Development-Tools ====

Libraries focused on OSM Routing can be found at [[Develop/Frameworks]]. Here some general libs:

* [http://grass.osgeo.org/dglib/ DGLib] Directed Graph Library used by [[Grass]]'s [http://grass.osgeo.org/grass64/manuals/html64_user/v.net.html vector network tools] (shortest path, traveling salesman, isodistances, Steiner trees; also [http://grass.osgeo.org/wiki/GSoC_Network_Analysis Addons])

* [http://graphserver.sourceforge.net/ Graphserver] is a webservice providing shortest-path itineraries on TIGER/line road maps, and public transport data in the [[General Transit Feed Specification]] format

* [[pgRouting]] - [[PostGIS]]-based routing engine. Special tool [[osm2pgrouting]] for importing OSM data to internal graph structure. Works directly on top of SQL database tables.

* [[Libosmscout]] offers simple, high-level interfaces to offline rendering and routing functionalities based on OpenStreetMap data

* [[Spatialite]] Spatialite has its own routing engine VirtualNetwork and a spatialite_osm_net tool for building a routable network directly from OSM data. Routing can use either Dijkstra or A* algorithm.

* [[GraphHopper]] routing engine with Java API.

Protocols:

* The default-protocol is the [[API v0.6]] spoken by the main servers. If can contain all data there is in OSM. Get [[Planet.osm]] dump.

* There is also a compressed but limited [[OSM Mobile Binary Protocol]].

==== Highway-type ====

The order of values for the [[Key:highway|highway]]-tag ordered by assumed speed is:

# motorway

# motorway_link

# trunk

# trunk_link

# primary

# primary_link

# secondary

# secondary_link

# tertiary

# tertiary_link

# unclassified

# residential

# living_street / service

# track

====Average speed====

OpenStreetMap data will need average speed values in order to give realistic time estimates for routing. [http://apps.sourceforge.net/mediawiki/travelingsales/index.php?title=Speedcollector Speedcollector] is a service to collect real-world measurements, while it might be possible to derive [[average speed per way]] from stored tracks.

[[Global Statistical Speed Matrix]] aims to extract valuable speed information from NMEA/GPX tracks and store them efficiently in a database to make collected data useful for routing purposes

==== Lanes ====

The [[Key:lanes|number of lanes]] of a highway is directly tagged in OSM and has a major influence on the average speed (fastest route) and fuel-consumption (most efficient route).

==== Sinuosity ====

In some studies about the accessibility [http://www.geocomputation.org/2001/papers/brabyn.pdf] develop models that assume a certain speed of travel depending on the degree of sinuosity of the track and certain characteristics of this one. By means of the [[wikipedia:Sinuosity|sinuosity index]] (observed line distance/expected line distance ) for every section it is possible to obtain a speed estimated according to the degree of winding of the road and type of route. The model is more precise if the excessively large arcs are avoided provided that a long curve can be equal to many small curves along a way, giving similar values of sinuosity for both routes. Some countries use these values to divide sections of roads and put speed limits (but this is not usual).

On the other hand, geographical approaches like that of the [[wikipedia:Space syntax|space syntax]] presuppose that, in urban environments, pedestrians and drivers are influenced at the moment of choosing theirs paths for the visibility of the route. In this respect a pedestrian who moves, for example, from the point A to the point B will select principally wide and rectilinear streets, squares or avenues with a wide visual field, avoiding crossed by winding and narrow streets, even when the latter route is somewhat shorter.

==== Inclines ====

Same as curves, [[Key:incline|inclines]] may decrease the speed of your vehicle.

==== Highway-condition ====

Other factors, in our case more difficult to measure, which determine the average speed are the [[Key:width|width of pavement]], condition of the network (roadworks, [[Key:surface|surface type]] and [[RU:Key:smoothness|surface smoothness]] - especially in ex-USSR), [[wikipedia:Level of service|Levels of Service]] (LOS), minimal radius curve, [[wikipedia:Banked turn|banked turns]], visibility based on curves and gradients, etc.

In OpenStreetMap this model can be interesting for those routes where there are no data on speeds (for example: {{Tag|highway|unclassified}}).

==Mailing lists==

The following mailing lists are relevant to routing

* [http://lists.openstreetmap.org/listinfo/routing osm-routing] 'Discussion about Routing with vector Data. Especially concerning OSM Data'

* [http://lists.openstreetmap.org/listinfo/accessibility osm-accessibility] For all kinds of disabilities this concerns the proposal and use of tags that are of special interest for disabled persons. Special maps shall be created with this data.

==See also==

*[[OSM tags for routing]] - What data is stored in OpenStreetMap that you can use when routing?

*[[CartoType|CartoType]], [http://www.cartotype.com/ cartotype.com]

*[[Rollstuhlfahrer-Routing]] - German project for wheelchair routing

*[[Routing problems]] - Are there any problems that can't be solved using least-cost routing? Do we have any suggestions for solving those problems?

*[[Routing profiles]] - Which categories of people want to generate routes, and what are their specific needs? What weights should we use when a 'horse who's scared of traffic lights but likes walking in the forest' asks for a route? How do we choose the best route for a cyclist with slick tires and no lights at night?

*[[Sample driving instructions]]

*[[TIGER fixup]] - Fixing routing in the U.S. Starting with basic interstate routes: [[TIGER fixup/250 cities]]

*[[Train routing]]- How can we do routing on public transport networks, and other scheduled services?

*[[LoroDux]] - Pedestrian routing for mobile devices for the blind

*[[Routing/Taxi_to|Taxi to...]] - a funny approach to long-distance routing comparison

*[http://www.youtube.com/watch?v=-0ErpE8tQbw Video: Google Tech Talk - Peter Sanders - Fast Route Planning]

[[Category:Disabilities]]

[[Category:Routing]]

[[Category:Translate_to_German]]

Show more