Lấy thông tin đường đi thông qua Directions API (Cũ)

Nhà phát triển ở Khu vực kinh tế Châu Âu (EEA)

Sản phẩm này đang ở Trạng thái cũ. Kể từ tháng 10 năm 2026, bạn sẽ không thể bật Directions API (Phiên bản cũ) cho các dự án trên đám mây mới trên Google nữa. Các dự án hiện có vẫn được hỗ trợ đầy đủ. Để sử dụng các tính năng mới và cải thiện hiệu suất, hãy di chuyển sang Routes API.

Để tính toán đường đi theo thời gian thực dựa trên thông tin đầu vào của người dùng (ví dụ: trong một thành phần giao diện người dùng), bạn có thể sử dụng Directions API (Phiên bản cũ) hoặc nếu đang sử dụng Maps JavaScript API, hãy dùng Dịch vụ chỉ đường. Để sử dụng phía máy chủ, bạn có thể dùng Ứng dụng Java, Ứng dụng Python, Ứng dụng Go và Ứng dụng Node.js cho Dịch vụ Google Maps.

Với Directions API (Phiên bản cũ), bạn có thể:

  • Tìm đường đi cho một số phương tiện giao thông, bao gồm cả phương tiện công cộng, lái xe, đi bộ hoặc đạp xe.
  • Trả về thông tin đường đi gồm nhiều phần bằng cách sử dụng một loạt điểm tham chiếu.
  • Chỉ định điểm xuất phát, điểm đến và điểm tham chiếu dưới dạng chuỗi văn bản (tức là "Chicago, IL" hoặc "Darwin, NT, Australia"), dưới dạng Mã địa điểm hoặc dưới dạng toạ độ vĩ độ/kinh độ.

API này trả về các tuyến đường hiệu quả nhất khi tính toán đường đi. Thời gian di chuyển là yếu tố chính được tối ưu hoá, nhưng API cũng có thể xem xét các yếu tố khác như khoảng cách, số lượt rẽ và nhiều yếu tố khác khi quyết định tuyến đường nào hiệu quả nhất.

Trước khi bắt đầu

Trước khi bắt đầu sử dụng Directions API (Phiên bản cũ), bạn cần có một dự án có tài khoản thanh toán và đã bật Directions API (Phiên bản cũ). Để tìm hiểu thêm, hãy xem bài viết Thiết lập trong Cloud Console.

Tạo yêu cầu Directions API (Cũ)

Yêu cầu của Directions API (Phiên bản cũ) có dạng như sau:

https://maps.googleapis.com/maps/api/directions/outputFormat?parameters

trong đó outputFormat có thể là một trong các giá trị sau:

  • json (nên dùng) cho biết kết quả đầu ra ở định dạng Ký hiệu đối tượng JavaScript (JSON)
  • xml cho biết kết quả đầu ra ở định dạng XML

Lưu ý: URL phải được mã hoá đúng cách để hợp lệ và bị giới hạn ở 16.384 ký tự cho tất cả các dịch vụ web. Hãy lưu ý giới hạn này khi tạo URL.

Theo tiêu chuẩn trong URL, tất cả tham số đều được phân tách bằng ký tự dấu và (&). Tất cả các ký tự dành riêng (ví dụ: dấu cộng "+") phải được mã hoá URL. Danh sách các tham số và giá trị có thể có của các tham số đó được liệt kê bên dưới.

