aerostitch / testnavit

0 stars 0 forks source link

Traffic included in the routing #34

Open aerostitch opened 14 years ago

aerostitch commented 14 years ago

Issue migrated from trac ticket # 570

component: core | priority: major | keywords: tmc, traffic, FCD

2010-05-08 23:48:27: robin.seidel@biologie.uni-freiburg.de created the issue


is anything planned about including traffic when calculating the route, eg as in trafficdroid?

aerostitch commented 14 years ago

2010-05-19 02:52:37: @pgrandin commented


TMC has already been discussed. The main difficulty is to find a reliable source for traffic informations. Do you have more informations about that?

aerostitch commented 14 years ago

2010-05-21 13:39:41: robin.seidel@biologie.uni-freiburg.de commented


I have been in contact with dradio for german tmc as they have the traffic on their website. they referred me to wdr where I found: http://www.wdr.de/verkehrslage/tmc I have asked them if they might want to set something up we could use in navit. If anyone has more information or can point me to a site where I find what input data navit would need to include tmc that would be great. In this way I could ask better questions to the radio guys who might be willing to provide us with the proper data.

aerostitch commented 14 years ago

2010-06-22 07:17:32: @pgrandin

aerostitch commented 14 years ago

2010-06-22 07:17:32: @pgrandin commented


Well, technically TMC has a standardized protocol, so navit doesn't need anything really particular. You just need to attach a TMC receiver, and code a gateway between the informations, and the traffic distorsion feature which is already present in navit.

