Yêu cầu và phản hồi của Distance Matrix API (Cũ)

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

Giới thiệu

Yêu cầu Distance Matrix API (Cũ) có dạng như sau:

https://maps.googleapis.com/maps/api/distancematrix/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ả ở định dạng Ký hiệu đối tượng JavaScript (JSON).
  • xml cho biết kết quả đầu ra là XML.

Một số tham số là bắt buộc, trong khi một số tham số khác là không bắt buộc. 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ự đặt trước (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

  • đích đến

    Một hoặc nhiều vị trí để dùng làm điểm kết thúc cho việc tính toán quãng đường và thời gian di chuyển. Các lựa chọn cho tham số destinations giống với tham số origins.

  • nguồn gốc

    Điểm xuất phát để tính quãng đường và thời gian di chuyển. 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 (|), dưới dạng mã địa điểm, địa chỉ hoặc toạ độ vĩ độ/kinh độ:

    • Mã địa điểm: Nếu cung cấp mã địa điểm, bạn phải thêm tiền tố place_id: vào mã đó.
    • Địa chỉ: Nếu bạn truyền một địa chỉ, dịch vụ sẽ mã hoá địa lý chuỗi và chuyển đổi chuỗi đó thành toạ độ vĩ độ/kinh độ để tính khoảng cách. Toạ độ này có thể khác với toạ độ do Geocoding API trả về, ví dụ: lối vào của toà nhà thay vì tâm của toà nhà.
      Lưu ý: 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 bám theo đườ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. Việc sử dụng địa chỉ sẽ cung cấp khoảng cách đến trung tâm của toà nhà, thay vì lối vào toà nhà.
    • Toạ độ: Nếu bạn truyền toạ độ vĩ độ/kinh độ, thì toạ độ đó sẽ được điều chỉnh theo đường gần nhất. Bạn nên chuyển mã địa điểm. Nếu bạn truyền toạ độ, hãy đảm bảo không có khoảng trắng giữa các giá trị vĩ độ và kinh độ.
    • 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ạ dướ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 được mã hoá thành 849VCWC8%2BR9).
      • mã kết hợp là mã địa phương có 6 ký tự trở lên với một vị trí rõ ràng (CWC8+R9 Mountain View, CA, USA được mã hoá thành CWC8%2BR9%20Mountain%20View%20CA%20USA).
    • Đường đa tuyến được mã hoá Ngoài ra, bạn có thể cung cấp một tập hợp toạ độ được mã hoá bằng Thuật toán đường đa tuyến được mã hoá. Điều này đặc biệt hữu ích nếu bạn có một số lượng lớn điểm xuất phát, vì URL sẽ ngắn hơn đáng kể khi sử dụng hình nhiều đường được mã hoá.
      • Đường đa tuyến được mã hoá phải có tiền tố enc: và theo sau là dấu hai chấm :. Ví dụ: origins=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ụ:
        origins=enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:|enc:udymA{~bxM:
        

Thông số tùy chọn

  • 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

    Khoảng cách có thể được tính toán theo một số quy định hạn chế nhất định. Các quy định hạn chế được chỉ định bằng cách sử dụng tham số avoid và một đối số cho tham số đó cho biết quy định hạn chế cần tránh. Các quy định hạn chế sau đây được hỗ trợ:

    • tolls cho biết tuyến đường được tính toán nên tránh đường/cầu có thu phí.
    • highways cho biết rằng 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 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 bất kỳ tổ hợp nào của phí cầu đường, đường cao tốc và phà bằng cách truyền cả hai quy định hạn chế vào tham số avoid. Ví dụ: avoid=tolls|highways|ferries.

    Lưu ý: Việc thêm các quy định hạn chế không loại trừ các tuyến đường có tính năng bị hạn chế; mà chỉ ưu tiên kết quả cho các tuyến đường phù hợp hơn.
  • 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 với tần suất bất kỳ.
    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ả.

    • 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. Chúng tôi hỗ trợ các phương tiện đi lại sau:

    • 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 bằng cách sử dụng đườ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 bằng cách sử dụng đường dành cho xe đạp và đường phố ư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).
    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.
    Lưu ý: 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 có thể thay đổi theo thời gian và không có gì đảm bảo rằng kết quả dự đoán trước sẽ nhất quán.
  • 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ả.

    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.

Ví dụ về yêu cầu