Tham số bắt buộc

  • tài khoản đích

    Mã địa điểm, địa chỉ hoặc giá trị vĩ độ/kinh độ dạng văn bản mà bạn muốn tính toán đường đi. Các lựa chọn cho tham số đích đến giống với tham số gốc.

  • nguồn gốc

    Mã địa điểm, địa chỉ hoặc giá trị vĩ độ/kinh độ dạng văn bản mà bạn muốn tính toán đường đi.

    • Mã địa điểm phải có tiền tố là place_id:. Bạn có thể truy xuất mã địa điểm từ Geocoding API và Places API (bao gồm cả Place Autocomplete). Để xem ví dụ về cách sử dụng mã địa điểm từ tính năng Place Autocomplete, hãy xem phần Place Autocomplete và đường đi. Để biết thêm thông tin về mã địa điểm, hãy xem phần Tổng quan về mã địa điểm.

      origin=place_id:ChIJ3S-JXmauEmsRUcIaWtf4MzE
      
    • Nếu bạn truyền một địa chỉ, dịch vụ Chỉ đường sẽ mã hoá địa lý chuỗi và chuyển đổi chuỗi đó thành toạ độ vĩ độ/kinh độ để tính toán đường đi. Toạ độ này có thể khác với toạ độ do Geocoding API trả về, ví dụ: lối vào toà nhà thay vì tâm của toà nhà.

      origin=24+Sussex+Drive+Ottawa+ON
      

      Bạn nên sử dụng mã địa điểm thay vì địa chỉ hoặc toạ độ vĩ độ/kinh độ. Việc sử dụng toạ độ sẽ luôn dẫn đến việc điểm được ghim vào đường gần nhất với toạ độ đó – có thể không phải là điểm truy cập vào cơ sở lưu trú hoặc thậm chí là đường sẽ dẫn đến điểm đến một cách nhanh chóng hoặc an toàn.

    • Nếu bạn truyền toạ độ, điểm sẽ bám vào đường gần nhất. Bạn nên truyền Mã địa điểm. Nếu bạn truyền toạ độ, hãy đảm bảo rằng không có khoảng trắng giữa các giá trị vĩ độ và kinh độ.

      origin=41.43206,-81.38992
      
    • Plus Codes phải được định dạng dưới dạng mã chung hoặc mã kết hợp. Định dạng Plus Codes như minh hoạ tại đây (dấu cộng được thoát URL thành %2B và dấu cách được thoát URL thành %20).

      • Mã toàn cầu là mã vùng gồm 4 ký tự và mã địa phương gồm 6 ký tự trở lên (849VCWC8+R9 là 849VCWC8%2BR9).
      • Mã kết hợp là mã địa phương có từ 6 ký tự trở lên với một vị trí rõ ràng (CWC8+R9 Mountain View, CA, USA là CWC8%2BR9%20Mountain%20View%20CA%20USA).
    Lưu ý: Để đảm bảo hiệu quả và Mã địa điểm, hãy sử dụng mã địa điểm khi có thể. Các mã nhận dạng này rõ ràng và riêng biệt như một cặp giá trị vĩ độ/kinh độ, đồng thời mang lại lợi ích mã hoá địa lý cho việc định tuyến, chẳng hạn như điểm truy cập và biến lưu lượng truy cập. Không giống như địa chỉ, mã nhận dạng không yêu cầu dịch vụ thực hiện tìm kiếm hoặc yêu cầu trung gian để biết thông tin chi tiết về địa điểm; do đó, hiệu suất sẽ tốt hơn.

