[OSRM-talk] How to force match service to return public transport routes only?
Michal Palenik
michal.palenik at freemap.sk
Tue May 1 14:02:37 UTC 2018
On Tue, May 01, 2018 at 09:30:36AM -0400, Patrick Agin wrote:
> Thanks Michal and Daniel for your help, I defined my subway profile and it
> works well.
>
> Michal, can I ask you why you use this kind of code for the train profile:
> train = way:get_value_by_key('train');
> if ( not data. train or data. train =='') then return false;
this checks way's tags
>
> and this kind of code for the bus:
> bus = get_from_rel(relations, way, "route", "bus", "route");
> if ( not data.bus =='') then return false;
this one checks relations' tags (of relations that the way is a member
of)
> Aren't they defined the same way in osm data?
> Patrick
>
> 2018-04-30 13:26 GMT-04:00 Patrick Agin <agin.patrick at gmail.com>:
>
> > Thanks again Michal I'll try it soon with subway instead of bus. Out of
> > curiosity, why do you define highway in process_way function? It does not
> > seem to be used elsewhere.
> >
> > 2018-04-30 13:03 GMT-04:00 Michal Palenik <michal.palenik at freemap.sk>:
> >
> >> On Mon, Apr 30, 2018 at 12:57:42PM -0400, Patrick Agin wrote:
> >> > Thanks a lot to both of you. Michal, can I ask you two things:
> >> > what's the purpose of adding tram and train to excludable?
> >>
> >> generally to ignore trains when they do not have a common ticketing
> >> scheme.
> >>
> >> > and about get_from_rel(relations, way, "route", 'bus', "route") line, is
> >> > 'bus' a reserved OSM word or is it defined by you?
> >>
> >> function get_from_rel(relations, way, "route", 'bus', "network")
> >> will find first/random relation of route=bus which the way is a member
> >> of, and then returns tag "network".
> >>
> >> see also
> >> https://github.com/Project-OSRM/osrm-backend/issues/5032
> >>
> >> > I ask the question
> >> > because I would like to manage subway routes.
> >> > Patrick
> >> >
> >> > 2018-04-30 12:48 GMT-04:00 Michal Palenik <michal.palenik at freemap.sk>:
> >> >
> >> > > hi, I have it working
> >> > > https://github.com/FreemapSlovakia/freemap-routing/blob/
> >> master/oma-bus.lua
> >> > > (and train profile below)
> >> > >
> >> > > michal
> >> > >
> >> > > On Mon, Apr 30, 2018 at 09:26:22AM -0700, Daniel Patterson wrote:
> >> > > > Hi Patrick,
> >> > > >
> >> > > > Nobody has written a "How to make a public transport profile"
> >> document
> >> > > > for OSRM, you'll have to piece it together from examples and reading
> >> > > code.
> >> > > >
> >> > > > That said, the "testbot" profile here:
> >> > > > https://github.com/Project-OSRM/osrm-backend/blob/master/
> >> > > profiles/testbot.lua
> >> > > >
> >> > > > is fairly simple. There are 3 functions: `process_node`,
> >> > > `process_way`,
> >> > > > and `process_turn`. The `process_way` function is run for every
> >> way in
> >> > > the
> >> > > > OSM file you input, and it decides whether to include it in the
> >> routing
> >> > > > graph (by setting properties on the `result` object), or to exclude
> >> it
> >> > > (by
> >> > > > simply returning without doing any work).
> >> > > >
> >> > > > As someone else pointed out in another thread, the `car.lua`
> >> profile is
> >> > > > pretty complex - it's developed over time, and has a lot of logic
> >> in it
> >> > > > that makes it hard to understand. I'd start with the testbot
> >> profile
> >> > > > above, and add the stuff you think you need.
> >> > > >
> >> > > > You might also want to take a look at
> >> > > > https://github.com/Project-OSRM/osrm-frontend/tree/gh-pages/debug
> >> which
> >> > > is
> >> > > > a web viewer that can show you what the routing graph looks like.
> >> > > >
> >> > > > daniel
> >> > > >
> >> > > > On Mon, Apr 30, 2018 at 8:39 AM, Patrick Agin <
> >> agin.patrick at gmail.com>
> >> > > > wrote:
> >> > > >
> >> > > > > Thanks again Daniel. Could you just give me an example (with a
> >> snippet
> >> > > of
> >> > > > > code maybe) of a good implementation of point 1 (Lua profile that
> >> only
> >> > > > > includes public transport ways in the graph). I just don't have
> >> any
> >> > > clue
> >> > > > > about implementing this and I'm not aware of any docs that could
> >> help
> >> > > me
> >> > > > > with that.
> >> > > > > Patrick
> >> > > > >
> >> > > > > 2018-04-30 11:30 GMT-04:00 Daniel Patterson <daniel at mapbox.com>:
> >> > > > >
> >> > > > >> Hi Patrick,
> >> > > > >>
> >> > > > >> This could be tricky, depending on how long the traces you're
> >> > > trying to
> >> > > > >> match are.
> >> > > > >>
> >> > > > >> The OSRM Lua profiles basically act as a filter - they decide
> >> which
> >> > > > >> ways from OSM are included in the routing graph, and assign
> >> > > properties to
> >> > > > >> edges in the graph.
> >> > > > >>
> >> > > > >> The map-matching algorithm will try to snap your coordinate
> >> list to
> >> > > the
> >> > > > >> most likely path across the routing graph.
> >> > > > >>
> >> > > > >> In order to only snap to public transport paths, you'll need:
> >> > > > >>
> >> > > > >> 1) A Lua profile that only includes public transport ways in
> >> the
> >> > > > >> graph.
> >> > > > >> 2) A way to ensure that all the public transport paths are
> >> > > connected
> >> > > > >> together (this could be difficult without including lots of extra
> >> > > stuff you
> >> > > > >> don't want in the graph)
> >> > > > >> 3) GPS traces that are somewhat close to the actual paths
> >> > > themselves,
> >> > > > >> as mapped in OSM
> >> > > > >>
> >> > > > >> (2) could be the really tricky bit here. If the public
> >> transport
> >> > > paths
> >> > > > >> are not connected, then any GPS trace you have that spans two
> >> public
> >> > > > >> transport routes (say, a bus change, or a train change) but those
> >> > > routes
> >> > > > >> aren't actually connected by the graph, will cause problems with
> >> the
> >> > > > >> map-matching algorithm.
> >> > > > >>
> >> > > > >> daniel
> >> > > > >>
> >> > > > >> On Mon, Apr 30, 2018 at 7:23 AM, Patrick Agin <
> >> agin.patrick at gmail.com
> >> > > >
> >> > > > >> wrote:
> >> > > > >>
> >> > > > >>> Hi everyone,
> >> > > > >>> I'm trying to define a profile to force match service to take
> >> public
> >> > > > >>> transport routes only. I tried to add residential in excludable
> >> so I
> >> > > can
> >> > > > >>> add exclude=residential at query time but it does not change
> >> > > anything to
> >> > > > >>> the returned answer. Can someone help or point me towards
> >> > > documentation
> >> > > > >>> that could help (I've read profile.md but it does not help me
> >> much).
> >> > > > >>> Thanks a lot,
> >> > > > >>> Patrick (newbie with osrm)
> >> > > > >>>
> >> > > > >>> _______________________________________________
> >> > > > >>> OSRM-talk mailing list
> >> > > > >>> OSRM-talk at openstreetmap.org
> >> > > > >>> https://lists.openstreetmap.org/listinfo/osrm-talk
> >> > > > >>>
> >> > > > >>>
> >> > > > >>
> >> > > > >> _______________________________________________
> >> > > > >> OSRM-talk mailing list
> >> > > > >> OSRM-talk at openstreetmap.org
> >> > > > >> https://lists.openstreetmap.org/listinfo/osrm-talk
> >> > > > >>
> >> > > > >>
> >> > > > >
> >> > > > > _______________________________________________
> >> > > > > OSRM-talk mailing list
> >> > > > > OSRM-talk at openstreetmap.org
> >> > > > > https://lists.openstreetmap.org/listinfo/osrm-talk
> >> > > > >
> >> > > > >
> >> > >
> >> > > > _______________________________________________
> >> > > > OSRM-talk mailing list
> >> > > > OSRM-talk at openstreetmap.org
> >> > > > https://lists.openstreetmap.org/listinfo/osrm-talk
> >> > >
> >> > >
> >> > > --
> >> > > michal palenik
> >> > > www.freemap.sk
> >> > > www.oma.sk
> >> > >
> >> > > _______________________________________________
> >> > > OSRM-talk mailing list
> >> > > OSRM-talk at openstreetmap.org
> >> > > https://lists.openstreetmap.org/listinfo/osrm-talk
> >> > >
> >>
> >> > _______________________________________________
> >> > OSRM-talk mailing list
> >> > OSRM-talk at openstreetmap.org
> >> > https://lists.openstreetmap.org/listinfo/osrm-talk
> >>
> >>
> >> --
> >> michal palenik
> >> www.freemap.sk
> >> www.oma.sk
> >>
> >> _______________________________________________
> >> OSRM-talk mailing list
> >> OSRM-talk at openstreetmap.org
> >> https://lists.openstreetmap.org/listinfo/osrm-talk
> >>
> >
> >
> _______________________________________________
> OSRM-talk mailing list
> OSRM-talk at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/osrm-talk
--
michal palenik
www.freemap.sk
www.oma.sk
More information about the OSRM-talk
mailing list