TRIP – TỐI ƯU TUYẾN ĐƯỜNG

TỔNG QUAN

Cung cấp thông tin về thời gian và khoảng cách dự kiến cho các lộ trình khác nhau, dựa trên phương tiện di chuyển và các ràng buộc địa phương để chọn lộ trình tối ưu nhất.

Đây được coi là phiên bản tiếp theo, được tối ưu hóa hiệu suất của Direction và Distance Matrix. Công cụ này giúp bạn tìm được tuyến đường lý tưởng từ A đến Z, tính toán giờ đến dự kiến và khoảng cách cho ma trận điểm xuất phát và vị trí đích.

Tại sao nên sử dụng TRIP

Với TRIP,  bạn có thể nhận thông tin chính xác về tuyến đường và chuyến đi bằng cách sử dụng thông tin chi tiết về phương tiện giao thông, thông tin mới nhất về tình trạng giao thông, đường đi, cũng như các lựa chọn ưu tiên về tuyến đường như:

  • Loại hình và các phương thức vận tải khác nhau
  • Hướng di chuyển của xe
  • Tình trạng đường bị đóng
  • Vấn đề về an toàn, chẳng hạn như tránh khu vực nguy hiểm hoặc cung cấp khu vực đón khách an toàn
  • Cân bằng giữa thời gian di chuyển, chất lượng chuyến đi, và chi phí, bằng cách sử dụng các tùy chọn như thời gian, quãng đường và hiệu suất nhiên liệu

Bạn cũng có thể xác định các tuyến hiệu quả nhất để lên lịch điều phối, chẳng hạn như:

  • Xác định kho hàng tốt nhất để vận chuyển các gói hàng đến điểm đến cuối cùng

Ứng dụng thực tế của TRIP

Với TRIP, bạn có thể nhận thông tin chuyến đi, tuyến đường từ một vị trí đến một hoặc nhiều điểm đến.

CÁCH TẠO MỘT YÊU CẦU TRIP

Đầu tiên, bạn phải đăng ký tài khoản và tạo API key của Goong theo hướng dẫn chi tiết tại đây.

URL: /trip

Phương thức: Get

Ví dụ về request:

curl "https://rsapi.goong.io/trip?origin=21.03931,105.83997&waypoints=21.03303694945164,%20105.79131815992706;21.017654632470325,%20105.80350611785252;21.00755912449365,%20105.81105921853873;20.99834437409386,%20105.79148982130629;21.00507520431542,%20105.78814242441126;21.0191769116844,%20105.78822825510088;21.026948305457093,%20105.79466555682208;21.012767209964053,%20105.80256198026676;21.020619056604428,%20105.78925822337628;21.01028337649572,%20105.7894298847555&destination=21.01343,105.79855&api_key={YOUR_API_KEY}"
Tham số Mô tả Ví dụ
origin (Optional) Vị trí, tọa độ bắt đầu. 21.03931,105.83997
waypoints (Optional) Vị trí, tọa độ điểm  trung gian (ở giữa). Được phân tách bằng dấu chấm phẩy ; nếu có nhiều hơn 2 điểm. 16.13901,107.33317;16.13867,107.33330
destination (Optional) Vị trí, tọa độ điểm đến. 21.01343,105.79855
vehicle Loại phương tiện. Các lựa chọn là ô tô, xe máy, taxi, xe tải, hd (cho các phương tiện gọi xe). Tuỳ chọn, mặc định là ô tô. car
  • Nếu điểm xuất phát hoặc điểm đến không được chỉ định, một tọa độ tốt nhất từ các điểm dừng sẽ được chọn làm điểm xuất phát hoặc điểm đến.
  • Điểm xuất phát, các điểm dừng và điểm đến đều là tùy chọn, nhưng tổng số tọa độ phải ít nhất là 10 để có chuyến đi tối ưu.
  • Chuyến đi là chuyến khứ hồi (hành trình quay lại điểm xuất phát), điểm xuất phát và điểm đến phải khác nhau.

Ví dụ về response:

application/json

