From bba5d14dff00c4ec6f2553edc2ee4ace2ad9cfb3 Mon Sep 17 00:00:00 2001 From: Stefan Holder Date: Mon, 9 Jan 2017 17:13:23 +0100 Subject: [PATCH] Update README.md (matching algo + mvn) --- README.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 444ae716..91914e13 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,9 @@ gps_accuracy=15 # default=15, type=int, unit=meter, the precision o This will produce gpx results similar named as the input files. +Developer note: After changing the code you should run `mvn clean` before running `map-matching.sh` +again. + ### UI and matching Service Start via: @@ -122,4 +125,20 @@ like when updating the OSM data. ### About -See [this project](https://github.com/bmwcarit/hmm-lib) from [Stefan](https://github.com/stefanholder) which is used in combination with the GraphHopper routing engine and is used as the algorithmic approach now. Before it was [this faster but more heuristic approach](https://karussell.wordpress.com/2014/07/28/digitalizing-gpx-points-or-how-to-track-vehicles-with-graphhopper/). +The map matching algorithm mainly follows the approach described in + +*Newson, Paul, and John Krumm. "Hidden Markov map matching through noise and sparseness." +Proceedings of the 17th ACM SIGSPATIAL International Conference on Advances in Geographic +Information Systems. ACM, 2009.* + +This algorithm works as follows. For each input GPS position, a number of +map matching candidates within a certain radius around the GPS position is computed. +The [Viterbi algorithm](https://en.wikipedia.org/wiki/Viterbi_algorithm) as provided by the +[hmm-lib](https://github.com/bmwcarit/hmm-lib) is then used to compute the most likely sequence +of map matching candidates. Thereby, the distances between GPS positions and map matching +candidates as well as the routing distances between consecutive map matching candidates are taken +into account. The GraphHopper routing engine is used to find candidates and to compute routing +distances. + +Before GraphHopper 0.8, [this faster but more heuristic approach](https://karussell.wordpress.com/2014/07/28/digitalizing-gpx-points-or-how-to-track-vehicles-with-graphhopper/) +was used. \ No newline at end of file