Ví dụ này sử dụng toạ độ vĩ độ/kinh độ để chỉ định toạ độ điểm đến:

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=40.659569%2C-73.933783%7C40.729029%2C-73.851524%7C40.6860072%2C-73.6334271%7C40.598566%2C-73.7527626
  &origins=40.6655101%2C-73.89188969999998
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=40.6655101%2C-73.89188969999998&destinations=40.659569%2C-73.933783%7C40.729029%2C-73.851524%7C40.6860072%2C-73.6334271%7C40.598566%2C-73.7527626&key=YOUR_API_KEY'

Ví dụ này sử dụng Plus Codes để chỉ định toạ độ của điểm đến:

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=San%20Francisco
  &origins=849VCWC8%2BR9
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=849VCWC8%2BR9&destinations=San%20Francisco&key=YOUR_API_KEY'

Ví dụ này cho thấy cùng một yêu cầu sử dụng hình nhiều đường được mã hoá:

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=enc%3A_kjwFjtsbMt%60EgnKcqLcaOzkGari%40naPxhVg%7CJjjb%40cqLcaOzkGari%40naPxhV%3A
  &origins=40.6655101%2C-73.89188969999998
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=40.6655101%2C-73.89188969999998&destinations=enc%3A_kjwFjtsbMt%60EgnKcqLcaOzkGari%40naPxhVg%7CJjjb%40cqLcaOzkGari%40naPxhV%3A&key=YOUR_API_KEY'

Thông tin giao thông

Thông tin về tình hình giao thông được sử dụng khi tất cả các điều kiện sau đây đều áp dụng (đây là các điều kiện cần thiết để nhận trường duration_in_traffic trong phản hồi của Distance Matrix):

  • modeTham số di chuyển là driving hoặc không được chỉ định (driving là phương tiện di chuyển mặc định).
  • Yêu cầu bao gồm một tham số departure_time hợp lệ. Bạn có thể đặt departure_time 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ứ.

Bạn có thể thêm tham số traffic_model vào yêu cầu của mình để 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.

URL sau đây bắt đầu một yêu cầu Distance Matrix về khoảng cách lái xe giữa Boston, MA hoặc Charlestown, MA và Lexington, MA và Concord, MA. Yêu cầu này bao gồm thời gian khởi hành, đáp ứng tất cả các yêu cầu để trả về trường duration_in_traffic trong phản hồi của Distance Matrix.

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?departure_time=now
  &destinations=Lexington%2CMA%7CConcord%2CMA
  &origins=Boston%2CMA%7CCharlestown%2CMA
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Boston%2CMA%7CCharlestown%2CMA&destinations=Lexington%2CMA%7CConcord%2CMA&departure_time=now&key=YOUR_API_KEY'

JSON

{
  "destination_addresses": ["Lexington, MA, USA", "Concord, MA, USA"],
  "origin_addresses": ["Boston, MA, USA", "Charlestown, Boston, MA, USA"],
  "rows":
    [
      {
        "elements":
          [
            {
              "distance": { "text": "33.3 km", "value": 33253 },
              "duration": { "text": "27 mins", "value": 1620 },
              "duration_in_traffic": { "text": "34 mins", "value": 2019 },
              "status": "OK",
            },
            {
              "distance": { "text": "41.5 km", "value": 41491 },
              "duration": { "text": "33 mins", "value": 1981 },
              "duration_in_traffic": { "text": "39 mins", "value": 2342 },
              "status": "OK",
            },
          ],
      },
      {
        "elements":
          [
            {
              "distance": { "text": "31.1 km", "value": 31100 },
              "duration": { "text": "26 mins", "value": 1543 },
              "duration_in_traffic": { "text": "29 mins", "value": 1754 },
              "status": "OK",
            },
            {
              "distance": { "text": "39.3 km", "value": 39338 },
              "duration": { "text": "32 mins", "value": 1904 },
              "duration_in_traffic": { "text": "35 mins", "value": 2077 },
              "status": "OK",
            },
          ],
      },
    ],
  "status": "OK",
}

XML


 OK
 Boston, MA, USA
 Charlestown, Boston, MA, USA
 Lexington, MA, USA
 Concord, MA, USA
 
  
   OK
   
    1620
    27 mins
   
   
    33253
    33.3 km
   
   
    2018
    34 mins
   
  
  
   OK
   
    1981
    33 mins
   
   
    41491
    41.5 km
   
   
    2342
    39 mins
   
  
 
 
  
   OK
   
    1543
    26 mins
   
   
    31100
    31.1 km
   
   
    1759
    29 mins
   
  
  
   OK
   
    1904
    32 mins
   
   
    39338
    39.3 km
   
   
    2077
    35 mins
   
  
 

Đối tượng sửa đổi vị trí

