GraphHopper.com | Forum | GitHub | Maps | Blog

Error in processing gpx file


#1

Hi, I was using map-matching to process a gpx file (downloaded from openstreetmap). I got some error below, Could some one please let me know what is going wrong? I increased max_visited_nodes, but it didnt help. many thanks in advance.

Exception in thread “main” java.lang.IllegalArgumentException: Sequence is broken for submitted track at time step 91 (563 points). observation:48.0699636,11.6237759,NaN, 2095401, 1 candidates: [distance: 473.52487570238725 to 48.074219519068734,11.623998246133288,NaN]. If a match is expected consider increasing max_visited_nodes.
at com.graphhopper.matching.MapMatching.computeViterbiSequence(MapMatching.java:441)
at com.graphhopper.matching.MapMatching.doWork(MapMatching.java:239)
at gpsmatching.GpsMatching.main(GpsMatching.java:145)


#2

HI, I have a real life example with the same problem with a broken Sequence (thrown by an IllegalArgumentException during computeViterbiSequence): Sequence is broken for submitted track at time step 1 (3 points). observation:52.702572,13.552384,NaN, 3014988, 2 candidates: [distance: 14.56955396240139 to 52.702529698695564,13.552179345610295,NaN, distance: 14.56955396240139 to 52.702529698695564,13.552179345610295,NaN]. If a match is expected consider increasing max_visited_nodes.

incresing max_visited_nodes or gps accuracy has also no effect.
I using germany-latest.osm.pbf from geofabrik and version 0.9.0

here is my .gpx file(it works only when you delete the first point):

A11_3pos.gpx (596 Bytes)


#3

but if i use the routing demo site like this
https://graphhopper.com/maps/?point=52.553098%2C13.521622&point=52.702572%2C13.552384&point=52.940292%2C13.795134&locale=en-US&vehicle=car&weighting=fastest&elevation=true&use_miles=false&layer=Omniscale
a route will be found


#4

@cbr83 The distances between the points seems just too large.
@William_li do you have an example for your use case?


#5

Thank you for your quick answer!

increasing max_visited_nodes per API parameter is only posible for values until 5000, thanks to this line in MatchServlet.java (line:100)

int maxVisitedNodes = Math.min(getIntParam(httpReq, Routing.MAX_VISITED_NODES, 3000), 5000);

the first position is near Berlin where more visited nodes are needed, obviously.
I tryed increasing it to 10000, which worked for me.
50000 seams to be too much for terminating.!?


#6

This is the reason why we have a limit there :slight_smile:

If you have longer distances or delays consider using the /route end point instead. In the future we plan to handle this as well, but not yet done