Hi
As I'm curious about this thread, I gave the proposed solution a try. On
the same osm.pbf data for France, I compared the default car profile
with the same profile modified with mode_ferry = 0 on line 151.
The modified profile does prevent routing through some ways tagged as
"route": "ferry" (e.g. http://www.osm.org/way/148185791 and
http://www.osm.org/way/30154495). But some are still used for routing,
like for example http://www.osm.org/way/307774731.
Yet, I would expect the same behavior for all above examples in the
ferries handling part inside way_function in the profile:
https://github.com/Project-OSRM/osrm-backend/blob/develop/profiles/car.lua#L257-L269
Could this be related to other tags, or am I missing something here?
Thanks,
Julien
Le 12/11/2015 04:24, Richard Marsden a écrit :
thanks - I was still at the LUA stage (and quite a bit can be worked
out from just this level).
The explanation below explains 0 and 1, but I couldn't see any
explanation of the other values - despite some c++ code that set default
TravelMode values of 4 in a couple of places. No documentation in
TravelMode.hpp????
The lack of documentation is an issue, and I was planning to write a few
notes about the LUA profiles for others on my blog. They're bound to be
incomplete, but they would be a start and could be updated/corrected as
a living document.
Richard
On Nov 11, 2015, at 6:50 PM, Daniel Hofmann <[email protected]
<mailto:[email protected]>> wrote:
Let me show you how you can find out more about specific variables
like mode_ferry:
your best bet is to search the code base, for example, see this
initial search for mode_ferry:
https://github.com/Project-OSRM/osrm-backend/search?utf8=%E2%9C%93&q=mode_ferry&type=Code
you can see how we set result.forward_mode and result.backward_mode to
mode_ferry there, so let's search for forward_mode:
https://github.com/Project-OSRM/osrm-backend/search?utf8=%E2%9C%93&q=forward_mode&type=Code
this gives us some lua profiles, which we ignore, since we want to see
how the OSRM implementation uses forward_mode and backward_mode; the
last search hit is scripting_environment.cpp:
https://github.com/Project-OSRM/osrm-backend/blob/8f6fc0146ba76d34d20c5b7a87b75249bbb12b82/extractor/scripting_environment.cpp#L121-L124
this is where we expose the ExtractionWay's set_forward_mode and
set_backward_mode member functions, aliasing them to the lua
properties forward_mode and backward_mode --- so let's go on searching
for the ExtractionWay type:
https://github.com/Project-OSRM/osrm-backend/blob/8f6fc0146ba76d34d20c5b7a87b75249bbb12b82/extractor/extraction_way.hpp#L112-L115
in those member functions, the forward_travel_mode and
backward_travel_mode are set accordingly. If you check their types a
few lines below in the member attribute declarations, you will see
they are of type TravelMode. And here it is:
https://github.com/Project-OSRM/osrm-backend/blob/8f6fc0146ba76d34d20c5b7a87b75249bbb12b82/data_structures/travel_mode.hpp#L34-L35
a quick search for TRAVEL_MODE_INACCESSIBLE reveals the following line
in the extractor:
https://github.com/Project-OSRM/osrm-backend/blob/9ef1f8cba31ec8323b357d233f1c552b1c7c9e09/extractor/extractor_callbacks.cpp#L95-L99
where ways are discarded, if they are inaccessible! Tada!
As you can see, even though it is quite a bit of effort tracing back
specific variables, it can be done in a few minutes with only the most
basic tools (I did this entirely using the Github search functionality
--- of course you can use grep or your code browser of choice, too).
Hope that helps,
Daniel J H
On Wed, Nov 11, 2015 at 7:06 PM, Richard Marsden <[email protected]
<mailto:[email protected]>> wrote:
By coincidence I was working through the lua scripts trying to
understand them.
So what is the significance of the 1,2,3? Just unique
identifiers. As long as they're non-zero, they will be enabled?
Richard
On Nov 11, 2015, at 9:23 AM, Daniel Hofmann <[email protected]
<mailto:[email protected]>> wrote:
If you take a look at the car profile, you will see a ferry_mode
variable, that sets the travel mode:
https://github.com/Project-OSRM/osrm-backend/blob/8f6fc0146ba76d34d20c5b7a87b75249bbb12b82/profiles/car.lua#L151
If you set this to 0 (i.e. 'inaccessible") as defined here:
https://github.com/Project-OSRM/osrm-backend/blob/8f6fc0146ba76d34d20c5b7a87b75249bbb12b82/data_structures/travel_mode.hpp#L34-L35
then the extractor discards ferry routes because you marked them
inaccessible.
On Wed, Nov 11, 2015 at 9:03 AM, Peter Becker
<[email protected] <mailto:[email protected]>> wrote:
Hello, i dont want any ferries in my routes. Is this possible?
_______________________________________________
OSRM-talk mailing list
[email protected] <mailto:[email protected]>
https://lists.openstreetmap.org/listinfo/osrm-talk
_______________________________________________
OSRM-talk mailing list
[email protected] <mailto:[email protected]>
https://lists.openstreetmap.org/listinfo/osrm-talk
_______________________________________________
OSRM-talk mailing list
[email protected] <mailto:[email protected]>
https://lists.openstreetmap.org/listinfo/osrm-talk
_______________________________________________
OSRM-talk mailing list
[email protected] <mailto:[email protected]>
https://lists.openstreetmap.org/listinfo/osrm-talk
_______________________________________________
OSRM-talk mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/osrm-talk
_______________________________________________
OSRM-talk mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/osrm-talk