Bạn có thể sử dụng đối tượng sửa đổi vị trí để cho biết cách tài xế nên tiếp cận một vị trí cụ thể, bằng cách sử dụng đối tượng sửa đổi side_of_road để chỉ định bên đường cần sử dụng hoặc bằng cách chỉ định hướng để cho biết hướng di chuyển chính xác.

Chỉ định rằng các tuyến đường được tính toán phải đi qua một bên đường cụ thể

Khi chỉ định một vị trí, bạn có thể yêu cầu tuyến đường được tính toán đi qua bất kỳ bên nào của đường mà điểm tham chiếu hướng đến bằng cách sử dụng tiền tố side_of_road:. Ví dụ: yêu cầu này sẽ trả về khoảng cách cho một tuyến đường dài để xe kết thúc ở bên đường mà điểm tham chiếu được thiên vị:

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=side_of_road%3A37.7663444%2C-122.4412006
  &origins=37.7680296%2C-122.4375126
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=37.7680296%2C-122.4375126&destinations=side_of_road%3A37.7663444%2C-122.4412006&key=YOUR_API_KEY'

Khi sử dụng side_of_road: với hình nhiều đường được mã hoá, đối tượng sửa đổi sẽ được áp dụng cho mọi vị trí dọc theo hình nhiều đường. Ví dụ: cả hai đích đến trong yêu cầu này đều sử dụng tham số:

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=side_of_road%3Aenc%3A%7BoqeF%60fejV%5BnC%3A
  &origins=San%20Francisco%20City%20hall
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=San%20Francisco%20City%20hall&destinations=side_of_road%3Aenc%3A%7BoqeF%60fejV%5BnC%3A&key=YOUR_API_KEY'

Bạn chỉ có thể sử dụng đối tượng sửa đổi side_of_road: theo quy định hạn chế sau:

  • modeTham số di chuyển là driving hoặc không được chỉ định (driving là chế độ di chuyển mặc định).

Chỉ định rằng các tuyến đường được tính toán phải có một hướng cụ thể

Khi chỉ định một vị trí, bạn có thể yêu cầu tuyến đường được tính toán đi qua vị trí đó theo một hướng cụ thể. Hướng này được chỉ định bằng tiền tố heading=X:, trong đó X là giá trị độ nguyên từ 0 (bao gồm) đến 360 (không bao gồm). Hướng 0 cho biết hướng Bắc, 90 cho biết hướng Đông, tiếp tục theo chiều kim đồng hồ. Ví dụ: trong yêu cầu này, tuyến đường được tính toán sẽ đi về phía đông từ điểm xuất phát, sau đó quay đầu:

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=37.773245%2C-122.469502
  &origins=heading%3D90%3A37.773279%2C-122.468780
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=heading%3D90%3A37.773279%2C-122.468780&destinations=37.773245%2C-122.469502&key=YOUR_API_KEY'

Bạn chỉ có thể sử dụng đối tượng sửa đổi heading=X: theo các quy định hạn chế sau:

  • modeTham số di chuyển là driving, bicycling hoặc không được chỉ định (driving là chế độ di chuyển mặc định).
  • Đối tượng sửa đổi side_of_road không được chỉ định cho cùng một vị trí.
  • Vị trí được chỉ định bằng giá trị vĩ độ/kinh độ. Bạn không được sử dụng heading với địa chỉ, Mã địa điểm hoặc hình nhiều đường được mã hoá.

Yêu cầu và phản hồi của Distance Matrix

Dưới đây là một yêu cầu HTTP mẫu, yêu cầu khoảng cách và thời gian từ Vancouver, BC, Canada và từ Seattle, WA, Hoa Kỳ đến San Francisco, CA, Hoa Kỳ và đến Victoria, BC, Canada.

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=San%20Francisco%7CVictoria%20BC
  &language=fr-FR
  &mode=bicycling
  &origins=Vancouver%20BC%7CSeattle
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Vancouver%20BC%7CSeattle&destinations=San%20Francisco%7CVictoria%20BC&mode=bicycling&language=fr-FR&key=YOUR_API_KEY'

Yêu cầu này sẽ trả về 4 phần tử – 2 điểm xuất phát nhân với 2 điểm đến:

Từ Vancouver đến San Francisco Từ Vancouver đến Victoria
Từ Seattle đến San Francisco Seattle đến Victoria

Kết quả được trả về theo hàng, mỗi hàng chứa một điểm xuất phát được ghép nối với mỗi điểm đến.

JSON

