Talk:Routing with osm data

From OpenStreetMap Wiki
Jump to: navigation, search


This is a universally ridiculed proposal that now appears to be dormant. Nonetheless it's sitting on an attractive wiki-page name and could very easily mislead newcomers to the project. If we're serious about sorting out the wiki we should start by removing rubbish like this. --Richard 21:57, 21 February 2009 (UTC)

I agree. --MarcusWolschon 07:10, 23 February 2009 (UTC)
I did not agree to delete this article. Error mapping in OSM affect routing application is a fact. If you fell this article is easily mislead newcomers to the project, you can modify it but you can not simple delete the article to hide the fact that there is no routing node information captured in OSM. --vgps 23:40, 16 March 2009 (UTC)

How is traveltime="10minutes" a property of the mapped road? Are you saying that someone in a wheelchair will take the same length of time to traverse that section as someone in a high-performance car? Ojw 08:07, 17 April 2008 (UTC)

capturing routing-info separate from graph-data

Sorry but my position is that this proposal is just nonsense. All routing-information for all kinds of vehicles is already contained in the current data-model and it would be redundant, unneeded and error-prone to capture it separately. Also this data is oversimplifying and cannot differentiate between different kinds of vehicles.

Note: For different kinds of vehicles, the tag forcar="yes/no", formotobicycle="yes/no", forbicycle="yes/no", forpedestrian="yes/no" will tell whether this linking route can be used for car/motobicycle/bicycle/pedestrian or not.
This information is already present in the ways and we have a wiki-page with gathering clear rules how to interpret them. What do you suppose an application to do if the way is a highway=residential but the route has no tag "forcar" or a "forcar=no"? Both are conflicting and there is no way for an application to see wich information is newer. --MarcusWolschon 06:56, 18 April 2008 (UTC)
What do you suppose an application to do if the way is a highway=residential but the route has no tag "forcar" or a "forcar=no"? --> When my routing application working, it consider and process routing data only (i.e working with the routing graph only). So I need to make sure that there is no conflicting between render data and routing data. If routing data is stored explicit in OSM data then JOSM need to take care of this job. i.e if the way is a highway=residential, then JOSM need to make sure the respective routing nodes of this way must have tag forcar="yes", forpedestrian="no"....

It violates all principles of database-design (ever heard of the "first normal form"?).

Note: If we don't want duplicate lat/lon, we can use reference to node id instead: Create table routing_nodes ( rtnode_id int, node_id int )
I am talking about dublicating the nodes at all. All you are storing is a simplification of the data already present. This additional data is thus completely redundant. --MarcusWolschon 06:56, 18 April 2008 (UTC)
I did not agree there is duplication the nodes at all. Render node entity (the table that store all node id currently in OSM) and routing node entity (the new table that I propose) have different properties so you can not store render node and routing node in the same table. e.g render node does not have link to other render nodes but routing node does have link to other routing nodes. If you still think there is a duplication, we can remove routing_nodes table from our proposal and change the structure of linking_routing_nodes table as below:

create table linking_routing_nodes ( node_id int, link_node_id int, distance double or float, traveltime(minute) double or float, maxspeed(kmh) double or float, forcar boolean, formotobicycle boolean, forbicycle boolean, forpedestrian boolean )

Note that I have replaced routing node id with node id of current render node.

  • What do you propose an application to do, if the information in your derived data conflicts with the information in the "normal" OSM-data? --MarcusWolschon 06:56, 18 April 2008 (UTC)

I currently know about routing-applications for cars, weelchairs, people, ships, trains, bicycles and inline-skaters using OSM-data. (They all work just fine with the current data-model.)

Note: If you know about routing-applications for cars, weelchairs, people, ships, trains, bicycles and inline-skaters that work just fine with the current data-model, then can you put the link of that application in the main page of OSM.
No, because a) routing is only one application of our data b) I have no control over the main-page and see no reason how a user benefits of a link-list to all the different projects using our map on the front-page. It can all be found on the wiki if the projects have published their work yet. Many are still in development inside universities. --MarcusWolschon 06:56, 18 April 2008 (UTC)

