Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android google.navigation Intent Modes?

I'm currently developing an application that will launch a navigation intent. I know that this isn't an official API, but it works perfectly the way I want it to.

I allow the user to select driving, walking, and bus navigation to a location. The intent to launch directly into Google Maps Navigation looks like this:

google.navigation:ll= + a latitude and longitude, then + &mode= then your mode of transportation. For example, to navigate using walking directions to a certain area:

google.navigation:ll=blah,blah&mode=w

Driving is default, or &mode=d, and biking is &mode=b, but I can't figure out bus (public transit).

Has anyone done this before?

Thanks!

Edit: So far, I've found that mode=public gives bike directions, mode=transit gives driving, frustratingly, mode=bus also returns bike directions.

More: mode=train also gives driving... There's GOT to be a way to do this...

Another Edit: I realized just now that I'm pretty sure that it doesn't exist, because after experimenting with terms I realized that I should instead launch a Google Maps intent with a bus search, but does anyone know how to do this?

like image 778
Patrick Mahoney Avatar asked Nov 06 '12 16:11

Patrick Mahoney


2 Answers

After a bunch of guessing and hunting around, I have decided that it is impossible to launch directly to bus navigation, because that would involve CHOOSING a bus for the person to ride, which wouldn't make sense.

Instead, you can launch them to a Google Maps search to the destination like so, thank you to this answer to a similar question:

"http://maps.google.com/maps?daddr=lat,long&dirflg=r"

With the &dirflag specifying public transit. (Why the "r" I have no idea...)

like image 109
Patrick Mahoney Avatar answered Oct 10 '22 05:10

Patrick Mahoney


You should be able to append the travel mode as needed, with the travel modes listed below.

  • driving (default) indicates standard driving directions using the road network.
  • walking requests walking directions via pedestrian paths & sidewalks (where available).
  • bicycling requests bicycling directions via bicycle paths & preferred streets (where available).
  • transit requests directions via public transit routes (where available).

If you would like to launch an Intent and allow the user to select between Maps or Browser you can do it this way.

Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?saddr="+ starting_point_lat+","+starting_point_long+"&daddr="+dest_point_lat+","+dest_point_long+"&mode=transit"));
startActivity(intent);
like image 24
Aaron McIver Avatar answered Oct 10 '22 06:10

Aaron McIver