Google Directions API

The Google Directions Web Service web service calculates directions between locations using an REST request. Directions may specify origins, destinations and waypoints either as text strings (e.g. "Chicago, IL") or as latitude/longitude coordinates. The Directions web service can return multi-part directions using a series of waypoints. This service is also available as part of the Google Maps JavaScript API, or with a Java client library.