Mateusz,

  The difference is in the small component snapping.

    "Impossible route between points" indicates that the two snapping points 
are on different small-sized Strongly Connected Components (SCC) (i.e. on two 
separate islands)
    "No route between points" indicates that the two snap points are on the 
same component, but there is no route between them.

  OSRM identifies every road edge as either belonging to a particular "small 
component" (an SCC with fewer than 1000 nodes, e.g. an island), or "the large 
component" (there is only one of these globally).

  During initial route finding, we snap coordinates to the nearest edge.

  If both the start and end snap to the same SCC, we attempt to route.  If the 
route fails, you'll get "No route between points".  This can happen if you 
route between two locations on the global "large component", i.e. between 
Europe and the USA.

  If both coordinates snap to the same small component, then by definition, you 
will get a route (this is what an SCC is).

  If one coordinate snaps to a small component, and one to the large component, 
the first point will be searched to find the nearest point on the large 
component.  Then we attempt to route.

  The only time "impossible route between points" can really happen is during 
test cases or if you fiddle with settings.  Because the threshold for "small 
component" is 1000 nodes, there is no "large component" created during test 
cases.

  This leads us to the situation where you can snap points to two separate 
small components, and leads to the error "Impossible route between points".  
That's what's happening in your test example - the one-way roads are creating 
separate SCC islands.

  There's a blog post here that gives an overview for the reasoning behind this 
somewhat complicated logic:

    https://www.mapbox.com/blog/smart-neighbor/ 
<https://www.mapbox.com/blog/smart-neighbor/>

daniel

> On Feb 20, 2017, at 9:42 AM, Mateusz Loskot <mate...@loskot.net> wrote:
> 
> On 20 February 2017 at 13:51, Mateusz Loskot <mate...@loskot.net> wrote:
>> [...]
>> I run the OSRM processing and service:
>> 
>> osrm-extract.exe -p C:\apps\osrm-5.5.0\profiles\car.lua
>> 89_car_two_consecutive_oneways.osm
>> osrm-contract.exe 89_car_two_consecutive_oneways.osrm
>> osrm-routed.exe 89_car_two_consecutive_oneways.osrm
> 
> 
> FYI, I've tested those queries using build based on the latest master
> and I'm getting the same results as on Windows with OSRM 5.5.0.
> 
> Best regards,
> -- 
> Mateusz Loskot, http://mateusz.loskot.net
> 
> _______________________________________________
> OSRM-talk mailing list
> OSRM-talk@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/osrm-talk

_______________________________________________
OSRM-talk mailing list
OSRM-talk@openstreetmap.org
https://lists.openstreetmap.org/listinfo/osrm-talk

Reply via email to