Thông số tùy chọn

  • lựa chọn thay thế

    Nếu được đặt thành true, thì thuộc tính này chỉ định rằng dịch vụ Chỉ đường có thể cung cấp nhiều tuyến đường thay thế trong phản hồi. Xin lưu ý rằng việc cung cấp các tuyến đường thay thế có thể làm tăng thời gian phản hồi của máy chủ. Tính năng này chỉ dành cho các yêu cầu không có điểm tham chiếu trung gian. Để biết thêm thông tin, hãy xem hướng dẫn về điểm tham chiếu.

  • arrival_time

    Chỉ định thời gian đến ưu tiên cho đường đi bằng phương tiện công cộng, tính bằng giây kể từ nửa đêm ngày 1 tháng 1 năm 1970 theo giờ UTC. Bạn có thể chỉ định departure_time hoặc arrival_time, nhưng không được chỉ định cả hai. Xin lưu ý rằng bạn phải chỉ định arrival_time dưới dạng số nguyên.

  • tránh

    Cho biết rằng(các) tuyến đường được tính toán nên tránh các tính năng được chỉ định. Tham số này hỗ trợ các đối số sau:

    • tolls cho biết tuyến đường được tính toán nên tránh các đường/cầu có thu phí.
    • highways cho biết tuyến đường được tính toán nên tránh đường cao tốc.
    • ferries cho biết rằng tuyến đường được tính toán nên tránh phà.
    • indoor cho biết rằng tuyến đường được tính toán nên tránh các bậc thang trong nhà đối với đường đi bộ và đường đi bằng phương tiện công cộng.

    Bạn có thể yêu cầu một tuyến đường tránh mọi tổ hợp phí cầu đường, đường cao tốc và phà bằng cách truyền nhiều quy định hạn chế vào tham số avoid. Ví dụ:

    avoid=tolls|highways|ferries.
    
  • departure_time

    Chỉ định thời gian khởi hành ưu tiên. Bạn có thể chỉ định thời gian dưới dạng số nguyên tính bằng giây kể từ nửa đêm ngày 1 tháng 1 năm 1970 theo giờ UTC. Nếu bạn chỉ định departure_time muộn hơn 9999-12-31T23:59:59.999999999Z, thì API sẽ đặt departure_time về 9999-12-31T23:59:59.999999999Z. Ngoài ra, bạn có thể chỉ định giá trị là now, giá trị này sẽ đặt thời gian khởi hành thành thời gian hiện tại (chính xác đến giây gần nhất). Bạn có thể chỉ định thời gian khởi hành trong hai trường hợp:

    • Đối với các yêu cầu có phương tiện di chuyển là phương tiện công cộng: Bạn có thể tuỳ ý chỉ định một trong hai giá trị departure_time hoặc arrival_time. Nếu bạn không chỉ định thời gian, thì departure_time sẽ mặc định là thời gian hiện tại (tức là thời gian khởi hành mặc định là thời gian hiện tại).
    • Đối với các yêu cầu có phương tiện di chuyển là lái xe: Bạn có thể chỉ định departure_time để nhận tuyến đường và thời gian di chuyển (trường phản hồi: duration_in_traffic) có tính đến tình trạng giao thông. departure_time phải được đặt thành thời gian hiện tại hoặc một thời điểm nào đó trong tương lai. Ngày này không được là ngày trong quá khứ.
    Lưu ý: Nếu bạn không chỉ định thời gian khởi hành, thì lựa chọn tuyến đường và thời gian sẽ dựa trên mạng lưới đường bộ và tình trạng giao thông trung bình không phụ thuộc vào thời gian. Kết quả cho một yêu cầu nhất định có thể thay đổi theo thời gian do những thay đổi trong mạng lưới đường, tình trạng giao thông trung bình được cập nhật và tính chất phân tán của dịch vụ. Kết quả cũng có thể khác nhau giữa các tuyến đường gần như tương đương vào bất kỳ lúc nào hoặc tần suất nào.
    Lưu ý: Các yêu cầu về Ma trận khoảng cách chỉ định departure_time khi mode=driving được giới hạn ở mức tối đa 100 phần tử cho mỗi yêu cầu. Số lượng điểm xuất phát nhân với số lượng điểm đến sẽ xác định số lượng phần tử.
  • language

    Ngôn ngữ để trả về kết quả. Xin lưu ý rằng điều này chỉ áp dụng cho các địa chỉ được mã hoá địa lý trong start_address và end_address, văn bản được bản địa hoá trong các trường distance và duration (trong các chặng và bước) và nội dung mô tả các thao tác trong html_instructions, nhưng không áp dụng cho tên và địa chỉ trong html_instructions, được định dạng bằng ngôn ngữ và chữ viết địa phương.

    • Xem danh sách ngôn ngữ được hỗ trợ. Google thường xuyên cập nhật các ngôn ngữ được hỗ trợ, vì vậy, danh sách này có thể chưa đầy đủ.
    • Nếu bạn không cung cấp language, API sẽ cố gắng sử dụng ngôn ngữ ưu tiên như được chỉ định trong tiêu đề Accept-Language.
    • API này cố gắng hết sức để cung cấp địa chỉ đường phố mà cả người dùng và người dân địa phương đều có thể đọc được. Để đạt được mục tiêu đó, API này sẽ trả về địa chỉ đường phố bằng ngôn ngữ địa phương, được chuyển tự sang một hệ thống chữ viết mà người dùng có thể đọc được (nếu cần), đồng thời tuân thủ ngôn ngữ ưu tiên. Tất cả các địa chỉ khác được trả về bằng ngôn ngữ ưu tiên. Tất cả thành phần địa chỉ đều được trả về bằng cùng một ngôn ngữ, được chọn từ thành phần đầu tiên.
    • Nếu không có tên bằng ngôn ngữ ưu tiên, API sẽ sử dụng tên phù hợp nhất.
    • Ngôn ngữ ưu tiên có ảnh hưởng nhỏ đến nhóm kết quả mà API chọn trả về và thứ tự trả về. Bộ mã hoá địa lý diễn giải các từ viết tắt theo cách khác nhau tuỳ thuộc vào ngôn ngữ, chẳng hạn như từ viết tắt cho các loại đường phố hoặc từ đồng nghĩa có thể hợp lệ trong một ngôn ngữ nhưng không hợp lệ trong ngôn ngữ khác. Ví dụ: utca và tér là các từ đồng nghĩa với "đường" trong tiếng Hungary.
  • chế độ

    Để tính toán khoảng cách và đường đi, bạn có thể chỉ định phương tiện đi lại sẽ sử dụng. Theo mặc định, chế độ driving sẽ được sử dụng. Theo mặc định, đường đi được tính toán là đường lái xe. Các phương tiện di chuyển sau đây được hỗ trợ:

    • driving (mặc định) cho biết đường lái xe hoặc khoảng cách tiêu chuẩn bằng cách sử dụng mạng lưới đường bộ.
    • walking yêu cầu chỉ đường đi bộ hoặc khoảng cách qua đường dành cho người đi bộ và vỉa hè (nếu có).
    • bicycling yêu cầu đường đi xe đạp hoặc khoảng cách qua đường dành cho xe đạp và đường ưu tiên (nếu có).
    • transit yêu cầu chỉ đường hoặc khoảng cách bằng các tuyến phương tiện công cộng (nếu có). Nếu đặt chế độ thành phương tiện công cộng, bạn có thể chỉ định departure_time hoặc arrival_time (không bắt buộc). Nếu bạn không chỉ định thời gian, thì departure_time sẽ mặc định là thời gian hiện tại (tức là thời gian khởi hành mặc định là thời gian hiện tại). Bạn cũng có thể thêm transit_mode và/hoặc transit_routing_preference (không bắt buộc). Bạn có thể xem các chuyến đi bằng phương tiện công cộng trong tối đa 7 ngày trước hoặc tối đa 100 ngày sau, tuỳ thuộc vào việc nhà cung cấp dữ liệu có cung cấp thông tin về phương tiện công cộng hay không. Lịch trình phương tiện công cộng thay đổi thường xuyên, các chuyến đi bằng phương tiện công cộng hiện có có thể thay đổi theo thời gian và không có gì đảm bảo sẽ cung cấp kết quả nhất quán cho các dự đoán trước một thời gian dài.
    Lưu ý: Đôi khi, cả đường đi bộ và đường đi xe đạp đều có thể không bao gồm đường đi bộ hoặc đường đi xe đạp rõ ràng, vì vậy, các đường đi này sẽ trả về cảnh báo trong kết quả trả về mà bạn phải hiển thị cho người dùng.
  • region

    Mã khu vực, được chỉ định dưới dạng giá trị gồm hai ký tự ccTLD ("miền cấp cao nhất"). Hầu hết các mã ccTLD đều giống với mã ISO 3166-1, ngoại trừ một số trường hợp ngoại lệ đáng chú ý. Ví dụ: ccTLD của Vương quốc Anh là "uk" (.co.uk) trong khi mã ISO 3166-1 của quốc gia này là "gb" (về mặt kỹ thuật là cho thực thể "Liên hiệp Vương quốc Anh và Bắc Ireland").

  • traffic_model

    Chỉ định các giả định cần sử dụng khi tính toán thời gian trong tình trạng giao thông. Chế độ cài đặt này ảnh hưởng đến giá trị được trả về trong trường duration_in_traffic trong phản hồi, trong đó có thời gian dự kiến trong tình trạng giao thông dựa trên mức trung bình trước đây. Bạn chỉ có thể chỉ định tham số traffic_model cho đường lái xe khi yêu cầu có chứa departure_time. Các giá trị có thể sử dụng cho tham số này là:

    • best_guess (mặc định) cho biết rằng duration_in_traffic được trả về phải là giá trị ước tính chính xác nhất về thời gian di chuyển dựa trên những thông tin đã biết về cả tình trạng giao thông trước đây và tình trạng giao thông trực tiếp. Lưu lượng truy cập trực tiếp càng quan trọng hơn khi departure_time càng gần với thời điểm hiện tại.
    • pessimistic cho biết rằng duration_in_traffic được trả về phải dài hơn thời gian di chuyển thực tế trong hầu hết các ngày, mặc dù đôi khi có những ngày có tình trạng giao thông đặc biệt xấu có thể vượt quá giá trị này.
    • optimistic cho biết rằng duration_in_traffic được trả về phải ngắn hơn thời gian di chuyển thực tế trong hầu hết các ngày, mặc dù đôi khi có những ngày có tình trạng giao thông đặc biệt thuận lợi có thể nhanh hơn giá trị này.

    Giá trị mặc định của best_guess sẽ đưa ra các dự đoán hữu ích nhất cho phần lớn các trường hợp sử dụng. Có thể thời gian di chuyển dự đoán của best_guess ngắn hơn optimistic hoặc dài hơn pessimistic, do cách mô hình dự đoán của best_guess tích hợp thông tin giao thông trực tiếp.

  • transit_mode

    Chỉ định một hoặc nhiều phương tiện công cộng ưu tiên. Bạn chỉ có thể chỉ định tham số này cho đường đi bằng phương tiện công cộng. Tham số này hỗ trợ các đối số sau:

    • bus cho biết tuyến đường được tính toán nên ưu tiên di chuyển bằng xe buýt.
    • subway cho biết rằng tuyến đường được tính toán nên ưu tiên di chuyển bằng tàu điện ngầm.
    • train cho biết tuyến đường được tính toán nên ưu tiên di chuyển bằng tàu hoả.
    • tram cho biết tuyến đường được tính toán nên ưu tiên di chuyển bằng tàu điện và xe điện.
    • rail cho biết tuyến đường được tính toán nên ưu tiên di chuyển bằng tàu hoả, xe điện, tàu điện và tàu điện ngầm. Điều này tương đương với transit_mode=train|tram|subway.
  • transit_routing_preference

    Chỉ định lựa chọn ưu tiên cho tuyến đường đi bằng phương tiện công cộng. Khi sử dụng tham số này, bạn có thể ưu tiên các lựa chọn được trả về, thay vì chấp nhận tuyến đường tốt nhất mặc định do API chọn. Bạn chỉ có thể chỉ định tham số này cho đường đi bằng phương tiện công cộng. Tham số này hỗ trợ các đối số sau:

    • less_walking cho biết tuyến đường được tính toán nên ưu tiên đi bộ ít.
    • fewer_transfers cho biết tuyến đường được tính toán nên ưu tiên số lần chuyển tuyến hạn chế.
  • đơn vị

    Chỉ định hệ thống đơn vị sẽ sử dụng khi hiển thị kết quả.

    Kết quả chỉ đường chứa văn bản trong các trường khoảng cách có thể hiển thị cho người dùng để cho biết khoảng cách của một "bước" cụ thể trong tuyến đường. Theo mặc định, văn bản này sử dụng hệ thống đơn vị của quốc gia hoặc khu vực xuất phát.

    Ví dụ: tuyến đường từ "Chicago, IL" đến "Toronto, ONT" sẽ hiển thị kết quả theo dặm, trong khi tuyến đường ngược lại sẽ hiển thị kết quả theo km. Bạn có thể ghi đè hệ thống đơn vị này bằng cách đặt rõ ràng một hệ thống đơn vị trong tham số units của yêu cầu, truyền một trong các giá trị sau:

    • metric chỉ định việc sử dụng hệ mét. Khoảng cách dạng văn bản được trả về bằng đơn vị km và mét.
    • imperial chỉ định việc sử dụng hệ đo lường Anh. Khoảng cách dạng văn bản được trả về bằng dặm và feet.
    Lưu ý: chế độ cài đặt hệ đơn vị này chỉ ảnh hưởng đến văn bản hiển thị trong trường khoảng cách. Các trường khoảng cách cũng chứa các giá trị luôn được biểu thị bằng mét.
  • điểm tham chiếu

    Thận trọng: Những yêu cầu sử dụng hơn 10 điểm tham chiếu (từ 11 đến 25) hoặc tối ưu hoá điểm tham chiếu sẽ được tính phí ở mức cao hơn. Tìm hiểu thêm về thông tin thanh toán cho các sản phẩm của Google Maps Platform.

    Chỉ định một mảng các vị trí trung gian cần đưa vào dọc theo tuyến đường giữa điểm xuất phát và điểm đến dưới dạng vị trí đi qua hoặc điểm dừng. Điểm tham chiếu thay đổi tuyến đường bằng cách hướng tuyến đường đi qua(các) vị trí được chỉ định. API này hỗ trợ các điểm tham chiếu cho những phương thức di chuyển sau: lái xe, đi bộ và đi xe đạp; không hỗ trợ phương tiện công cộng. Bạn có thể cung cấp một hoặc nhiều vị trí được phân tách bằng ký tự gạch đứng (| hoặc %7C), ở dạng Mã địa điểm, địa chỉ hoặc toạ độ vĩ độ/kinh độ. Theo mặc định, dịch vụ Chỉ đường sẽ tính toán tuyến đường bằng cách sử dụng các điểm tham chiếu theo thứ tự được cung cấp. Thứ tự ưu tiên để phân tích cú pháp giá trị của điểm tham chiếu là mã địa điểm, toạ độ vĩ độ/kinh độ, sau đó là địa chỉ.

    • Nếu truyền mã địa điểm, bạn phải thêm tiền tố place_id: vào mã đó. Bạn có thể truy xuất mã địa điểm từ Geocoding API và Places API (bao gồm cả Place Autocomplete). Để xem ví dụ về cách sử dụng mã địa điểm từ Place Autocomplete, hãy xem phần Place Autocomplete và Chỉ đường. Để biết thêm thông tin về mã địa điểm, hãy xem bài viết Tổng quan về mã địa điểm.
      Để đảm bảo hiệu quả và Mã địa điểm, hãy sử dụng mã địa điểm khi có thể. Các mã nhận dạng này rõ ràng và riêng biệt như một cặp giá trị vĩ độ/kinh độ, đồng thời mang lại lợi ích mã hoá địa lý cho việc định tuyến, chẳng hạn như điểm truy cập và biến lưu lượng truy cập. Không giống như địa chỉ, mã nhận dạng không yêu cầu dịch vụ thực hiện tìm kiếm hoặc yêu cầu trung gian để biết thông tin chi tiết về địa điểm; do đó, hiệu suất sẽ tốt hơn.
    • Nếu bạn truyền toạ độ vĩ độ/kinh độ, các giá trị sẽ được chuyển trực tiếp đến máy chủ giao diện người dùng để tính toán đường đi mà không cần mã hoá địa lý. Các điểm được bám vào đường và có thể không cung cấp độ chính xác mà ứng dụng của bạn cần. Sử dụng toạ độ khi bạn tin chắc rằng các giá trị thực sự chỉ định các điểm mà ứng dụng của bạn cần để định tuyến mà không cần quan tâm đến các điểm truy cập có thể có hoặc thông tin chi tiết bổ sung về mã hoá địa lý. Đảm bảo rằng bạn dùng dấu phẩy (%2C) chứ không phải dấu cách (%20) để phân tách các giá trị vĩ độ và kinh độ.
    • Nếu bạn truyền một địa chỉ, thì dịch vụ Chỉ đường sẽ mã hoá địa lý chuỗi đó và chuyển đổi thành toạ độ vĩ độ/kinh độ để tính toán đường đi. Nếu giá trị địa chỉ không rõ ràng, thì giá trị đó có thể kích hoạt một lượt tìm kiếm để phân biệt với các địa chỉ tương tự. Ví dụ: "Đường số 1" có thể là giá trị hoàn chỉnh hoặc giá trị một phần cho "Đường số 1 NE" hoặc "Đường số 1 SE". Kết quả này có thể khác với kết quả do Geocoding API trả về. Bạn có thể tránh được những hiểu lầm có thể xảy ra bằng cách sử dụng mã địa điểm.
    • Ngoài ra, bạn có thể cung cấp một tập hợp điểm được mã hoá bằng Thuật toán hình nhiều đường được mã hoá. Bạn sẽ thấy một tập hợp được mã hoá rất hữu ích cho một số lượng lớn điểm tham chiếu, vì URL ngắn hơn đáng kể. Tất cả dịch vụ web đều có giới hạn URL là 16.384 ký tự.
      • Hình nhiều đường được mã hoá phải có tiền tố enc: và theo sau là dấu hai chấm (:). Ví dụ: waypoints=enc:gfo}EtohhU:.
      • Bạn cũng có thể thêm nhiều hình nhiều đường được mã hoá, phân tách bằng ký tự dấu gạch đứng (|). Ví dụ: waypoints=via:enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:| via:enc:udymA{~bxM:
    Tác động đến tuyến đường bằng điểm dừng và điểm đi qua

    Đối với mỗi điểm tham chiếu trong yêu cầu, phản hồi về đường đi sẽ thêm một mục vào mảng legs để cung cấp thông tin chi tiết về các điểm dừng trên chặng đó của hành trình.

    Nếu bạn muốn tác động đến tuyến đường bằng cách sử dụng điểm tham chiếu mà không cần thêm điểm dừng, hãy thêm tiền tố via: vào điểm tham chiếu. Điểm tham chiếu có tiền tố via: sẽ không thêm mục nhập vào mảng legs, nhưng sẽ định tuyến hành trình qua điểm tham chiếu.

    URL sau đây sửa đổi yêu cầu trước đó để hành trình được định tuyến qua Lexington mà không dừng lại:

    https://maps.googleapis.com/maps/api/directions/json?
    origin=Boston,MA&destination=Concord,MA
    &waypoints=Charlestown,MA|via:Lexington,MA
    

    Tiền tố via: hiệu quả nhất khi tạo tuyến đường để phản hồi thao tác kéo điểm tham chiếu trên bản đồ của người dùng. Việc này cho phép người dùng xem tuyến đường cuối cùng theo thời gian thực và giúp đảm bảo rằng các điểm tham chiếu được đặt ở những vị trí mà Directions API có thể truy cập.

    Thận trọng: Việc sử dụng tiền tố via: để tránh điểm dừng sẽ dẫn đến các chỉ đường nghiêm ngặt trong việc diễn giải điểm tham chiếu. Cách diễn giải này có thể dẫn đến việc đi đường vòng nghiêm trọng trên tuyến đường hoặc ZERO_RESULTS trong mã trạng thái phản hồi nếu Directions API không thể tạo đường đi qua điểm đó.
    Tối ưu hoá điểm tham chiếu

    Theo mặc định, dịch vụ Chỉ đường sẽ tính toán một tuyến đường thông qua các điểm tham chiếu được cung cấp theo thứ tự đã cho. Nếu muốn, bạn có thể truyền optimize:true làm đối số đầu tiên trong tham số waypoints để cho phép dịch vụ Chỉ đường tối ưu hoá tuyến đường được cung cấp bằng cách sắp xếp lại các điểm tham chiếu theo thứ tự hiệu quả hơn. (Việc tối ưu hoá này là một ứng dụng của bài toán người bán hàng.) Thời gian di chuyển là yếu tố chính được tối ưu hoá, nhưng các yếu tố khác như khoảng cách, số lượt rẽ và nhiều yếu tố khác có thể được xem xét khi quyết định tuyến đường nào là hiệu quả nhất. Tất cả điểm tham chiếu phải là điểm dừng để dịch vụ Chỉ đường tối ưu hoá tuyến đường.

    Nếu bạn hướng dẫn dịch vụ Chỉ đường tối ưu hoá thứ tự của các điểm tham chiếu, thì thứ tự của các điểm tham chiếu đó sẽ được trả về trong trường waypoint_order trong đối tượng tuyến đường. Trường waypoint_order trả về các giá trị bắt đầu từ 0.

    Ví dụ sau đây tính toán một hành trình đường bộ từ Adelaide, Nam Úc đến từng vùng rượu vang chính của Nam Úc bằng cách sử dụng tính năng tối ưu hoá tuyến đường.

    https://maps.googleapis.com/maps/api/directions/json?
    origin=Adelaide,SA&destination=Adelaide,SA
    &waypoints=optimize:true|Barossa+Valley,SA|Clare,SA|Connawarra,SA|McLaren+Vale,SA
    

    Khi kiểm tra tuyến đường đã tính toán, bạn sẽ thấy rằng phép tính sử dụng các điểm tham chiếu theo thứ tự sau:

    "waypoint_order": [ 3, 2, 0, 1 ]
    
    Thận trọng: Các yêu cầu sử dụng tính năng tối ưu hoá điểm tham chiếu sẽ được tính phí theo mức giá cao hơn. Tìm hiểu thêm về cách tính phí cho các sản phẩm của Google Maps Platform.

Bước tiếp theo

Ví dụ về đường đi

Phản hồi về đường đi