{
  "destination_addresses":
    ["San Francisco, Californie, États-Unis", "Victoria, BC, Canada"],
  "origin_addresses":
    ["Vancouver, BC, Canada", "Seattle, Washington, États-Unis"],
  "rows":
    [
      {
        "elements":
          [
            {
              "distance": { "text": "1 712 km", "value": 1711765 },
              "duration": { "text": "3 jours 16 heures", "value": 318119 },
              "status": "OK",
            },
            {
              "distance": { "text": "140 km", "value": 139695 },
              "duration": { "text": "6 heures 49 minutes", "value": 24567 },
              "status": "OK",
            },
          ],
      },
      {
        "elements":
          [
            {
              "distance": { "text": "1 452 km", "value": 1451704 },
              "duration": { "text": "3 jours 2 heures", "value": 266680 },
              "status": "OK",
            },
            {
              "distance": { "text": "146 km", "value": 146500 },
              "duration": { "text": "2 heures 53 minutes", "value": 10374 },
              "status": "OK",
            },
          ],
      },
    ],
  "status": "OK",
}

XML


 OK
 Vancouver, BC, Canada
 Seattle, Washington, États-Unis
 San Francisco, Californie, États-Unis
 Victoria, BC, Canada
 
  
   OK
   
    318119
    3 jours 16 heures
   
   
    1711765
    1 712 km
   
  
  
   OK
   
    24567
    6 heures 49 minutes
   
   
    139695
    140 km
   
  
 
 
  
   OK
   
    266680
    3 jours 2 heures
   
   
    1451704
    1 452 km
   
  
  
   OK
   
    10374
    2 heures 53 minutes
   
   
    146500
    146 km
   
  
 

DistanceMatrixResponse

Trường Bắt buộc Loại Mô tả
bắt buộc Array<string>

Một mảng địa chỉ do API trả về từ yêu cầu ban đầu của bạn. Tương tự như origin_addresses, các giá trị này được bản địa hoá nếu phù hợp. Nội dung này được dùng để đọc nguyên trạng. Đừng phân tích cú pháp địa chỉ được định dạng theo phương thức lập trình.

bắt buộc Array<string>

Một mảng địa chỉ do API trả về từ yêu cầu ban đầu của bạn. Các địa chỉ này được định dạng bằng bộ mã hoá địa lý và được bản địa hoá theo tham số ngôn ngữ được truyền cùng với yêu cầu. Nội dung này được dùng để đọc nguyên trạng. Đừng phân tích cú pháp địa chỉ đã định dạng theo phương thức lập trình.

bắt buộc Array<DistanceMatrixRow>

Một mảng các phần tử, trong đó mỗi phần tử lần lượt chứa một phần tử status, duration và distance.

Hãy xem DistanceMatrixRow để biết thêm thông tin.

bắt buộc DistanceMatrixStatus

Chứa trạng thái của yêu cầu và có thể chứa thông tin gỡ lỗi để giúp bạn theo dõi lý do yêu cầu không thành công.

Hãy xem DistanceMatrixStatus để biết thêm thông tin.

tùy chọn chuỗi

Một chuỗi chứa văn bản mà con người có thể đọc được về mọi lỗi gặp phải trong khi xử lý yêu cầu.

DistanceMatrixStatus

Mã trạng thái do dịch vụ trả về.

  • OK cho biết phản hồi chứa kết quả hợp lệ.
  • INVALID_REQUEST cho biết rằng yêu cầu được cung cấp không hợp lệ.
  • MAX_ELEMENTS_EXCEEDED cho biết tích của số điểm xuất phát và số điểm đến vượt quá giới hạn cho mỗi truy vấn.
  • MAX_DIMENSIONS_EXCEEDED cho biết số lượng điểm xuất phát hoặc điểm đến vượt quá giới hạn cho mỗi truy vấn.
  • OVER_DAILY_LIMIT cho biết bất kỳ điều nào sau đây:
    • Khoá API bị thiếu hoặc không hợp lệ.
    • Bạn chưa bật tính năng thanh toán trên tài khoản của mình.
    • Đã vượt quá hạn mức sử dụng do bạn tự đặt ra.
    • Phương thức thanh toán được cung cấp không còn hợp lệ (ví dụ: thẻ tín dụng đã hết hạn).
  • OVER_QUERY_LIMIT cho biết dịch vụ đã nhận được quá nhiều yêu cầu từ ứng dụng của bạn trong khoảng thời gian cho phép.
  • REQUEST_DENIED cho biết rằng dịch vụ đã từ chối cho phép ứng dụng của bạn sử dụng dịch vụ Distance Matrix.
  • UNKNOWN_ERROR cho biết không thể xử lý yêu cầu Distance Matrix do lỗi phía máy chủ. Yêu cầu có thể thành công nếu bạn thử lại.

