I am using the following piece of code to find the road distance between two sets of coordinates in android:
public String getDistance(double lat1, double lon1, double lat2, double lon2) { String result_in_kms = ""; String url = "http://maps.google.com/maps/api/directions/xml?origin=" + lat1 + "," + lon1 + "&destination=" + lat2 + "," + lon2 + "&sensor=false&units=metric"; String tag[] = {"text"}; HttpResponse response = null; try { HttpClient httpClient = new DefaultHttpClient(); HttpContext localContext = new BasicHttpContext(); HttpPost httpPost = new HttpPost(url); response = httpClient.execute(httpPost, localContext); InputStream is = response.getEntity().getContent(); DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); org.w3c.dom.Document doc = builder.parse(is); if (doc != null) { NodeList nl; ArrayList args = new ArrayList(); for (String s : tag) { nl = doc.getElementsByTagName(s); if (nl.getLength() > 0) { Node node = nl.item(nl.getLength() - 1); args.add(node.getTextContent()); } else { args.add(" - "); } } result_in_kms =String.valueOf( args.get(0)); } } catch (Exception e) { e.printStackTrace(); } //Float f=Float.valueOf(result_in_kms); return result_in_kms; } But instead of the distance between them all i get is a '-'.What is wrong in the above code , i got it from this post: