سرویس محاسبه زمان سفر

سرویس محاسبه زمان سفر، مدت زمان و مسافت سفر بین دو یا چند نقطه را تعیین می‌کند. مختصات جغرافیایی نقاط مبدا و مقصد به سرویس ارسال می‌شوند و سرویس در پاسخ مسافت و زمان سفر بین آن‌ها را برمی‌گرداند. ترتیب ارائه زمان و فاصله‌­ی هر سفر برابر با ترتیب نقاط در ورودی است. این سرویس نقطه اول را به عنوان اولین مبدا و نقطه دوم را به عنوان اولین مقصد در نظر می‌گیرد و زمان و مسافت سفر بین آن‌ها­‌ محاسبه می‌کند. پس از آن زمان و مسافت سفر بین نقطه دوم و نقطه سوم را به‌ترتیب به عنوان مبدا و مقصد بعدی تعیین می‌کند به این ترتیب محاسبه فاصله­‌ی زمانی و مکانی سفر بین نقاط تا آخرین جفت نقطه وارد شده ادامه می­‌یابد.

ser-eta

قابلیت‌های سرویس

محاسبه زمان سفر با وسیله نقلیه خودرو
محاسبه زمان سفر با وسیله نقلیه موتورسیکلت
محاسبه زمان سفر با احتساب ترافیک و یا بدون درنظر گرفتن ترافیک
محاسبه زمان چندین سفر با وسیله نقلیه خودرو
محاسبه زمان چندین سفر با وسیله نقلیه موتور سیکلت

ساختار کلی سرویس

get
/direction/eta?parameters

پارامترهای ورودی

پارامترهای مورد نیاز

پارامتر توضیحات
waypoints مجموعه نقاط مبدا و مقصد درخواستی را مشخص می‌کند. این نقاط با | از هم جدا می‌شوند. هر نقطه دارای طول و عرض جغرافیایی است و با , از هم تفکیک می‌شوند. این سرویس اولین ورودی را به‌ عنوان مبدا اول و دومین ورودی به عنوان مقصد اول در نظر می‌گیرد و زمان و مسافت سفر بین آن‌ها را محاسبه می‌کند. پس از آن نقطه دوم و سوم را به ترتیب به عنوان مبدا و مقصد بعدی در نظر می‌گیرد و فاصله زمانی و مکانی سفر بین آن‌ها را تعیین می‌کند. این پیمایش تا آخرین جفت نقاط وارد شده ادامه می‌یابد.

پارامترهای اختیاری

پارامترهای اختیاری آپشن‌ها و امکانات مختلف سرویس را ارائه می‌دهند. ارسال آن‌ها جهت استفاده از سرویس اجباری نیست.

پارامتر توضیحات مقدار پیش‌فرض
travel_mode نوع وسیله نقلیه را مشخص می‌کند. این سرویس قابلیت انتخاب وسایل نقلیه خودرو و موتورسیکلت را دارد. درصورتیکه مقدار این پارامتر driving یا 0 باشد و یا مقداری برای آن وارد نشده باشد تخمین زمانی برای ماشین و اگر 1 یا motorcycling باشد تخمین زمانی برای موتور است. پیش‌فرض وسیله نقلیه خودرو (driving) است.
traffic احتساب و یا عدم احتساب ترافیک در تعیین زمان سفر را تعیین می‌کند. درصورت درخواست کردن محاسبه زمان سفر با در نظر گرفتن ترافیک، مقدار این پارامتر باید true باشد. 
 در صورت درخواست کردن تعیین زمان سفر بدون در نظر گرفتن ترافیک، مقدار این پارامتر باید به false تغییر یابد. 
پیش‌فرض، عدم درنظرگرفتن ترافیک (false) در محاسیه زمان سفر است.
request_id در صورت ست شدن پارامتر فوق، به صورت یکتا در روز می‌توان برای پیگیری استفاده نمود. به صورت پیش‌فرض، عدم پیگیری در روز است.

نمونه درخواست

درخواست تعیین زمان و مسافت سفر با وسیله نقلیه خودرو

با ارسال مختصات جغرافیایی نقطه مبدا و مقصد، زمان و مسافت سفر بین این دو نقطه در پاسخ برگردانده می‌شوند.

