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).xmlcho 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ành849VCWC8%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ànhCWC8%2BR9%20Mountain%20View%20CA%20USA).
-
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 (
-
Đườ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:
-
Đường đa tuyến được mã hoá phải có tiền tố
-
Mã địa điểm: Nếu cung cấp mã địa điểm, bạn phải thêm tiền tố
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_timehoặcarrival_time, nhưng không được chỉ định cả hai. Xin lưu ý rằng bạn phải chỉ địnharrival_timedướ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ợ:
-
tollscho biết tuyến đường được tính toán nên tránh đường/cầu có thu phí. -
highwayscho biết rằng tuyến đường được tính toán nên tránh đường cao tốc. -
ferriescho biết rằng tuyến đường được tính toán nên tránh phà. -
indoorcho 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_timemuộn hơn 9999-12-31T23:59:59.999999999Z, thì API sẽ đặtdeparture_timevề 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_timehoặcarrival_time. Nếu bạn không chỉ định thời gian, thìdeparture_timesẽ 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_timephả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ỉ địnhdeparture_timekhimode=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ử. -
Đố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ị
-
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ế độ
DRIVINGsẽ đượ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ộ. -
walkingyê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ó). -
bicyclingyê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ó). -
transityê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ỉ địnhdeparture_timehoặcarrival_time(không bắt buộc). Nếu bạn không chỉ định thời gian, thìdeparture_timesẽ 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êmtransit_modevà/hoặctransit_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_modelcho đường lái xe khi yêu cầu có chứadeparture_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 khideparture_timecàng gần với thời điểm hiện tại. -
pessimisticcho 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. -
optimisticcho 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_guesssẽ đư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ủabest_guessngắn hơnoptimistichoặc dài hơnpessimistic, do cách mô hình dự đoán củabest_guesstí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:
-
buscho biết tuyến đường được tính toán nên ưu tiên di chuyển bằng xe buýt. -
subwaycho 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. -
traincho biết tuyến đường được tính toán nên ưu tiên di chuyển bằng tàu hoả. -
tramcho 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. -
railcho 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ớitransit_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_walkingcho biết tuyến đường được tính toán nên ưu tiên đi bộ ít. -
fewer_transferscho 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àdrivinghoặc không được chỉ định (drivinglà phương tiện di chuyển mặc định).- Yêu cầu bao gồm một tham số
departure_timehợp lệ. Bạn có thể đặtdeparture_timethà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àdrivinghoặc không được chỉ định (drivinglà 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,bicyclinghoặc không được chỉ định (drivinglà chế độ di chuyển mặc định).- Đối tượng sửa đổi
side_of_roadkhô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
headingvớ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ư |
|
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ử 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ề.
OKcho biết phản hồi chứa kết quả hợp lệ.-
INVALID_REQUESTcho biết rằng yêu cầu được cung cấp không hợp lệ. -
MAX_ELEMENTS_EXCEEDEDcho 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_EXCEEDEDcho 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_LIMITcho 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_LIMITcho 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_DENIEDcho 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_ERRORcho 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
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
OKcho biết phản hồi chứa kết quả hợp lệ.-
NOT_FOUNDcho 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_RESULTScho 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_EXCEEDEDcho 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ố. |