Create a traveling salesman route with taking into account the subway

I am trying to build a small app that would be used by my company.

However i cannot use the google api, as my company fears that the api cost might go up in the future.

I would like to build a traveling salesman route for a person that is on ‘foot’ that also takes into account the subway.

Similar to what the Maps.Me did and what google maps can do right now.

However it seems that metro stations are ignored when planning a route.

Certainly the metro is the fastest way to get around a congested city, much faster than a bus thats for sure.

Does graphhopper offer that capability? Maps.Me offers that, however it lacks a ‘rest’ api oddly enough, just a java/ios library to be used in a mobile app.

Here is the link that i used.

Alas, public transit is not part of GraphHopper the public API. GraphHopper the open source package does offer transit routing, so if you want to experiment with hosting this yourself, you can!

It still doesn’t solve travelling salesman problems, though.

Thank you so much for your kind reply. I also checked the github stories you did on public transit.

Google maps and, can help you create a route that can include a subway part + walking part.

To be clear, i am interested if graphhopper can compute a route with a ‘subway part and a walking part’,

Because people usually walk 2 miles a day, and use the subway for 5 miles, so i need to compute a route that includes both forms of transportation, and decides which route is best.

It says here that, that feature is not implemented yet and is in ‘open’ state.

So i would like something like: graph.flag_encoders=pt,walking.

I dont know java at all in fact so it’ll take me some time to download graphhopper, build it and try to test it to see if it produces similar results to what or google which is why i am asking.

You can’t really combine pt with custom profiles yet, but you definitely get subway and walking. The pt router uses the “walk” profile for access and egress trips. No need to configure that explicitely.