Let assume that I am a dummy user, I go to main page of OSM website. I just want to search for a route in my area in OSM main website, can it be done with OSM main page and the mentioned application?
Yes, I am currently beta-testing a routing-application that allowes this. So it is possible to add this functionality. --MarcusWolschon 06:56, 18 April 2008 (UTC)
Can you give me the link to that beta-testing routing-application? My city is mapped with OSM data. I want to test that routing application with my city's OSM data. Can I expect that I will go to that routing application's web site, key in start point and and end point, press a button and then I can see a route highlighted on my city map?
Marcus, I found a website that can do exactly what I expected. Currently, it can do routing for the whole Germany only so I could not test routing in my city with OSM data.
Even if the mentioned application can do routing with the current OSM data-model, how good is the quality of routes that are found by the mentioned application?
The quality is determined by the quality of the work of the mapprs. Just like in your proposal but with no additional burden to the volunteers doing the mapping. --MarcusWolschon 06:56, 18 April 2008 (UTC)

  • What is to happen if there are no "routing-nodes" for a given way?
I can not get what you mean by "a given way"?
Given a way A sharing a node with a way B. What your routing-application going to do if that node is not also a "routing node" in your application? --MarcusWolschon 06:56, 18 April 2008 (UTC)
If a way A sharing a render node with a way B, then my application will consider this render node is also a routing node because without explicit routing information storing in OSM data, there is only one way to automatic generate routing nodes: "assume a coinciding render node of streets is also a routing node". Please note that this assumption is correct in most of the case but it is not always correct for all the case. That why I want to push "routing node information must be stored explicit in OSM data"
  • What kind of vehicle is this "travel-time" for?
for car
What kind of car? What is your reason to exclude all other types of vehicles? What metric are you using to determine this travel-time and why are you including the travel-time at all and why this but no other metric? --MarcusWolschon 06:56, 18 April 2008 (UTC)
What kind of car? --> normal car, the car that we use everyday. What is your reason to exclude all other types of vehicles? --> If a routing application can not calculate route for car properly with current OSM data (due to mapping error in OSM data) then no need to talk about doing routing for other types of vehicles. I am open to discuss about the travle-time's metric. It can be second, minute or hour.
  • How is the distance updated when nodes are moved/inserted/removed/ways split/combined?
JOSM need to update routing node and distance when nodes are moved/inserted/removed/ways split/combined. I know there is a lot of things need to be modified in JOSM to support routing node so I understand why you
I do not see that there is any need to modify JOSM to fit your application. If you want it done automatically in JOSM, where is the difference in downloading the planet and deriving the data yourself for your applications? --MarcusWolschon 06:56, 18 April 2008 (UTC)
  • Is the distance 2D or 3D?
the distance is 2D
Distance between 2 routing nodes.png
I can not get what you mean by 3D distance. Is it distance that consider Altitude? Can you give more detail?
Yes, I was considering altitude. Your proposal was not clear about that. --MarcusWolschon 06:56, 18 April 2008 (UTC)
As far as I know, OSM did not capture altitude in its render node data. Then how you calculate 3D distance for OSM data? Can you draw picture to explain how you calculate 3D distance for a street?

  • What vehicle is "maxspeed" for?
for car

  • Is maxspeed valid at all days of the year at all times?
maxpseed is the property of highway set by law. your car can not travel excess the maxspeed. Police is using speed camera to detect whether you excess the maxspeed that allow for this highway or not. If maxspeed is confuse, we can change the name to limitmaxspeed or some thing similar to this.

  • You state "we need to create" whereas you are just proposing to create and have not shown the "need" yet.
