GraphHopper.com | Forum | GitHub | Maps | Blog

Landmarks problem


#1

Hi, we use the planet graph and flexible routing in our project. I find some problems with landmark algo:

  1. When algo search landmarks in some area, it can find landmark that was reachable from a->b but not reachable from b->a, so weight to this landmark is always 65534 (this is normal?);
  2. when we try to find route near landmark borders the edges can get out from borders, and routing goes very long.

Help me please:)


#2

The case 1 should not happen as the preparation algorithm should ensure this. Do you have an example or is it possible to have a link? Or the process prints the landmarks after the creation as GeoJSON - could you attach this here?

Regarding 2: what do you mean with “landmark borders”? Do you mean routing from e.g. Germany to Turkey?

The default installation does a few things (splitting the area) so that requests inside are faster but cross-border requests will fall back to the slower non-landmark algorithm. To avoid this you specify your own GeoJSON border to split the area (or an empty GeoJSON to avoid splitting):

prepare.lm.split_area_location: custom.json

This might have a negative effect on the speed of the rest of the routing requests, so you might want to increase the used landmarks (likely you’ll need more RAM):

prepare.lm.landmarks: 24


#3

case 1. The .pbf file has bad tags and it has a place where you can come in, but can’t came out. You can see this landmark in attached file (lm_index: 1). On our graph we can go to this landmark, but can’t go out.

case 2: I mean routing from Russia to Russia, but the nodes is closely to split area borders. You can see example here


When LMAproximator run first time, it check subnetworks, but if routing already run and nodes out from subnetwork it work very long, longer that simple astar in few times.

ru.geo.json (1.4 KB)


#4

another good example of broken landmark

subnetwork: 17, lm_index:0.
map2.geo.json (41.6 KB)


#5

Ah, ok. Maybe the geojson is not precise enough - are you able to contribute a more precise one? If you provide an empty GeoJSON for splitting this should disappear too.

another good example of broken landmark

This is something unrelated IMO


#6

Maybe it unrelated, but it doesn’t mutter. I want to say that in some case LM algo can take edge from other subnetwork it’s issue i think and i want to fix it. Can i do this?
In our graph when it happened some times “took” of routing can be over 20 seconds.