title: Draw driving route between 2 GeoPoints on GoogleMap SupportMapFragment
body: <p>This is a tricky question, been banging my head for a day, please help.</p>
  
  <p>I use Google Maps Apis to get the shortest driving distance and its routes, points, etc between 2 GeoPoints that I provide, see code below</p>
  
  <pre><code>private JSONObject GetDistance(String src, String dest) throws Exception
  {
      StringBuilder urlString = new StringBuilder();
      urlString.append("http://maps.googleapis.com/maps/api/directions/json?");
      urlString.append("origin=");// from
      urlString.append(src);
      urlString.append("&amp;destination=");// to
      urlString.append(dest);
      urlString.append("&amp;mode=driving&amp;sensor=true&amp;units=imperial");
  
      // get the JSON And parse it to get the directions data.
      HttpURLConnection urlConnection = null;
      URL url = null;
  
      url = new URL(urlString.toString());
      urlConnection = (HttpURLConnection) url.openConnection();
      urlConnection.setRequestMethod("GET");
      urlConnection.setDoOutput(true);
      urlConnection.setDoInput(true);
      urlConnection.connect();
  
      InputStream inStream = urlConnection.getInputStream();
      BufferedReader bReader = new BufferedReader(new InputStreamReader(inStream));
  
      String temp, response = "";
      while ((temp = bReader.readLine()) != null)
      {
          // Parse data
          response += temp;
      }
      // Close the reader, stream &amp; connection
      bReader.close();
      inStream.close();
      urlConnection.disconnect();
  
      JSONObject object = (JSONObject) new JSONTokener(response).nextValue();
  
      return (object);
  }
  </code></pre>
  
  <p>I also plot the 2 GeoPoints on a google maps fragment, I use SupportMapFragment, i.e. this library com.google.android.gms.maps.SupportMapFragment</p>
  
  <p>what I want to do is, I want to draw the route that I get from the getDistance function above, it outputs the data in JSON which I can easily handle.</p>
  
  <pre><code>Here is the JSON object that I get from the getDistance function
  {
      "status": "OK",
      "routes": [
          {
              "waypoint_order": [],
              "summary": "Wilbraham Rd/A6010",
              "bounds": {
                  "southwest": {
                      "lng": -2.26773,
                      "lat": 53.4301
                  },
                  "northeast": {
                      "lng": -2.19414,
                      "lat": 53.45106000000001
                  }
              },
              "legs": [
                  {
                      "duration": {
                          "value": 797,
                          "text": "13 mins"
                      },
                      "distance": {
                          "value": 7289,
                          "text": "4.5 mi"
                      },
                      "end_location": {
                          "lng": -2.19414,
                          "lat": 53.43052
                      },
                      "start_address": "137 College Road, Manchester, Greater Manchester M16 0AA, UK",
                      "end_address": "6 Ealing Place, Manchester M19, UK",
                      "start_location": {
                          "lng": -2.26773,
                          "lat": 53.45106000000001
                      },
                      "via_waypoint": [],
                      "steps": [
                          {
                              "html_instructions": "Head &lt;b&gt;southeast&lt;/b&gt; on &lt;b&gt;College Rd&lt;/b&gt; toward &lt;b&gt;Park Dr&lt;/b&gt;",
                              "duration": {
                                  "value": 83,
                                  "text": "1 min"
                              },
                              "distance": {
                                  "value": 729,
                                  "text": "0.5 mi"
                              },
                              "end_location": {
                                  "lng": -2.25758,
                                  "lat": 53.45005
                              },
                              "polyline": {
                                  "points": "ctfeIh|yLrBaEdAoB`@w@N]BKDM@Q@M?]?WC}AAgAGyG?mAI{GG{JM_HAo@"
                              },
                              "travel_mode": "DRIVING",
                              "start_location": {
                                  "lng": -2.26773,
                                  "lat": 53.45106000000001
                              }
                          },
                          {
                              "html_instructions": "Turn &lt;b&gt;right&lt;/b&gt; onto &lt;b&gt;Withington Rd&lt;/b&gt;",
                              "duration": {
                                  "value": 96,
                                  "text": "2 mins"
                              },
                              "distance": {
                                  "value": 747,
                                  "text": "0.5 mi"
                              },
                              "end_location": {
                                  "lng": -2.25703,
                                  "lat": 53.44339
                              },
                              "polyline": {
                                  "points": "ymfeIz|wLJ@v@TL@N?H?HAHCJEXKhAy@JGTEH?|BAzAExAAN?z@Cb@?dA?d@AdFKxCGfCC"
                              },
                              "travel_mode": "DRIVING",
                              "start_location": {
                                  "lng": -2.25758,
                                  "lat": 53.45005
                              }
                          },
                          {
                              "html_instructions": "Turn &lt;b&gt;left&lt;/b&gt; onto &lt;b&gt;Wilbraham Rd/A6010&lt;/b&gt;",
                              "duration": {
                                  "value": 249,
                                  "text": "4 mins"
                              },
                              "distance": {
                                  "value": 2565,
                                  "text": "1.6 mi"
                              },
                              "end_location": {
                                  "lng": -2.21852,
                                  "lat": 53.44261
                              },
                              "polyline": {
                                  "points": "edeeIlywLAsGAgA@}D@m@@{EFqGHcG?]LmGHaFDyD@gB?sC?oDIw@?i@AuACoCKiGWcNe@mQKcEK}DASAe@C{AAcAAq@?_B?mABkALkCFgBF[LsCp@sQFyADmALkDj@wNx@_U@wA"
                              },
                              "travel_mode": "DRIVING",
                              "start_location": {
                                  "lng": -2.25703,
                                  "lat": 53.44339
                              }
                          },
                          {
                              "html_instructions": "Continue straight onto &lt;b&gt;Moseley Rd/B5093&lt;/b&gt;&lt;div style=\"font-size:0.9em\"&gt;Continue to follow Moseley Rd&lt;/div&gt;&lt;div style=\"font-size:0.9em\"&gt;Go through 1 roundabout&lt;/div&gt;",
                              "duration": {
                                  "value": 100,
                                  "text": "2 mins"
                              },
                              "distance": {
                                  "value": 974,
                                  "text": "0.6 mi"
                              },
                              "end_location": {
                                  "lng": -2.20411,
                                  "lat": 53.44213000000001
                              },
                              "polyline": {
                                  "points": "i_eeIvhpLDsA@a@Ba@D{@JgAPsAVgBHi@De@Fe@Bc@Bk@D{@@_A?qAB}I?gA@oDBmJ@qD?g@@gGBgD@[?Q?MA[AUG]A??AA??AA??AA??A?AA??A?A?AAA?A?A?A?A?A?A?A@??A?A?A@A?A@??A@A@A@?@AYiE"
                              },
                              "travel_mode": "DRIVING",
                              "start_location": {
                                  "lng": -2.21852,
                                  "lat": 53.44261
                              }
                          },
                          {
                              "html_instructions": "At the roundabout, take the &lt;b&gt;2nd&lt;/b&gt; exit onto &lt;b&gt;Kingsway/A34&lt;/b&gt;",
                              "duration": {
                                  "value": 63,
                                  "text": "1 min"
                              },
                              "distance": {
                                  "value": 694,
                                  "text": "0.4 mi"
                              },
                              "end_location": {
                                  "lng": -2.20629,
                                  "lat": 53.43661
                              },
                              "polyline": {
                                  "points": "i|deItnmLC?AAA?AAAAA?AA?AACAAAAAC?AAC?AAC?C?C?CAA?C?C@C?C?A?C@C?C@A?C@A@C?A@A@A@A@A@A@?@A@?@A@?@?B?@@@?@@@?@@@??@@@@@?@@@@@?@@@?@?@@@b@V^VZHDBHBf@Rv@ZLD`@NJDB@h@RrFvBLDhGxBjFdB"
                              },
                              "travel_mode": "DRIVING",
                              "start_location": {
                                  "lng": -2.20411,
                                  "lat": 53.44213000000001
                              }
                          },
                          {
                              "html_instructions": "Turn &lt;b&gt;left&lt;/b&gt; onto &lt;b&gt;Grangethorpe Dr&lt;/b&gt;",
                              "duration": {
                                  "value": 56,
                                  "text": "1 min"
                              },
                              "distance": {
                                  "value": 415,
                                  "text": "0.3 mi"
                              },
                              "end_location": {
                                  "lng": -2.20015,
                                  "lat": 53.43616
                              },
                              "polyline": {
                                  "points": "yyceIh|mL\\aCBUBa@RcCFc@FcAHiB@MReRM}@AI"
                              },
                              "travel_mode": "DRIVING",
                              "start_location": {
                                  "lng": -2.20629,
                                  "lat": 53.43661
                              }
                          },
                          {
                              "html_instructions": "Continue onto &lt;b&gt;Crossley Rd&lt;/b&gt;",
                              "duration": {
                                  "value": 45,
                                  "text": "1 min"
                              },
                              "distance": {
                                  "value": 394,
                                  "text": "0.2 mi"
                              },
                              "end_location": {
                                  "lng": -2.19433,
                                  "lat": 53.43562000000001
                              },
                              "polyline": {
                                  "points": "_wceI|ulLGyCBY@GJs@L}@BaA?GFqCBiBDkB@CLkBPkBRsCF{@"
                              },
                              "travel_mode": "DRIVING",
                              "start_location": {
                                  "lng": -2.20015,
                                  "lat": 53.43616
                              }
                          },
                          {
                              "html_instructions": "Turn &lt;b&gt;right&lt;/b&gt; onto &lt;b&gt;Errwood Rd&lt;/b&gt;",
                              "duration": {
                                  "value": 60,
                                  "text": "1 min"
                              },
                              "distance": {
                                  "value": 607,
                                  "text": "0.4 mi"
                              },
                              "end_location": {
                                  "lng": -2.19615,
                                  "lat": 53.43027000000001
                              },
                              "polyline": {
                                  "points": "ssceIpqkL`GtA`B`@xCt@z@Th@H|EnAjFlA"
                              },
                              "travel_mode": "DRIVING",
                              "start_location": {
                                  "lng": -2.19433,
                                  "lat": 53.43562000000001
                              }
                          },
                          {
                              "html_instructions": "Take the 2nd &lt;b&gt;left&lt;/b&gt; onto &lt;b&gt;Watford Rd&lt;/b&gt;",
                              "duration": {
                                  "value": 12,
                                  "text": "1 min"
                              },
                              "distance": {
                                  "value": 83,
                                  "text": "272 ft"
                              },
                              "end_location": {
                                  "lng": -2.19492,
                                  "lat": 53.4301
                              },
                              "polyline": {
                                  "points": "erbeI||kL`@uF"
                              },
                              "travel_mode": "DRIVING",
                              "start_location": {
                                  "lng": -2.19615,
                                  "lat": 53.43027000000001
                              }
                          },
                          {
                              "html_instructions": "Turn &lt;b&gt;left&lt;/b&gt; onto &lt;b&gt;Eastern Cir&lt;/b&gt;",
                              "duration": {
                                  "value": 20,
                                  "text": "1 min"
                              },
                              "distance": {
                                  "value": 65,
                                  "text": "213 ft"
                              },
                              "end_location": {
                                  "lng": -2.19415,
                                  "lat": 53.43037
                              },
                              "polyline": {
                                  "points": "cqbeIfukLWWIMKUG_@AU@g@"
                              },
                              "travel_mode": "DRIVING",
                              "start_location": {
                                  "lng": -2.19492,
                                  "lat": 53.4301
                              }
                          },
                          {
                              "html_instructions": "Take the 2nd &lt;b&gt;left&lt;/b&gt; onto &lt;b&gt;Ealing Pl&lt;/b&gt;",
                              "duration": {
                                  "value": 13,
                                  "text": "1 min"
                              },
                              "distance": {
                                  "value": 16,
                                  "text": "52 ft"
                              },
                              "end_location": {
                                  "lng": -2.19414,
                                  "lat": 53.43052
                              },
                              "polyline": {
                                  "points": "yrbeIlpkL]A"
                              },
                              "travel_mode": "DRIVING",
                              "start_location": {
                                  "lng": -2.19415,
                                  "lat": 53.43037
                              }
                          }
                      ]
                  }
              ],
              "warnings": [],
              "overview_polyline": {
                  "points": "ctfeIh|yLxDqHp@uAHYB_@E{EGgJQwSOoIbAVp@?TIXKhAy@`@MfCA`GKhB?jGM`HKC{ILyUHaHVoNFaH?cIIw@?i@EeFc@mVq@qWSsICcHPwEFgBF[~@gVLgDx@cTx@_U@wAFuBH}A\\{C`@qCLkAFoAF{BBoLFwW@oHDcECqAK_@CCCM?G@E@GDEBAYiEC?CACCEGEICMAMD[BKFGFCHAFBDDDF@Fd@X^VZHNF~An@~@\\|GjCvG~BjFdB\\aCFw@ZgDPmDTsROgAGyCBYL{@L}@BaAFyCHuENoBd@_GF{@`GtAzFvAdB^|EnAjFlA`@uFWWUc@Iu@@g@]A"
              },
              "copyrights": "Map data ©2013 Google"
          }
      ]
  }
  </code></pre>
  
  <p>Please help, I'm really really lost in here.</p>