Very quick one here.
I’ve been trying to mapping, especially routing, working on an android application I’m developing. I will save you a lot of trouble and tell you to use the inbuilt Google services.
In fact, I found a gem of a post at http://smartandroidians.blogspot.co.uk/2010/06/showing-route-through-google-map-in.html which shows you how to open an intent for routing. I’ll add in some handy extras.
// Uri to open - this will work in your browser and is actually the uri that maps generates itself Uri uri = Uri.parse("http://maps.google.com/maps?&saddr=" + userLocOverlayItem.routableAddress() + "&daddr=" + destinationOverlayItem.routableAddress() + "&dirflg=w"); // Create an intent to view the URI Intent intent = new Intent(Intent.ACTION_VIEW, uri); // [Bonus] Set the intent class as a map, so you can avoid an annoying pop up asking whether to // open in the browser or maps intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); // Start the activity and close your launching activity startActivity(intent); finish();
I added a couple of things, as my application wanted walking directions and there was an annoying pop up asking what to open the URI with.
First, adding ...&dirflg=w
to the URI forced walking directions.
Second, setting the intent’s class name as in the snippet set a hint to android for what to open the URI with [2].
This isn’t new, but it was hard to track down something clear via searching, so I’m consolidating.
References
[1] http://smartandroidians.blogspot.co.uk/2010/06/showing-route-through-google-map-in.html
[2] http://stackoverflow.com/questions/8132069/calling-google-map-using-intent?lq=1