{
  "code": "Ok",
  "trips": [
    {
      "distance": 29360.3,
      "duration": 9207.8,
      "geometry": "wfl_Coz~dS{CUEb@jF^~ALzLz@tBPzM`AbAFbJp@w@jH]hDnCVFFHDh@FRDFBbBbArCdB`Aj@h@|A|@hAt@JDnAb@p@Tb@NnAb@rAd@`@NfA^NDb@PlDjAnDpALDLDdAd@VJVHHDNDLF|@VHVJdA^PFNFNdBl@dA^j@Rj@Rd@PnC`Ar@^NH`@D`@AZEVMPY^m@hAyAbDUd@Sb@IR_@x@ADYj@GPcB|DOd@`@RD@lAf@pAj@dAb@`A`@xAl@jAd@fAd@hF~BT^f@B^@dA?~EBn@HZRZ^`@z@v@bBzA|CnCdA~@d@`@ZVjBfBp@j@fA|@z@t@fAz@bEvCdAt@bAt@f@^PL`@@p@t@z@b@h@`@h@JXH^c@t@MVYl@EFq@tAZNpAiCJJ`@d@`@HHJHXVTRFD^NLTTTPNNNLHF??NJ|@p@JDDBARCDc@`@g@l@_@d@IJHK^e@f@m@b@a@BE@SECKE}@q@OK??IGOMOOUQUUOM_@]GEUSYWKImErIqBxDKGq@g@MISOYSW`@y@pAmAnBaBlCuCvEgExGQX_@d@g@l@w@z@}A`BML{@~@a@b@u@|@UVuBbB[T_@VOJkAv@aAh@Ya@X`@k@ZiAf@cA`@kCdAk@TkChAMFUJWJcBx@sAp@q@^k@^s@l@mAnA}@fAa@f@OP{AhBsA~AKJYRULYJe@Hc@BOA[Ce@Gq@Mk@O{@[kAg@UMOZUl@M^M`@EN}@|BCHYdAWd@MTCHKRGJMVIPUd@GJS^CFKRl@Zh@Vd@Vn@No@Oe@Wi@Wm@[JSBGR_@FKTe@HQLWFKJSBILUVe@XeABI|@}BDOLa@L_@Tm@N[q@_@_Ak@cBoAq@}@m@m@cGoFQO_A_A]]_@[]nAIOT[f@CDINSXiAtA}@`Ai@h@OPg@j@WXu@v@w@z@gCfCaBfBs@t@Ub@Uj@EPKOj@e@xBu@hDwAnGGTI`@VHj@ZFD`Ah@zBvA`Al@|AfAs@lAjAr@CLUzAbANS~ArARzBpARtCh@jC`@fBX`C
AJjA?PEt@WZSxAuApEmFtAwAJG|CGRCZGpAnBjBnCl@|@PXn@bAZf@bA~ApAtB|C~EXU|DoCz@o@wBcEvBbEh@x@d@r@xAeAdAs@l@`Ab@r@n@fAxAeA|AiArA_Ad@_@rEkDvEcD~@s@nEgDbFyDtCtEnAhBnAjB|@zAJNz@vA@JDPJPl@|@VSvH{FpAcAHEFGbE}Cb@]`AIj@@d@Fb@Rd@Z|@rANT~CdFBFBFaAb@OJ^n@dA`BPFBH{BfByCzBeBoCaBiCKOqBaDk@}@}AaCbE}Cb@]ObBw@vC{BpAwAZ[h@e@BCNMTQ~AkAXULKx@o@bAu@BAl@e@zA|BtClEjAdB~@tAhBvCdA`BeAaBiBwC_AuAkAeBuCmE{A}BfDgC`CgBVQi@aAmJfHiAz@e@}ErD]XQ@c@Ai@IaAS{Aa@WK_@QYW[_@gAaBq@cAeA_BKIOEKQq@iAS[cA{AkAcBqAoBe@q@_AuAuAuBwAoBe@m@m@q@Y]g@i@w@}@g@k@Y]UUOQa@c@_EsEf@[g@ZW[oAuAY]gBuBaAiAaAgAIAQDIHARJJ|BfCfBrBZ^DDHvAVjEF~@@XBZADALEZo@~Be@xEd@yEn@_CD[@M@EC[AYG_AWkEl@W~AfBn@t@bCnCb@f@PP`@a@Y]UUOQa@c@_EsEW[oAuAY]q@YeH_I{AcBgCyC{A{A[Yo@c@}@q@_@Q}@c@wBcA_CkAq@[y@_@{@c@_@S{As@yAu@}BiAw@a@kB}@WMWM}EaC{Aw@yAw@EC{Ao@_Ac@YIoDq@WGmCg@oASSE{@SSEeBUy@MyAUc@IICaAQ_@IaAUiBa@fAmGN_ALiADU^sAVw@Aa@WqD[kEg@yGYsDQiCMwAMuAEk@Gs@IeAM_BIy@KuAKiAEa@Em@M_BGq@q@eGe@yDKw@Iq@Ea@AMAG?c@@K@SHq@NmAFc@DWNaA`@uBD[TmAJc@DUDW@CDQ?CH_@F[@GLm@Je@Lo@??FUDSF]Nq@XyAVoAp@qDVqALo@?ABQt@wDd@aCHe@TcALq@KKSGcBQuC[mIs@{AKyMaAuBO{L}@aBMmAI",

      "legs": [
        {
          "distance": 5933.8,
          "duration": 1224.4,
          "steps": [],
          "summary": "",
          "weight": 1224.4
        },
        {
          "distance": 1885.3,
          "duration": 408.7,
          "steps": [],
          "summary": "",
          "weight": 408.7
        },
        {
          "distance": 1658.9,
          "duration": 431.6,
          "steps": [],
          "summary": "",
          "weight": 431.6
        },
        {
          "distance": 2469,
          "duration": 661.5,
          "steps": [],
          "summary": "",
          "weight": 661.5
        },
        {
          "distance": 2075.6,
          "duration": 504,
          "steps": [],
          "summary": "",
          "weight": 504
        },
        {
          "distance": 256.1,
          "duration": 107.1,
          "steps": [],
          "summary": "",
          "weight": 107.1
        },
        {
          "distance": 1376.9,
          "duration": 305.6,
          "steps": [],
          "summary": "",
          "weight": 305.6
        },
        {
          "distance": 1403.7,
          "duration": 1771.6,
          "steps": [],
          "summary": "",
          "weight": 1771.6
        },
        {
          "distance": 1550.2,
          "duration": 1750.1,
          "steps": [],
          "summary": "",
          "weight": 1750.1
        },
        {
         "distance": 2670.3,
          "duration": 509,
          "steps": [],
          "summary": "",
          "weight": 509
        },
        {
          "distance": 999.7,
          "duration": 238.9,
          "steps": [],
          "summary": "",
          "weight": 238.9
        },
        {
          "distance": 7080.8,
          "duration": 1295.3,
          "steps": [],
          "summary": "",
          "weight": 1295.3
        }
      ],
      "weight": 9207.8,
      "weight_name": "routability"
    }
  ],
  "waypoints": [
    {
      "distance": 5.136911,
      "location": [
        21.039316,
        105.839921
      ],
      "place_id": "Qeza2NKABQXYxSPKnN1jWej8f9qZunsn4_BW8Jy7USDaw1DBg4N_J9rCN_yBuEEj9NIJwKyAImJR_fec5KlVIVj9VIObhmtM7-433Kzf9ELsVTvnmarbWuzDO_SAgUFk6sMV24OpVVzv_jPwmYFJXe3CO-a7r0FZjsM77N-AVV3A7VTfr5dFYu-aFeCYhiNi9_4365irSUTvwzvSrYFFYdrgL-CcuX9D75kz-Jq7SVPb7C_mmN5RXuPtNMsM",
      "trips_index": 0,
      "waypoint_index": 0
    },
    {
      "distance": 2.754927,
      "location": [
        21.033061,
        105.791325
      ],
      "place_id": "pl1MiIkisHbi5wfAlY5fLeaRGNSeiWpM6uTl6_2wKlieDPb059dYTOf1aPiSsS4v5MwQwonUUC7V5bLjpTpYKv3P1-mis0xL5uc-1aXWXEvS5TLukKNIU-XKMv2JiEht48oc0oqHXFXm9zqgkPlAVOTLMu-m1khQ5coyyYmJXFTR5F3Wpp5Ma-aTHOmRjypr_vc-4pGiQE3myjLbpHaIVaNPpJumVTHZK5pA68ZOyQFrS5SbvkddYV-rkPcI",
      "trips_index": 0,
      "waypoint_index": 4
    },
    {
      "distance": 22.416487,
      "location": [
        21.017809,
        105.803366
      ],
      "place_id": "bZTXSeOUyuD7lFWPk7RobvjPJ8ynjCpR7Mkr-o-3XXLi4x3NlaV7d_rgK8iPi4Ir4soQrdJGK01fXcwnRjLnyStFdBfCgm3dO4-I70KDTWU4v4DfrlaZN11bPN12MjU1okM_4GealWVCP8j_8lY1FUeHON-qj001V4M83zIyMWVHU4VjTt6NJbuOWGeybii9u-_I755SnRfhIzzfeoY1J49bsI-yQtXNP45U_9OC3RV_XliPq4NJdUu_hOMc",
      "trips_index": 0,
      "waypoint_index": 2
    },
    {
      "distance": 31.015553,
      "location": [
        21.007758,
        105.811269
      ],
      "place_id": "MtGIptXLVbDkkgTSpZ5MXuf3APSjWC9v_-nW05Iqalf-5F3okLEjRP3kIcKmnkBVy1cxYiZHUT2WV5CL3_YlIbZHlLvKjilBk5uc-1aXWXEvS5f3ukKNIUzLK5f2JiEh248oc0oqgbVzmsjr5kPdAVOSIMu-m1khQ5eUyyYeJXFTK5F2J1p5Ma-aTHOmRjypr_vc-4pGiQE3myjLbpCpMiNPpJumVaHZK5pA68ZOyQFrS5SbvkddYV-rkPcI",
      "trips_index": 0,
      "waypoint_index": 1
    },
    {
      "distance": 134.579692,
      "location": [
        20.999314,
        105.79071
      ],
      "place_id": "v2vfjerMdvj61jvOl61RWf6aFtG7kj5q_5U3z5e-NlvP10TVv64yTOPXBcyJyVEy-TcN35TJTdHIMyf2-uMpFN-DSP_S_rlFW-_ojyLjLQVbP-C_zjb5VTvjXL-CUlVVw_ogBz9e9QUj7lyfkjZVdSfnWL_K7y1VNr9cv1JT4QfmU-UDLu4NJUfuOAfSM4Dd2kuoj_4zjXVD71y_GuZVRdc70O_SIrWtX-40n7I6vXUfP-DtFjMr4SvdF8iA",
      "trips_index": 0,
      "waypoint_index": 9
    },
    {
      "distance": 43.717286,
      "location": [
        21.005389,
        105.787887
      ],
      "place_id": "RS92N5P4xtfjjEDlg5dge_r7EeqMlDZE-usg3ri9XTfg-QX1lL4-Uc-Nmj-P2knQ1-Y3T3oOhYzPP1jP0jYhVd870Gf-Uu1V5-_ojyLjLQVbP-K_zjb5VTvgv1-CUlVVw_tcBz5e9QUj76ifkjZVdSfk3L_K7y1XW-E0v1JSUQUXM-UnLu4NRQPuOAfSMkjd24-oja4y__1D71y9duZVRdc70O_SIrWtX-40n7I6v4Edd-DvyjMrPSvf5IN8",
      "trips_index": 0,
      "waypoint_index": 8
    },
    {
      "distance": 15.681507,
      "location": [
        21.019095,
        105.788105
      ],
      "place_id": "m_6CF6iCgtDswTHagat5b-_iOeGeg1Mj4u4T4oHcfWHZ8iaEmLlyben-JeithGVV7O8T3a-qW3np0DHmuYJhWNniKf_dhUdi7ew13q7dV0DZ7jnlU6hDWO7BjJs5g0Nm6MH22YGrV17t_DHym4NLX-_AOeR93a1b7sE5wkOCV1_a71bdrZVHYO2YF-KahCFg9fw1IZqpS-ntwTlGr4NHY9j2LeKeu31B4u0x-pi5S1HZ7i3KkmtxTXOHvNsk",
      "trips_index": 0,
      "waypoint_index": 6
    },
    {
      "distance": 69.479722,
      "location": [
        21.027187,
        105.795284
      ],
      "place_id": "iM9t50LlUU795TvmlohwT7D1MI2S0Ep2heZTsZyMTlrPz230l9coWuCTLPWQsSBQ5s0g9ZPVXSz_kQX_iIhoWMCQCeinjVEt5OU816fUXnTQ5zDskqFJSufIMP-Likpv4cge0Iiil1fk9Tj7XoqSVubJMO2k1EpS58gwy4uLXlbT5l_UpJxOaeSRHuuTjShp_PU84JOgQk_kyDDZpopOatHrJOuXsnRI5JI485GwQljQ5yTtk9VaVejmP8AT",
      "trips_index": 0,
      "waypoint_index": 3
    },
    {
      "distance": 19.450353,
      "location": [
        21.01267,
        105.802406
      ],
      "place_id": "6QHohMH0r3joXOnbUb6veurGN_VBrJhV6ntiiumsqyfuXSzPZ9qrUfLrN-Bd2J5o3MAGzXjaqCXw6g6GdISoI_D0I8Bzsagj6-oz2FHbnUbf6D_IjRa6EXujHP_BFhYdg7scRv1HfnVjr-jetTYWrWenGP-JF24Rd6Mc_xFGEq1nc6VDbQZOcZuueEeQngpxm8_oz702vqUDrxz_WQYWYZd7kK-R7vZ5H6503_E2_nFff6CviVdqYWufpMM8",
      "trips_index": 0,
      "waypoint_index": 10
    },
    {
      "distance": 8.278421,
      "location": [
        21.020549,
       105.789286
      ],
      "place_id": "x6_uha6MX__Y8rkhmiFKXWun2hemeulQn7t8p3a7dQyL2wQyEnbdQJNjyE8mYuVdN6f4tIe6FdtDemAcmwIF1RNrBB-idgmli7ew13q7dV0BT7tnlm6hDWDnBOfaCg0Nm6MEX2YGrV33t_DHym4NeS-_AOeSt3UNb7sE5woKCV1_a71bdrZVHYO2YF-KahCFg9fw16ZqpS0btwTnQr4NHY9jiLeKeu31B7Zsx-pi5S1HZ7i3kmtxTXOHvNsk",
      "trips_index": 0,
      "waypoint_index": 5
    },
    {
      "distance": 38.043008,
      "location": [
        21.010007,
        105.789648
      ],
      "place_id": "8fGEhdnxiVzB8Rj3nLZiefWBBPbYqGpGx7Al2Ya1N0D27Qzik55-efPhKYqdm3pp_oUtn4adO3792z3XYqeKfPffLptcpEhH8ukqwbHCSF_zxib6hLc-XPHeJumdnEd5994Ixp60SEHy4y7thJxUQPDfJvuywlxE8d4m3Z2dSEDF8EnCsopYf_KHCP2Fmz5_6BuMq9oW2VFny3ibPsJxYfMdM_f2BpGJe8qYu5YcyVE7GpjL7hcNMQ_7wKdY",
      "trips_index": 0,
      "waypoint_index": 7
    },
    {
      "distance": 36.917935,
      "location": [
        21.013758,
        105.798614
      ],
      "place_id": "RrhWKDhh7vf0m1fylIB3bO3sBv2bgyFT7Xw3ya-q_CD3ShLig6hzbvfsEv6elHhG7-ONKKndSmP3_djRl6lSYd_9KcGDpgZe7O0036_cVkHY7zggmqlC5O_AOFmDgkJn6cAW2ICqVl_s_TDzmoJKXu7Bn-U43EJLa78Csw4ODVl7b7lfcrJRG7-xhFuObhSCZ9P006Juo90dKwDjRroLsYtnjLOOfunxA7Jow-5m4SlDY7yzlm91SXeDuN8g",
      "trips_index": 0,
      "waypoint_index": 11
    }
 ]
}

Tham số

Mô tả Ví dụ
code Mã trả về thành công hoặc lỗi. ok
Nếu trả về mã code “ok” nghĩa là thành công.
Ngược lại, nếu lỗi thì trả về mã lỗi tương ứng.
trips Các chuyến và hành trình đã tạo. Bao gồm điểm đến, tuyến đường đi, thời gian (duration, đơn vị giây), khoảng cách (distance, đơn vị mết), thứ tự di chuyển trong hành trình (Step), khoảng cách giữa các điểm trong hành trình (weight)…
 [
   {
      “distance”: 135260.5,
      “duration”: 12487,
      “geometry”:”wfl_Coz~dS{CUEb@jF^~…
      “legs”: [
         {
            “distance”: 66910.5,
            “duration”: 6079,
            “steps”: [],
            “summary”: “”,
            “weight”: 6079
         },
      ],
      “weight”: 12487,
      “weight_name”: “routability”
   },
   …
]
waypoints Mảng chứa các địa điểm đi qua trong chuyến đi (gồm: tọa độ – kinh độ, vĩ độ, place_id, trip_index, waypoint_index).
[
   {
      “distance”: 5.136911,
      “location”: [
         21.039316,
         105.839921
      ],
      “place_id”: “sNibrIoAq_lN6vKssJ32VkU6_eaJ…”,
      “trips_index”: 0,
      “waypoint_index”: 0
   },
]
trip_index Thứ tự của đoạn đường trong cả chuyến đi.
“trips_index”: 0
waypoint_index Thứ tự của điểm trong chuyến đi.
“waypoint_index”: 2
place_id Id của địa điểm. 6QHohMH0r3joXOnbUb6veurGN_VBrJhV6n
tiiumsqyfuXSzPZ9qrUfLrN-Bd2J5o3MAGzXjaqCXw6g6GdISoI_D0I8B
zsagj6oz2FHbnUbf6D_IjRa6EXujHP_
BFhYdg7scRv1HfnVjr-jetTYWrWenGP-JF24Rd6Mc_xFGEq1nc6VDbQZOcZuue
EeQngpxm8_oz702vqUDrxz_WQYWYZd7kK-R7vZ5H6503_E2_nFff6CviVdqYWufpMM8″