Giới thiệu
Yêu cầu Distance Matrix API có dạng như sau:
https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters
trong đó outputFormat có thể là một trong hai giá trị sau:
json(nên dùng) cho biết đầu ra ở định dạng Ký hiệu đối tượng JavaScript (JSON).xmlcho biết đầu ra dưới dạng XML.
Một số tham số là bắt buộc, trong khi các tham số khác là không bắt buộc. Theo tiêu chuẩn trong URL, tất cả cá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 thông số và giá trị có thể của các thông số đó được liệt kê dưới đây.
Thông 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 để tính toán quãng đường và thời gian di chuyển. Các lựa chọn cho tham số đích đến giống với tham số điểm xuất phát.
-
nguồn gốc
Điểm xuất phát để tính toán khoảng cách 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 dấu 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 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 một 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ì sử dụng địa chỉ hoặc toạ độ vĩ độ/kinh độ. Việc sử dụng toạ độ sẽ luôn dẫn đến việc điểm được gắn vào con đường gần nhất với những toạ độ đó – có thể không phải là điểm truy cập vào tài sản, hoặc thậm chí là con đường sẽ dẫn đến đích đến một cách nhanh chóng hoặc an toàn. Khi sử dụng địa chỉ, bạn sẽ biết được khoảng cách đến trung tâm của toà nhà, thay vì đến một lối vào của toà nhà.
- Toạ độ: Nếu bạn truyền toạ độ vĩ độ/kinh độ, thì các toạ độ này sẽ bám theo con đườ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 độ.
-
Plus Code phải được định dạng dưới dạng mã chung hoặc mã kết hợp. Định dạng mã cộng như minh hoạ ở đây (dấu cộng được thoát URL thành %2B và khoảng trắng đượ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ã cục bộ có từ 6 ký tự trở lên với 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ó nhiều điểm xuất phát, vì URL sẽ ngắn hơn đáng kể khi sử dụng một đường nhiều đoạn được mã hoá.
-
Đường nhiều đoạn được mã hoá phải có tiền tố là
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 đường nhiều đoạn được mã hoá, phân tách bằng dấu gạch đứng
|. Ví dụ:origins=enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:|enc:udymA{~bxM:
-
Đường nhiều đoạn được mã hoá phải có tiền tố là
-
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 một 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ỉ ra 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 hạn chế sau đây được hỗ trợ:
-
tollscho biết tuyến đường được tính toán sẽ tránh các đường/cầu thu phí. -
highwayscho biết tuyến đường được tính toán phải tránh đường cao tốc. -
ferriescho biết tuyến đường được tính toán phải tránh phà. -
indoorcho biết tuyến đường được tính toán phải tránh các bước trong nhà cho chỉ đườ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 trạm thu phí, đường cao tốc và phà bằng cách truyền cả hai hạn chế này vào tham số tránh. Ví dụ:
avoid=tolls|highways|ferries.Lưu ý: Việc thêm các quy tắc hạn chế không loại trừ những tuyến đường có chứa đối tượng bị hạn chế; việc này chỉ thiên về những tuyến đường thuận lợi 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_timesau 9999-12-31T23:59:59.999999999Z, thì API sẽ chuyểndeparture_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 từng giây). Bạn có thể chỉ định thời gian khởi hành trong 2 trường hợp:-
Đối với các yêu cầu có chế độ di chuyển là phương tiện công cộng: Bạn có thể tuỳ ý chỉ định một trong các chế độ
departure_timehoặcarrival_time. Nếu bạn không chỉ định thời gian nào, 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ó chế độ di chuyển là lái xe: Bạn có thể chỉ định
departure_timeđể nhận một 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à một ngày trong quá khứ.
Lưu ý: Nếu bạn không chỉ định thời gian khởi hành, lựa chọn về tuyến đường và thời lượng sẽ dựa trên mạng lưới đường bộ và điều kiện 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 mới nhất và bản 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 tương đương vào bất kỳ thời điểm hoặc tần suất nào.Lưu ý: Yêu cầu Distance Matrix chỉ địnhdeparture_timekhimode=drivingbị giới hạn 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ó chế độ di chuyển là phương tiện công cộng: Bạn có thể tuỳ ý chỉ định một trong các chế độ
-
language
Ngôn ngữ mà bạn muốn nhận kết quả.
- Xem danh sách các 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 cung cấp một đị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 đó, phương thức này sẽ trả về địa chỉ đường phố bằng ngôn ngữ địa phương, được chuyển tự sang một kịch bản mà người dùng có thể đọc được (nếu cần), tuân theo ngôn ngữ ưu tiên. Tất cả các địa chỉ khác đều được trả về bằng ngôn ngữ ưu tiên. Tất cả cá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 kết quả trùng khớp gần nhất.
- Ngôn ngữ ưu tiên có ảnh hưởng nhỏ đến tập hợp kết quả mà API chọn trả về và thứ tự trả về. Trình mã hoá địa lý diễn giải các từ viết tắt theo nhiều cách 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à từ đồng nghĩa với đường phố 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 giao thông cần sử dụng. Theo mặc định, chế độ
DRIVINGsẽ được dùng. Theo mặc định, chỉ đường được tính là chỉ đường lái xe. Các chế độ di chuyển sau đây được hỗ trợ:-
driving(mặc định) cho biết chỉ đường lái xe tiêu chuẩn hoặc khoảng cách bằng cách sử dụng mạng lưới đường bộ. -
walkingyêu cầu chỉ đường hoặc khoảng cách đi bộ bằng đường dành cho người đi bộ và vỉa hè (nếu có). -
bicyclingyêu cầu chỉ đường hoặc khoảng cách đi xe đạp bằ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 đường 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 nào, 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, những đườ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 ý: Chuyến đi bằng phương tiện công cộng có thể xem được tối đa 7 ngày trước đó hoặc tối đa 100 ngày sau đó, tuỳ thuộc vào thông tin về phương tiện công cộng do nhà cung cấp dữ liệu cung cấp. 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 sẽ nhất quán trong thời gian dài. -
-
khu vực
Mã vùng, được chỉ định là giá trị gồm 2 ký tự ccTLD ("miền cấp cao nhất"). Hầu hết mã ccTLD đều giống với mã ISO 3166-1, ngoại trừ một số trường hợp đá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ể "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 lưu lượng truy cập. 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. Trường này chứa thời gian dự kiến khi có lưu lượng truy cập dựa trên mức trung bình trong quá khứ. Bạn chỉ có thể chỉ định tham số
traffic_modelcho chỉ đườ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 duration_in_traffic được trả về phải là thông tin ướ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 trong quá khứ và giao thông theo thời gian thực. Thông tin giao thông theo thời gian thực 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 duration_in_traffic được trả về phải dài hơn thời gian di chuyển thực tế vào hầu hết các ngày, mặc dù đôi khi vào những ngày có tình trạng giao thông đặc biệt xấu, giá trị này có thể vượt quá. -
optimisticcho biết duration_in_traffic được trả về phải ngắn hơn thời gian di chuyển thực tế vào hầu hết các ngày, mặc dù đôi khi vào những ngày có điều kiện giao thông đặc biệt thuận lợi, thời gian di chuyển có thể nhanh hơn giá trị này.
Giá trị mặc định của
best_guesssẽ đưa ra những 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ánbest_guessngắn hơnoptimistichoặc dài hơnpessimisticdo cách mô hình dự đoán tích hợp thông tin giao thông theo thời gian thựcbest_guess. -
-
transit_mode
Chỉ định một hoặc nhiều phương thức di chuyển ư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 tuyến đường được tính toán nên ưu tiên đi bằng tàu điện ngầm. -
traincho biết rằng tuyến đường được tính 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 xe điện và tàu đ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 ngầm 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 các tuyến đường dành cho phương tiện công cộng. Khi sử dụng tham số này, bạn có thể điều chỉnh các lựa chọn được trả về thay vì chấp nhận tuyến đường tối ưu mặc định do API chọn. Bạn chỉ có thể chỉ định tham số này cho chỉ đường 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ộ trong khoảng thời gian ngắn. -
fewer_transferscho biết tuyến đường được tính nên ưu tiên số lần chuyển phương tiện có giới hạn.
-
-
đơn vị
Chỉ định hệ thống đơn vị cần 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 xuất hiện trong các trường khoảng cách. Các trường khoảng cách cũng chứa những 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ạ độ đích:
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 mã địa chỉ để chỉ định toạ độ đích đế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 bằng cách sử dụng một đường nhiều đoạn đượ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 về giao thông
Thông tin về lưu lượng truy cập được sử dụng khi tất cả các điều kiện sau đây được áp dụng (đây là những điều kiện bắt buộc để nhận trường duration_in_traffic trong phản hồi Ma trận khoảng cách):
- Tham số
modecho loại hình doanh nghiệp du lịch làdrivinghoặc không được chỉ định (drivinglà chế độ du lịch 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à một 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 (không bắt buộc) để chỉ định các giả định cần sử dụng khi tính toán thời gian di chuyển trong điều kiện giao thông.
URL sau đây bắt đầu một yêu cầu Distance Matrix cho 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 mọi yêu cầu để trả về trường duration_in_traffic trong phản hồi Ma trận khoảng cách.
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
Công cụ sửa đổi vị trí
Bạn có thể dùng các đối tượng sửa đổi vị trí để cho biết cách người lái xe nên tiếp cận một vị trí cụ thể, bằng cách dùng đối tượng sửa đổi side_of_road để chỉ định bên đường cần dùng hoặc bằng cách chỉ định hướng đi để 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 đường nào mà điểm tham chiếu bị lệch về phía đó 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 ở phía đường mà điểm tham chiếu được điều chỉnh:
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 các 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: khi có hạn chế này:
- Tham số
modedu lịch làdrivinghoặc không được chỉ định (drivinglà chế độ du lịch 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ể. Tiêu đề này được chỉ định bằng tiền tố heading=X:, trong đó X là giá trị độ số 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 đi về phía đông từ điểm bắt đầu, 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 những hạn chế sau:
- Tham số
modecho loại hình doanh nghiệp du lịch làdriving,bicyclinghoặc không được chỉ định (drivinglà chế độ di chuyển mặc định). - Bạn không chỉ định đối tượng sửa đổi
side_of_roadcho 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 đường nhiều đoạn được mã hoá.
Yêu cầu và phản hồi của Distance Matrix
Sau đây là một yêu cầu HTTP mẫu, yêu cầu khoảng cách và thời lượng từ Vancouver, British Columbia, Canada và từ Seattle, Washington, Hoa Kỳ đến San Francisco, California, Hoa Kỳ và đến Victoria, British Columbia, 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 và 2 điểm đến:
| Vancouver đến San Francisco | 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 với từng đ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. Giống 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 thông tin này được bộ mã hoá địa lý định dạng và 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 theo lập trình các địa chỉ được định dạng. |
|
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 khiến 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 quá trình xử lý yêu cầu. |
DistanceMatrixStatus
Mã trạng thái do dịch vụ trả về.
OKcho biết câu trả lời chứa một 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 rằng sản phẩm của điểm xuất phát và đ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 một trong những trường hợp sau:- 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 cho tài khoản của mình.
- Bạn đã vượt quá hạn mức sử dụng do chính mình đặt ra.
- Phương thức thanh toán bạn 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 ứng dụng của bạn sử dụng dịch vụ Ma trận khoảng cách. -
UNKNOWN_ERRORcho biết không thể xử lý yêu cầu Ma trận khoảng cách do lỗi 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 Distance Matrix API trả về kết quả, API này sẽ đặt kết quả trong 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 không có điểm xuất phát và/hoặc điểm đến), thì phương thức 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ố nguồn gốc của yêu cầu. Mỗi hàng tương ứng với một nguồn và mỗi phần tử trong hàng đó tương ứng với một cặp nguồn có giá trị đích. Mỗi mảng hàng chứa một hoặc nhiều mục nhập phần tử, lần lượt chứa thông tin về một cặp nguồn gốc – đích đến duy nhất. 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 nguồn gốc. Hãy xem TextValueObject để biết thêm thông tin. |
|
tùy chọn | TextValueObject |
Khoảng thời gian cần thiết để đi theo 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. Biểu diễn bằng 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 |
Khoảng 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ó, trường này 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ỉ dành cho những nhà cung cấp dịch vụ vận chuyển công cộng có thông tin về giá vé. Hãy xem Giá vé để biết thêm thông tin. |
Giá vé
Tổng giá vé của 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ã đơn vị tiền tệ theo ISO 4217 cho biết đơn vị tiền tệ mà số tiền được biểu thị. |
|
bắt buộc | chuỗi |
Tổng số tiền giá vé, được định dạng bằng ngôn ngữ yêu cầu. |
|
bắt buộc | số |
Tổng số tiền giá vé, tính bằng đơn vị tiền tệ được chỉ định. |
DistanceMatrixElementStatus
OKcho biết câu trả lời chứa một kết quả hợp lệ.-
NOT_FOUNDcho biết rằng hệ thống không thể mã hoá địa lý nguồn 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 khởi hành 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ị dạng số và biểu thị văn bản được định dạng của giá trị đó.
| 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ố. |