DistanceMatrixRow

Trường Bắt buộc Loại Mô tả
bắt buộc Array<DistanceMatrixElement>

Khi trả về kết quả, Distance Matrix API sẽ đặt kết quả vào một mảng hàng JSON. Ngay cả khi không có kết quả nào được trả về (chẳng hạn như khi điểm xuất phát và/hoặc điểm đến không tồn tại), thì hàm này vẫn trả về một mảng trống.

Các hàng được sắp xếp theo giá trị trong tham số gốc của yêu cầu. Mỗi hàng tương ứng với một điểm xuất phát và mỗi phần tử trong hàng đó tương ứng với một cặp điểm xuất phát và giá trị điểm đến.

Mỗi mảng hàng chứa một hoặc nhiều mục nhập phần tử, từ đó chứa thông tin về một cặp điểm xuất phát – điểm đến.

Hãy xem DistanceMatrixElement để biết thêm thông tin.

DistanceMatrixElement

Trường Bắt buộc Loại Mô tả
bắt buộc DistanceMatrixElementStatus

Trạng thái của phần tử.

Hãy xem DistanceMatrixElementStatus để biết thêm thông tin.

tùy chọn TextValueObject

Tổng quãng đường của tuyến đường này, được biểu thị bằng mét (giá trị) và dưới dạng văn bản. Giá trị văn bản sử dụng hệ thống đơn vị được chỉ định bằng tham số đơn vị của yêu cầu ban đầu hoặc khu vực của điểm xuất phát.

Hãy xem TextValueObject để biết thêm thông tin.

tùy chọn TextValueObject

Thời gian cần thiết để di chuyển trên tuyến đường này, được biểu thị bằng giây (trường giá trị) và dưới dạng văn bản. Nội dung văn bản được bản địa hoá theo tham số ngôn ngữ của truy vấn.

Hãy xem TextValueObject để biết thêm thông tin.

tùy chọn TextValueObject

Thời gian cần thiết để di chuyển trên tuyến đường này, dựa trên tình trạng giao thông hiện tại và trước đây. Hãy xem tham số yêu cầu traffic_model để biết các lựa chọn mà bạn có thể dùng để yêu cầu giá trị trả về là giá trị ước tính lạc quan, bi quan hoặc phỏng đoán chính xác nhất. Thời lượng được biểu thị bằng giây (trường giá trị) và dưới dạng văn bản. Nội dung văn bản được bản địa hoá theo tham số ngôn ngữ của truy vấn. Thời gian di chuyển trong tình trạng giao thông hiện tại chỉ được trả về nếu tất cả các điều kiện sau đều đúng:

  • Yêu cầu bao gồm tham số departure_time.
  • Có thông tin về tình trạng giao thông cho tuyến đường được yêu cầu.
  • Tham số mode được đặt thành driving.

Hãy xem TextValueObject để biết thêm thông tin.

tùy chọn Giá vé

Nếu có, thì trường này sẽ chứa tổng giá vé (tức là tổng chi phí vé) trên tuyến đường này. Thuộc tính này chỉ được trả về cho các yêu cầu về phương tiện công cộng và chỉ cho những nhà cung cấp phương tiện công cộng có thông tin về giá vé.

Hãy xem phần Giá vé để biết thêm thông tin.

Giá vé

Tổng giá vé cho tuyến đường.

{
  "currency" : "USD",
  "value" : 6,
  "text" : "$6.00"
}
Trường Bắt buộc Loại Mô tả
bắt buộc chuỗi

Mã tiền tệ theo ISO 4217 cho biết đơn vị tiền tệ của số tiền.

bắt buộc chuỗi

Tổng giá vé, được định dạng theo ngôn ngữ được yêu cầu.

bắt buộc số

Tổng giá vé, theo đơn vị tiền tệ được chỉ định.

DistanceMatrixElementStatus

  • OK cho biết phản hồi chứa kết quả hợp lệ.
  • NOT_FOUND cho biết rằng không thể mã hoá địa lý điểm xuất phát và/hoặc điểm đến của cặp này.
  • ZERO_RESULTS cho biết không tìm thấy tuyến đường nào giữa điểm xuất phát và điểm đến.
  • MAX_ROUTE_LENGTH_EXCEEDED cho biết tuyến đường được yêu cầu quá dài và không thể xử lý.

TextValueObject

Một đối tượng chứa giá trị số và giá trị biểu thị dạng văn bản được định dạng của giá trị số đó.

Trường Bắt buộc Loại Mô tả
bắt buộc chuỗi

Giá trị chuỗi.

bắt buộc số

Giá trị số.