I just update the main page, can you read it again. There is the "need" to address this issue because hundreds or thousands mapping mistake existing in OSM data.
These errors need to be repaired by hand by the mapper. They are mistakes by users but they are now a shortcomming of the OSM-data-model. (Please stick to wiki-style discussions. It is simpler to read for everyone.) --MarcusWolschon 06:56, 18 April 2008 (UTC)

PS: maxspeed does not use a unit, the unit of Km/h is implicit. --MarcusWolschon 09:41, 17 April 2008 (UTC)

I am open to discuss about maxspeed's metric. It can be km per hour, mile per hour or it can be GPS metric i.e "ground speed in knot"
I too think that the proposal is madness. The opening justifications are based on examples of bad mapping. It is proposed that by expecting mappers to record their data in two ways instead of one that the quality of their mapping will improve, when in reality, the reverse is likely. You'd be better off educating mappers about the importance of recording data in a routing-friendly way (something you acknowledge and then proceed to ignore as a viable solution). Graph information suitable for routing is derivable from our existing data model. Certain information (turning restrictions) still needs an agreed way to represent it, but these should be recorded as enhancements to existing data, not as parallel projects (which is what you seem to be heading towards). --Mackerski 10:22, 17 April 2008 (UTC)
I am opposed to the proposal. Routing is derived information and should not contaminate the OSM database. --alastairj 14:59, 24 April 2008 (UTC)

Don't store derived data

I, too, think that this proposal does not make sense. Routing software can derive all kinds of routing graphs from our data, and we should not try to impose a standard here. If anyone wants to they can offer a live "routing graph" web service, much like OsmXAPI serves a more or less live copy of OSM data. No reason to change our data model for this.

Let us focus on capturing routing-relevant information - like turn restrictions - in our current data model (with relations) and improve ways of working with that.

I have explained my viewpoint with more detail in and and

--Frederik Ramm 10:34, 17 April 2008 (UTC)

What's proposed is derived data and there is absolutely no need to capture it in Osm. Any routing software most likely needs to preprocess the data anyway for chosen method of travel, so they can generate their own routing tree without the nodes not part of a intersection. It is better to search, find and repair the incorrectly modeled intersections per the current data model. --Alv 11:57, 17 April 2008 (UTC)

Sorry, this proposal does not look useful to me. Routing data can be derived from the OSM data model; any inaccuracies in the original mapping won't be corrected by double-entry, and anywhere the routing fails will need to be corrected - of course. Putting effort into this could only dilute the main mapping effort, for a very uncertain benefit- I wouldn't want to rely on this type of subset of the map for a routing app. at all, but would go to the main data every time. --DrMark 19:11, 17 April 2008 (UTC)

Our(???) answer to all the users

Our answer to all the users keep saying: "let people fix the data", or "Use a tool to detect possible mismapping and fix the data"

How this issue happen.png

Question: Who will fix the mapping errors done by users who uploaded data to OSM and already left OSM (i.e discontinue contribute to OSM)? . HTH --Richard 10:49, 29 April 2008 (UTC)
Other users need to. If there are no users to fix things, then it seems to be an irrelevant mistake in the first place. --MarcusWolschon 06:50, 30 April 2008 (UTC)
Also, in the image above it suggests that users have uploaded info without knowing about existing data in the area. That's very unlikely if they've used Potlatch or JOSM.Richard B 13:38, 30 April 2008 (UTC)


We must remember in wiki world user is too lazy to contribute --> for OSM, user don't have enough time to just map their sreets for their city, then who will have time to fix the mapping errors left by other users?

You are keeping saying "let people fix the data", then what will happen if nobody fix the data? Does it mean that we have to live and accept the fact that there is mapping errors in OSM database, nobody know how many mapping errors exist, and we all hope/pray one day some body will find the error and fix it for us?

You may argue: "This may be a mistake on account of the mapping user and it may even be correct. It is not of a failure the OSM-data-model"

