We can get various details on the directions between two locations as XML like, total distance, total time taken by using various travel modes like(driving, cycling and walking etc.), all the way points and details of how to get there with directions. The code below explains how to send the web request and receive a XML response using google maps API. From this response XML we can get the direction details, total distance, total time taken by various travel modes, longitude and latitude for both the locations etc.
This response XML received may have various result status like :-
Private Function GetResponseXMLByFromAndToLocation(ByVal fromLocation As String, ByVal toLocation As String) As String
Dim responseXml As String = String.Empty Dim webUrlForRequest As string 'construct the URL with concatenating the FROM and TO locations and send the web request to google maps webserver Dim url As String = "http://maps.googleapis.com/maps/api/directions/xml" Dim restUrl As String = "?origin=###FROMLOCATION###&destination=###TOLOCATION###&sensor=false" restUrl = restUrl.Replace("###FROMLOCATION###", fromLocation.Replace(" ", "+")) restUrl = restUrl.Replace("###TOLOCATION###", toLocation.Replace(" ", "+")) webUrlForRequest = url & restUrl 'get the response for the request sent to the google maps webserver Dim wsClient As New WebClient responseXml = wsClient.DownloadString(webUrlForRequest) Return responseXml End Function OK – valid result. NOT_FOUND - at least one of the locations specified in the requests's origin, destination, or waypoints could not be geocoded. ZERO_RESULTS - no route could be found. INVALID_REQUEST - provided request was invalid. REQUEST_DENIED - service denied use of the directions service by your application. UNKNOWN_ERROR - directions request could not be processed due to a server error. If _responseXml.Contains("OK") Then Dim xmlDoc As New XmlDocument() xmlDoc.LoadXml(_responseXml) Dim stepsNodeList As XmlNodeList Dim durationNodeList As XmlNodeList Dim startLocationNodeList As XmlNodeList Dim endLocationNodeList As XmlNodeList stepsNodeList = xmlDoc.SelectNodes("/DirectionsResponse/route/leg/step/html_instructions") durationNodeList = xmlDoc.SelectNodes("/DirectionsResponse/route/leg/step/duration/text") startLocationNodeList = xmlDoc.SelectNodes("/DirectionsResponse/route/leg/start_address") endLocationNodeList = xmlDoc.SelectNodes("/DirectionsResponse/route/leg/end_address") ----------- -------------- ---------- ---------------------- -- ---XXXXXXX ---- XXXXX------- XXXXXXXX ---------- EndIf
Like this we can get the nodelists for each section of the response and we can proceed for getting the results we require from their inner texts.
This TIP is created by referring from the Google’s geocode site so any one wants to get an extra knowledge on using google’s maps API for getting the direction, distance or any other data among the two locations please go through the link :-
http://code.google.com/apis/maps/documentation/directions/