https://api.parsimap.ir/direction/eta?key=PMI_API_TOKEN&waypoints=51.33769,35.69971|51.34034,35.69687&travel_mode=driving&traffic=true

نمونه پاسخ

{
  "legs": [
    {
      "distance": {
        "text": "۱ کیلومتر ۲۶۶ متر",
        "value": 1266
      },
      "duration": {
        "text": "۳ دقیقه ۱۳ ثانیه",
        "value": 193
      },
      "start_location": {
        "lat": 35.69971,
        "lng": 51.33769
      },
      "end_location": {
        "lat": 35.69687,
        "lng": 51.34034
      }
    }
  ],
  "distance": {
    "text": "۱ کیلومتر ۲۶۶ متر",
    "value": 1266
  },
  "duration": {
    "text": "۳ دقیقه ۱۳ ثانیه",
    "value": 193
  },
  "start_location": {
    "lat": 35.69971,
    "lng": 51.33769
  },
  "end_location": {
    "lat": 35.69687,
    "lng": 51.34034
  },
  "status": "OK"
}

پارامترهای خروجی

پارامتر توضیحات
legs مشخصات سفر بین هر جفت نقطه ورودی است. legs  شامل بخش‌های است که هر بخش خود شامل مسافت، زمان و مختصات نقطه شروع و پایان سفر برای هر دو نقطه تعیین شده در ورودی است. ترتیب این بخش‌ها برابر با ترتیب وارد کردن نقاط در ورودی است، مسافت و زمان هر بخش نشان دهنده مسافت و زمان بین بخش قبل و نقطه‌ی مقصد بعدی است. به این صورت که فاصله زمانی و مکانی بین نقطه اول و دوم وارد شده و سپس فاصله زمانی و مکانی نقطه دوم و سوم و به همین ترتیب تا جفت نقطه انتهایی در خروجی آورده می‌شود.
  • distance: مسافت سفر بین جفت نقاط مبدا و مقصد در هر بخش است. مسافت فوق شامل مقدار عددی (text) و حرفی (value) فاصله‌ی بین دو نقطه بر حسب متر است.
  • duration: زمان سفر بین جفت نقاط مبدا و مقصد با احتساب ترافیک است. فاصله زمانی فوق شامل مقدار عددی (text) و حرفی (value) فاصله‌ی بین دو نقطه بر حسب متر است.
  • distance مسافت کلی سفر بین اولین نقطه ورودی (اولین مبدا) تا آخرین نقطه ورودی (آخرین مقصد) است. واحد اندازه گیری آن متر است. خروجی به دو صورت مقدار عددی (text) و مقدار حرفی (value) نشان داده می‌شود.
    duration این پارامتر زمان کلی سفر بین اولین نقطه ورودی (اولین مبدا) تا آخرین نقطه ورودی (آخرین مقصد) است. واحد اندازه گیری آن ثانیه است. خروجی به دو صورت مقدار عددی (text) و مقدار حرفی (value) نشان داده می‌شود.
    start_location مختصات جغرافیایی نقطه شروع است. مختصات این نقطه برابر است با مختصات اولین نقطه‌ای که کاربر وارد کرده است.
    end_location مختصات نقطه پایانی سفر است. مختصات این نقطه برابر است با مختصات آخرین نقطه‌ای که کاربر وارد کرده است.
    status نتیجه درخواست را نشان می‌دهد. برای مثال نتیجه این درخواست OK است که به معنی موفق بودن درخواست است. نتیجه پاسخ به درخواست ارسالی توسط کاربر در قالب جدول زیر ارائه شده است: جدول

    درخواست تعیین زمان و مسافت چند سفر با وسیله نقلیه خودرو

    با ارسال مختصات جغرافیایی نقاط مبدا و مقصد، زمان و مسافت سفر بین نقاط در پاسخ ارسال می‌گردد.

    https://api.parsimap.ir/direction/eta?key=PMI_API_TOKEN&waypoints=51.33769,35.69971|51.34034,35.69687|51.33108,35.69630&travel_mode=driving&traffic=true
    

    نمونه پاسخ

    {
      "legs": [
        {
          "distance": {
            "text": "۱ کیلومتر ۲۶۶ متر",
            "value": 1266
          },
          "duration": {
            "text": "۳ دقیقه ۱۹ ثانیه",
            "value": 199
          },
          "start_location": {
            "lat": 35.69971,
            "lng": 51.33769
          },
          "end_location": {
            "lat": 35.69687,
            "lng": 51.34034
          }
        },
        {
          "distance": {
            "text": "۵ کیلومتر ۹۶۵ متر",
            "value": 5965
          },
          "duration": {
            "text": "۱۰ دقیقه ۵۴ ثانیه",
            "value": 654
          },
          "start_location": {
            "lat": 35.69687,
            "lng": 51.34034
          },
          "end_location": {
            "lat": 35.6963,
            "lng": 51.33108
          }
        }
      ],
      "distance": {
        "text": "۷ کیلومتر ۲۳۱ متر",
        "value": 7231
      },
      "duration": {
        "text": "۱۴ دقیقه ۱۳ ثانیه",
        "value": 853
      },
      "start_location": {
        "lat": 35.69971,
        "lng": 51.33769
      },
      "end_location": {
        "lat": 35.6963,
        "lng": 51.33108
      },
      "status": "OK"
    }
    

    درخواست محاسبه زمان سفر بدون در نظر گرفتن ترافیک

    با ارسال مختصات جغرافیایی نقاط مبدا و مقصد، مسافت و زمان سفر بین نقاط بدون در نظر گرفتن ترافیک در پاسخ ارسال می‌گردد.

    https://api.parsimap.ir/direction/eta?key=PMI_API_TOKEN&waypoints=51.33769,35.69971|51.34034,35.69687|51.37377, 35.71307
    &travel_mode=driving&request_id=0123456789&traffic=false
    

    نمونه پاسخ

    {
      "legs": [
        {
          "distance": {
            "text": "۱ کیلومتر ۲۶۶ متر",
            "value": 1266
          },
          "duration": {
            "text": "۲ دقیقه ۳۶ ثانیه",
            "value": 156
          },
          "start_location": {
            "lat": 35.69971,
            "lng": 51.33769
          },
          "end_location": {
            "lat": 35.69687,
            "lng": 51.34034
          }
        },
        {
          "distance": {
            "text": "۴ کیلومتر ۷۱۸ متر",
            "value": 4718
          },
          "duration": {
            "text": "۷ دقیقه ۱۹ ثانیه",
            "value": 439
          },
          "start_location": {
            "lat": 35.69687,
            "lng": 51.34034
          },
          "end_location": {
            "lat": 35.71307,
            "lng": 51.37377
          }
        }
      ],
      "travel_mode": "driving",
      "distance": {
        "text": "۵ کیلومتر ۹۸۴ متر",
        "value": 5984
      },
      "duration": {
        "text": "۹ دقیقه ۵۵ ثانیه",
        "value": 595
      },
      "start_location": {
        "lat": 35.69971,
        "lng": 51.33769
      },
      "end_location": {
        "lat": 35.71307,
        "lng": 51.37377
      },
      "status": "OK"
    } 
    

    درخواست تعیین زمان و مسافت سفر با وسیله نقلیه موتورسیکلت

    با ارسال مختصات جغرافیایی نقطه مبدا و مقصد و تعیین وسیله نقلیه موتورسیکلت، زمان و مسافت سفر بین این دو نقطه در پاسخ ارسال برگردانده می‌شوند.

    https://api.parsimap.ir/direction/eta?key=PMI_API_TOKEN&waypoints=51.33769,35.69971|51.34034,35.69687&travel_mode=motorcycling
    

    نمونه پاسخ

    {
      "legs": [
        {
          "distance": {
            "text": "۱ کیلومتر ۲۶۶ متر",
            "value": 1266
          },
          "duration": {
            "text": "۳ دقیقه ۱۳ ثانیه",
            "value": 193
          },
          "start_location": {
            "lat": 35.69971,
            "lng": 51.33769
          },
          "end_location": {
            "lat": 35.69687,
            "lng": 51.34034
          }
        }
      ],
      "distance": {
        "text": "۱ کیلومتر ۲۶۶ متر",
        "value": 1266
      },
      "duration": {
        "text": "۳ دقیقه ۱۳ ثانیه",
        "value": 193
      },
      "start_location": {
        "lat": 35.69971,
        "lng": 51.33769
      },
      "end_location": {
        "lat": 35.69687,
        "lng": 51.34034
      },
      "status": "OK"
    }
    

    درخواست تعیین زمان و مسافت چند سفر با وسیله نقلیه موتورسیکلت

    با ارسال مختصات جغرافیایی نقاط مبدا و مقصد و تعیین وسیله نقلیه موتورسیکلت، زمان و مسافت سفر بین این نقاط در پاسخ برگردانده می‌شوند.

    https://api.parsimap.ir/direction/eta?key=PMI_API_TOKEN&waypoints=51.33769,35.69971|51.34034,35.69687|51.33108,35.69630&travel_mode=motorcycling
    

    نمونه پاسخ

    {
      "legs": [
        {
          "distance": {
            "text": "۱ کیلومتر ۲۶۶ متر",
            "value": 1266
          },
          "duration": {
            "text": "۳ دقیقه ۱۲ ثانیه",
            "value": 192
          },
          "start_location": {
            "lat": 35.69971,
            "lng": 51.33769
          },
          "end_location": {
            "lat": 35.69687,
            "lng": 51.34034
          }
        },
        {
          "distance": {
            "text": "۵ کیلومتر ۹۶۵ متر",
            "value": 5965
          },
          "duration": {
            "text": "۱۰ دقیقه ۳۱ ثانیه",
            "value": 631
          },
          "start_location": {
            "lat": 35.69687,
            "lng": 51.34034
          },
          "end_location": {
            "lat": 35.6963,
            "lng": 51.33108
          }
        }
      ],
      "distance": {
        "text": "۷ کیلومتر ۲۳۱ متر",
        "value": 7231
      },
      "duration": {
        "text": "۱۳ دقیقه ۴۳ ثانیه",
        "value": 823
      },
      "start_location": {
        "lat": 35.69971,
        "lng": 51.33769
      },
      "end_location": {
        "lat": 35.6963,
        "lng": 51.33108
      },
      "status": "OK"
    }
    

    تعیین زمان و مسافت سفر با متد POST

    پارامترهای سرویس به صورت POST ارسال می‌گردند. برای ارسال درخواست با استفاده از متد POST پارامتر headers باید به صورت زیر تعیین شود.

    "Content-Type": "application/x-www-form-urlencoded"
    

    نمونه درخواست Node.js

    درخواست تعیین زمان و مسافت سفر با وسیله نقلیه خودرو

    var request = require("request");
    var options = {
      "method": "POST",
      "url": "https://api.parsimap.ir/direction/eta?key=8b0f0df5e64140bd9bbd110f9725036e",
      "headers": {
        "Content-Type": "application/x-www-form-urlencoded"
      },
      form: {
        "waypoints": "51.33769,35.69971|51.34034,35.69687|51.33108,35.69630",
        "travel_mode": "driving"
      }
    };
    request(options, function (error, response) {
      if (error) throw new Error(error);
      console.log(response.body);
    });
    

    نمونه پاسخ

    {
      "legs": [
        {
          "distance": {
            "text": "۱ کیلومتر ۲۶۶ متر",
            "value": 1266
          },
          "duration": {
            "text": "۳ دقیقه ۲۲ ثانیه",
            "value": 202
          },
          "start_location": {
            "lat": 35.69971,
            "lng": 51.33769
          },
          "end_location": {
            "lat": 35.69687,
            "lng": 51.34034
          }
        },
        {
          "distance": {
            "text": "۵ کیلومتر ۹۶۵ متر",
            "value": 5965
          },
          "duration": {
            "text": "۱۰ دقیقه ۵۳ ثانیه",
            "value": 653
          },
          "start_location": {
            "lat": 35.69687,
            "lng": 51.34034
          },
          "end_location": {
            "lat": 35.6963,
            "lng": 51.33108
          }
        }
      ],
      "distance": {
        "text": "۷ کیلومتر ۲۳۱ متر",
        "value": 7231
      },
      "duration": {
        "text": "۱۴ دقیقه ۱۵ ثانیه",
        "value": 855
      },
      "start_location": {
        "lat": 35.69971,
        "lng": 51.33769
      },
      "end_location": {
        "lat": 35.6963,
        "lng": 51.33108
      },
      "status": "OK"
    }