Well, in our opinion, the correct data model is the model that must not allow the mapping error happen at the first place. (prevent it is always better than correct it)

You can disagree with the solution: "storing routing node explicit in OSM database" but you must provide alternative solutions to prevent this thing happen in OSM database at the first place. At least, you should said we will enhance our editor to prompt user "we detect a crossing/intersection of 2 ways/streets/roads. Do you want to create coinciding node at the intersection or not?"

Until an alternative solution (other than waiting for user to fix it manually) is provided, we consider all your disagreements above are all invalid.

In the mean time, while waiting for proper solution, OSM users can try this method to detect mapping errors in your area and fix it manually:

In the above tutorial, we use a tool to generate routing node for an OSM area and local users, who are familiar with that area, need to verify and correct the mapping error at the intersection of streets.

Fine, you where free to do that on your own from the start. It was offered to you on the mailing-list and here multiple times. Do any corrections made get back into the OSM-data? --MarcusWolschon 06:50, 30 April 2008 (UTC)

discussion moved from Talk:Mom

www.digitalmobilemap.comDoes everyone want routing? --> Yes, everyone wants routing to find a way from start point to end point in their map. The final purpose of any mapping project is to provide routing service to users. As of April 2008, there is no routing graph data is stored in OSM server --> there is no way to pre-calculate routing information in OSM server for MOM. You can read more about doing routing with OSM data from here Routing_with_osm_data. You can read more about how to make an offline routable map with OSM data work on mobile phone from here
This is no longer related to plugin structure, but I feel obliged to point out that routing is not the final purpose of any mapping project. It might be the current hype and beneficial for users of a mobile map viewer, but geodata in general, can be and is used in many professions for other uses than routing; landuse planning, nature preservation, flood estimation and prevention, emergency civil protection planning etc. Osm-data is probably not comprehensive enough for most other uses but could be, eventually. Alv 09:05, 5 May 2008 (UTC) 10:05, 6 May 2008 (UTC) You said" I feel obliged to point out that routing is not the final purpose of any mapping project". Well, if routing is not the final purpose of OpenStreetMap project, then I think we need to change the name of OpenStreetMap project to OpenGeodataMap project or some thing similar to fit the purpose of "landuse planning, nature preservation, flood estimation and prevention, emergency civil protection planning etc". Because there is no way for OSM servers to do routing within OSM project by itself, then people will confuse themself when they look at the name "OpenStreetMap". They may think: OSM is street map project, we can expect OSM provide routing service with street map. I am very surprise that a street map project but can not do routing with street map!
You missed the emphasis on the word "any" and fail to distinguish between separate projects to create software (for example Mom) and the project to create the map itself. This is not to say routing won't or shouldn't become a part of osm, some day. It's about what separate software projects are aiming for. Alv 07:22, 6 May 2008 (UTC) 10:00, 7 May 2008 (UTC). You said: "This is not to say routing won't or shouldn't become a part of osm, some day". --> I am waiting for that day. The day OSM community is ready to accept my idea that routing must be a part of OSM's kernel core together with data collecting and map rendering. When that day comes, we will revisit my proposal Routing_with_osm_data for design a new data structure for routing nodes and routing graph in OSM database. OSM community must think big and think online --> provide ONLINE routing service with street map. i.e: user A update OSM online with traffic jam information "road A is stuck this morning from 8am - 10am". At the same time, the traffic jam information will be updated to routing graph immediately (update online and concurrence within OSM database). When another user B goto OSM main page to find a route, OSM will able to avoid road A (i.e OSM is able to provide online routing service). If OSM community wait for other project to implement routing service for OSM then the online routing service will never be achieve because it takes time (day? week? month?) to sync data from OSM database and other routing project database. --> OSM community must think big and think online.

Closing the Vote

After 1 year of voting and not a single "pro"-vote, may be close this voting and change the article to be reflect that it was clearly not-aproved? --MarcusWolschon 09:47, 19 February 2009 (UTC)