Usually you have free informations (in france, it's around tolled highways for example) and commercially available informations. The difficulty with commercial informations is that they have some way to obfuscate the datas (TMC is a clear text protocol) and this obfuscation is probably different for each provider. That's where having some basic informations from your source could help.

Work could begin without needing a particular support using the free informations. So i'll set the ticket as want patch, for now.

aerostitch commented 13 years ago

2010-12-26 07:19:17: mineque commented


By dirk205, #711

**TMC support would be great**
I.e., for Win Mobile there is the "Hyper GPS" freeware available to pass TMC data from radio to the navigation system.
aerostitch commented 13 years ago

2011-06-26 08:34:59: niehausbert@googlemail.com commented


We could consider to use navit for reporting traffic Information.

  1. Traffic is reported with a "Report Begin Traffic jam" Button in the navit map view. Configuration via navit.xml.
  2. Press on this button will create a http-request like in an HTML-form a to webserver with the current GPS position as a submitted input value. The current request changes the "report.Begin" button into an report end button.
  3. The time and date stamp of each report determines the validity of the user Reports. The validity is depending on the Nummer of reports.In navit the threshold of reports determines if reported records are used by navit for routing.Outdated records can be deleted automatically from the server. 4.A statistical analysis of submitted traffic reports can be used for time and location dependent traffic hotspot warnings
    5.Furthermore it should be possible to cancel and withdraw my own submissions of the last n hours.

To Do:

  • Finding a webserver for the online report system.
  • Writing a few php-scripts for reporting traffic Infos to the server via a Smartphone with installed navit and Internet connection.
  • A Login for navit to report traffic Infos,speed control cameras Clients.Rad Blocks.
  • If a navit user on a Smartphone drives with normal speed overhead a reported traffic jam,then an reported traffic jam can be automatically removed from the traffic Information System on the webserver for. If the traffic Information are collected with Open Content License than these infos can be used from TMC information providers as well supporting navit project with server infrastructure
aerostitch commented 13 years ago

2011-06-26 08:34:59: niehausbert@googlemail.com

aerostitch commented 13 years ago

2011-06-26 08:34:59: niehausbert@googlemail.com

aerostitch commented 13 years ago

2011-06-28 13:01:59: robin.seidel@biologie.uni-freiburg.de commented


this sounds like a great idea, and in my opinion is one of the major advantages of a community driven project: no map provider will have such freshly updated traffic jam data! I wonder if it would also be a good idea to include road works as well. The osm community doesn't seem to have a strict rule on how they should be marked best. But I think navit should go forward to tell navit users how to tag streets with roadworks so this information can be included in the routing process. Does anyone know if there are "diffs" for the osm.bin file, so one doesn't always have to download the whole bit?

aerostitch commented 11 years ago

2013-07-03 00:42:37: usul changed status from new to closed

aerostitch commented 11 years ago

2013-07-03 00:42:37: usul changed resolution from * to Incomplete/Missing infos*

aerostitch commented 11 years ago

2013-07-03 00:42:37: usul commented


This ticket needs more informations, a specific usecase would be great:

  • Which traffic provider should be used? How can the data been received? How is the data licensed?
  • What basic geodata are needed in this case? (e.g. TMC refers to specific object IDs)
  • How this should be embedded in Navit? Visualisation and Routing affected in which way?
aerostitch commented 11 years ago

2013-07-16 07:44:06: alexandre.filimonov@igeophysix.com commented


Hello, guys,

Bing Maps API has a REST service that returns traffic info http://msdn.microsoft.com/en-us/library/hh441725 Its coverage is very large.

  • Which traffic provider should be used? How can the data been received? How is the data licensed? So use Bing or Google for example
  • What basic geodata are needed in this case? (e.g. TMC refers to specific object IDs) your position, I think. You don't need to load the data everywhere.
  • How this should be embedded in Navit? Visualisation and Routing affected in which way? Color roads as they appear in Bing map. And include this info in route calculation (weight roads with traffic info - red # better not to choose, greenok to ride)

Kind regards, Alexander Filimonov

aerostitch commented 11 years ago

2013-07-16 07:45:16: alexandre.filimonov@igeophysix.com changed status from closed to reopened

aerostitch commented 11 years ago

2013-07-16 07:45:16: alexandre.filimonov@igeophysix.com changed resolution from Incomplete/Missing infos to **

aerostitch commented 11 years ago

2013-10-30 10:31:18: usul changed severity from * to hardcore*

aerostitch commented 10 years ago

2014-01-05 01:50:07: xenos1984

aerostitch commented 10 years ago

2014-01-13 23:31:49: usul commented


If we want to add the support, this talk might be interesting:

aerostitch commented 10 years ago

2014-10-17 16:11:49: @pgrandin

aerostitch commented 10 years ago

2014-10-17 16:11:49: @pgrandin commented


I really like this feature, and wasn't aware that Bing had an API for that. Will give it a try.

aerostitch commented 10 years ago

2014-10-18 11:26:54: @pgrandin uploaded file Screen Shot 2014-10-17 at 4.45.42 PM.png (138.5 KiB)

Screen Shot 2014-10-17 at 4.45.42 PM.png

aerostitch commented 10 years ago

2014-10-18 11:31:41: @pgrandin commented


I gave a try at the Bing api and here's what i found :

Here is an example result from the API:

{
                    "__type": "TrafficIncident:http://schemas.microsoft.com/search/local/ws/rest/v1",
                    "point": {
                        "type": "Point",
                        "coordinates": [
                            37.85978,
                            -121.21823
                        ]
                    },
                    "description": "at French Camp Rd/Exit 246 - Exit ramp closed.",
                    "end": "/Date(1413592641000)/",
                    "incidentId": 2824205489601928000,
                    "lastModified": "/Date(1412268782000)/",
                    "roadClosed": false,
                    "severity": 4,
                    "start": "/Date(1412268782000)/",
                    "toPoint": {
                        "type": "Point",
                        "coordinates": [
                            37.86031,
                            -121.21855
                        ]
                    },
                    "type": 5,
                    "verified": true
                },

There's two issues : 1) the precision of the event does not allow to match a map item easily. This is the above mentioned item on a map: [[Image(Screen Shot 2014-10-17 at 4.45.42 PM.png)]] Here, the event is slightly off, and in the case of a more dense area it would be extremely difficult to match the correct item. An option could be to find the items in a bounding box betwwn the point and toPoint items.

2) i was not able to find the traffic informations items in the API. The api reports items like roadwork, accidents, but i was unable to find things like traffic jams.

aerostitch commented 10 years ago

2014-11-02 11:12:24: @pgrandin commented


I stumbled upon this today : https://github.com/motokokusanagi/tnav

It seems to be a plugin to push traffic updates via json over dbus. Might worth investigating this code some more.

aerostitch commented 9 years ago

2015-08-01 10:34:55: @pgrandin commented


I also contacted the folks from http://opentraffic.io/ to see if we could use their service. No answer so far.

aerostitch commented 9 years ago

2015-10-26 13:19:37: @mvglasow changed status from reopened to new

aerostitch commented 9 years ago

2015-10-26 13:19:37: @mvglasow changed owner from KaZeR to mvglasow (2)

aerostitch commented 9 years ago

2015-10-26 13:19:37: @mvglasow commented


I've been working on something over the past few months. My idea is the following:

  • A generic abstraction layer for traffic services, so that it doesn't matter whether we're using a web API, a TMC dongle or you-name-it. This could be implemented as a map provider plugin. The map would consist of ways representing traffic events (closures, delays, reduced speed) on these ways.
  • One or more backends connecting to traffic services. The backend I have in mind would use TMC:
    • A lot of work on decoding TMC data from a number of sources has already been done by Christope Jacquet for his project: http://rds-surveyor.sourceforge.net/.
    • I have since added full location parsing as well as extra backend support (in part building upon Oona's work, whose talk was mentioned by usul earlier in this ticket). This part is functional by now.
    • What's next is converting the app into a backend service which collects traffic reports in the background, keeping track of messages (including deleting messages when a cancellation report is received or the message expires without being renewed). The service will get an interface (TBD, probably something like DBus on Linux and broadcasts on Android) with a frontend that any app can connect to and get notified about traffic messages.
    • Finally we'd have to add the abstraction layer to Navit, as well as a backend that talks to the service.
  • Routing would need to query the traffic map and convert the reports into traffic distortions, which would then be considered for routing. If a traffic report for a route segment changes, this would trigger recalculation of the route.

The beauty of a map provider for traffic information is that traffic data could easily be displayed as an overlay on the map.

The actual TMC backend would be a an independent service, which can also be used by other applications. This also means Navit wouldn't be concerned with hardware support for TMC dongles, or with obtaining location tables (needed for decoding locatios from TMC messages, each country has its own).

The poor accuracy that kazer mentioned is similar in TMC. However, TMC location information also has road names/numbers and directional information, which should make it possible to precisely identify the point on the mapset used.

There's just a decent amount of coding ahead...

aerostitch commented 8 years ago

2015-12-22 10:48:57: @pgrandin commented


"There's just a decent amount of coding ahead..."

Haha :)

You mention having some functional code already. Maybe we should create a new project under the navit-gps org ? I do agree that it would be a good idea to have this part off of Navit's core.

https://github.com/Nimrod007/waze-api could be an interesting backend too.

aerostitch commented 8 years ago

2015-12-22 10:49:37: @pgrandin

aerostitch commented 6 years ago

2018-01-15 15:15:07: @mvglasow commented


After some time of coding, I now have a (minimally) functional framework. Check it out at https://github.com/navit-gps/navit/tree/traffic. There’s also some information on the wiki at https://wiki.navit-project.org/index.php/Category:Traffic.

Currently there’s only a (still somewhat crude) core and a dummy plugin (which reports two hardcoded messages). Matching approximate locations to the map works (prototype quality), as does routing around traffic congestions which are present the moment the route is calculated (later changes are not yet taken into account, although this is on the roadmap).

The other piece of working code I have is an Android app named Qz (https://gitlab.com/mvglasow/qz), which gathers TMC data from a TMC dongle and displays it. I am planning to extend it to feed data to other apps, and write a traffic plugin for Navit which works with Qz.

aerostitch commented 6 years ago

2018-01-15 15:15:07: @mvglasow