I have already found an answer on StackOverflow to get the distance, but I can't figure out what code to incorporate in this to get the travel time.
public String getDistance(final double lat1, final double lon1, final double lat2, final double lon2){
final String[] parsedDistance = new String[1];
final String[] response = new String[1];
Thread thread=new Thread(new Runnable() {
@Override
public void run() {
try {
URL url = new URL("http://maps.googleapis.com/maps/api/directions/json?origin=" + lat1 + "," + lon1 + "&destination=" + lat2 + "," + lon2 + "&sensor=false&units=metric&mode=driving");
final HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
InputStream in = new BufferedInputStream(conn.getInputStream());
response[0] = org.apache.commons.io.IOUtils.toString(in, "UTF-8");
JSONObject jsonObject = new JSONObject(response[0]);
JSONArray array = jsonObject.getJSONArray("routes");
JSONObject routes = array.getJSONObject(0);
JSONArray legs = routes.getJSONArray("legs");
JSONObject steps = legs.getJSONObject(0);
JSONObject distance = steps.getJSONObject("distance");
parsedDistance[0] =distance.getString("text");
} catch (ProtocolException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
});
thread.start();
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.v("HomeMapsActivity", "This is the parsed distance "+parsedDistance);
return parsedDistance[0];
}
Just like you have fetched the distance object fro the json returned, you have to fetch the duration object.
JSONObject duration = steps.getJSONObject("duration");
You can also get the duration considering current traffic conditions by passing the traffic_model and departure_time parameters in your url like this -
traffic_model=best_guess&departure_time=now
and then fetch the duration_in_traffic object from the json returned
JSONObject duration = steps.getJSONObject("duration_in_traffic");
Take a look here - https://developers.google.com/maps/documentation/directions/intro#TravelModes
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.