Show Result routing path with Leaflet

I get route between 2 Point :

{
  "routes": [
    {
      "overview_polyline": {
        "points": "m{f~D}_ygHp@wAJs@Is@eAsBGk@Hg@"
      },
      "legs": [
        {
          "summary": "میدان انقلاب - انقلاب",
          "distance": {
            "value": 209.0,
            "text": "۲۲۵ متر"
          },
          "duration": {
            "value": 13.0,
            "text": "کمتر از ۱ دقیقه"
          },
          "steps": [
            {
              "name": "بزرگراه اهواز-حمیدیه",
              "instruction": "در جهت شرق در بزرگراه اهواز-حمیدیه قرار بگیرید",
              "bearing_after": 119,
              "type": "depart",
              "distance": {
                "value": 25.0,
                "text": "۲۵ متر"
              },
              "duration": {
                "value": 1.0,
                "text": "کمتر از ۱ دقیقه"
              },
              "polyline": "m{f~D}_ygHTm@",
              "start_location": [
                48.629912,
                31.333827
              ]
            },
            {
              "name": "انقلاب",
              "instruction": "در میدان انقلاب، از خروجی دوم، خارج شوید",
              "rotaryName": "میدان انقلاب",
              "bearing_after": 126,
              "type": "rotary",
              "modifier": "straight",
              "exit": 2,
              "distance": {
                "value": 101.0,
                "text": "۱۲۵ متر"
              },
              "duration": {
                "value": 5.0,
                "text": "کمتر از ۱ دقیقه"
              },
              "polyline": "wzf~DkaygHNWJQJs@Is@Yk@",
              "start_location": [
                48.630143,
                31.333717
              ]
            },
            {
              "name": "",
              "instruction": "به مسیر خود ادامه دهید",
              "bearing_after": 53,
              "type": "exit rotary",
              "modifier": "straight",
              "exit": 2,
              "distance": {
                "value": 83.0,
                "text": "۱۰۰ متر"
              },
              "duration": {
                "value": 8.0,
                "text": "کمتر از ۱ دقیقه"
              },
              "polyline": "szf~DigygHk@gAGk@Hg@",
              "start_location": [
                48.631088,
                31.333703
              ]
            },
            {
              "name": "انقلاب",
              "instruction": "در مقصد قرار دارید",
              "bearing_after": 0,
              "type": "arrive",
              "distance": {
                "value": 0.0,
                "text": ""
              },
              "duration": {
                "value": 0.0,
                "text": ""
              },
              "polyline": "}{f~DelygH",
              "start_location": [
                48.631869,
                31.333913
              ]
            }
          ]
        }
      ]
    }
  ]
}

In Steps we have 4 points:

[31.333827,48.629912 ],
[31.333717,48.630143 ],
[31.333703,48.631088],
[31.333913,48.631869 ]

When I use polyline my output is like below picture. But real Path is another thing.

enter image description here

I use Leaflet and get my .png file for map from another server and get Json String from another server.
How can Manage this?