- Yêu cầu HTTP
- Nội dung yêu cầu
- Nội dung phản hồi
- Chất lượng của Polylyline
- PolylineMã hóa
- Đơn vị
- Mã tham chiếu tuyến
- Tính toán bổ sung
- Tuyến đường
- Nhãn
- Tuyến đường
- Polyline
- RouteLegStep
- Hướng dẫn điều hướng
- Thao tác
- RouteLegStepTravelAdvisory
- RouteLegTravelAdvisory
- Khung nhìn
- Mã hoá kết quả địa lý
- GeocodedWaypoint
Trả về tuyến chính cùng với các tuyến đường thay thế không bắt buộc, dựa trên một nhóm các điểm tham chiếu đầu cuối và trung gian.
LƯU Ý: Phương thức này yêu cầu bạn chỉ định mặt nạ trường phản hồi trong dữ liệu đầu vào. Bạn có thể cung cấp mặt nạ trường phản hồi bằng cách sử dụng tham số URL $fields
hoặc fields
, hoặc bằng cách sử dụng tiêu đề HTTP/gRPC X-Goog-FieldMask
(xem tiêu đề và tham số URL có sẵn). Giá trị này là danh sách các đường dẫn trường được phân tách bằng dấu phẩy. Xem tài liệu chi tiết về cách xây dựng các đường dẫn trường.
Ví dụ: trong phương thức này:
- Mặt nạ trường của tất cả các trường có sẵn (để kiểm tra thủ công):
X-Goog-FieldMask: *
- Mặt nạ trường của thời lượng cấp độ, khoảng cách và nhiều đường (một ví dụ về cách thiết lập trong quá trình sản xuất):
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
Google không khuyến khích sử dụng mặt nạ trường phản hồi ký tự đại diện (*
) hoặc chỉ định mặt nạ trường ở cấp cao nhất (routes
) vì:
- Việc chỉ chọn các trường bạn cần sẽ giúp máy chủ của chúng tôi lưu các chu kỳ tính toán, cho phép chúng tôi trả về kết quả cho bạn với độ trễ thấp hơn.
- Việc chỉ chọn những trường mà bạn cần trong công việc sản xuất sẽ đảm bảo hiệu suất ổn định. Chúng tôi có thể thêm các trường phản hồi khác trong tương lai và những trường mới đó có thể yêu cầu thêm thời gian tính toán. Nếu bạn chọn tất cả các trường hoặc nếu bạn chọn tất cả các trường ở cấp cao nhất, thì bạn có thể thấy hiệu suất giảm sút vì mọi trường mới mà chúng tôi thêm đều sẽ tự động được đưa vào nội dung phản hồi.
- Chỉ chọn các trường bạn cần sẽ dẫn đến kích thước phản hồi nhỏ hơn, và do đó thông lượng mạng cao hơn.
Yêu cầu HTTP
POST https://routes.googleapis.com/directions/v2:computeRoutes
URL sử dụng cú pháp Chuyển mã gRPC.
Nội dung yêu cầu
Phần nội dung yêu cầu chứa dữ liệu có cấu trúc như sau:
Biểu diễn dưới dạng JSON |
---|
{ "origin": { object ( |
Các trường | |
---|---|
origin |
Bắt buộc. Điểm tham chiếu ban đầu. |
destination |
Bắt buộc. Điểm tham chiếu đích. |
intermediates[] |
Không bắt buộc. Một tập hợp các điểm tham chiếu dọc theo tuyến đường (không bao gồm các điểm cuối) để dừng tại hoặc đi qua. Hỗ trợ tối đa 25 điểm trung gian. |
travelMode |
Không bắt buộc. Chỉ định phương thức di chuyển. |
routingPreference |
Không bắt buộc. Chỉ định cách tính toán tuyến đường. Máy chủ cố gắng sử dụng tuỳ chọn định tuyến đã chọn để tính toán tuyến. Nếu tuỳ chọn định tuyến dẫn đến lỗi hoặc độ trễ dài hơn thì một lỗi sẽ được trả về. Bạn chỉ có thể chỉ định tuỳ chọn này khi |
polylineQuality |
Không bắt buộc. Chỉ định lựa chọn ưu tiên của bạn về chất lượng của đường đa hình. |
polylineEncoding |
Không bắt buộc. Chỉ định chế độ mã hoá ưu tiên cho hình nhiều đường. |
departureTime |
Không bắt buộc. Giờ khởi hành. Nếu bạn không đặt giá trị này, thì giá trị này sẽ mặc định theo thời gian bạn thực hiện yêu cầu. Nếu bạn đặt giá trị này thành thời gian đã xảy ra, thì yêu cầu không thành công. Dấu thời gian ở định dạng "RFC" RFC3339 UTC, với độ phân giải nano giây và tối đa chín chữ số phân số. Ví dụ: |
computeAlternativeRoutes |
Không bắt buộc. Chỉ định xem có tính toán các tuyến đường thay thế ngoài tuyến đường hay không. Không có tuyến đường thay thế nào được trả về cho yêu cầu có điểm trung gian. |
routeModifiers |
Không bắt buộc. Một tập hợp các điều kiện để đáp ứng ảnh hưởng đến cách tính toán tuyến đường. |
languageCode |
Không bắt buộc. Mã ngôn ngữ BCP-47, chẳng hạn như "en-US" hoặc "sr-Latn". Để biết thêm thông tin, hãy xem http://www.unicode.org/reporting/tr35/#Unicode_locale_identifier. Xem nội dung Hỗ trợ ngôn ngữ để biết danh sách ngôn ngữ được hỗ trợ. Khi bạn không cung cấp giá trị này, ngôn ngữ hiển thị được suy ra từ vị trí của yêu cầu tuyến đường. |
regionCode |
Không bắt buộc. Mã vùng, được chỉ định dưới dạng giá trị gồm hai ký tự ccTLD ("miền cấp cao nhất"). Để biết thêm thông tin, hãy xem https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains |
units |
Không bắt buộc. Chỉ định đơn vị đo lường cho các trường hiển thị. Bao gồm cả trường |
requestedReferenceRoutes[] |
Không bắt buộc. Xác định tuyến tham chiếu nào cần tính toán trong yêu cầu ngoài tuyến mặc định. Tuyến tham chiếu là tuyến có mục tiêu tính toán tuyến đường khác với tuyến mặc định. Ví dụ: Việc tính toán tuyến đường tham chiếu |
extraComputations[] |
Không bắt buộc. Danh sách các phép tính bổ sung có thể dùng để hoàn thành yêu cầu. Lưu ý: Các phép tính bổ sung này có thể trả về các trường bổ sung trong phản hồi. Bạn cũng phải chỉ định các trường bổ sung này trong mặt nạ trường để trả về phản hồi. |
Nội dung phản hồi
Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:
v2.CompuRoutes thông báo phản hồi.
Biểu diễn dưới dạng JSON |
---|
{ "routes": [ { object ( |
Các trường | |
---|---|
routes[] |
Chứa một mảng các tuyến đã tính toán (tối đa 3 tuyến) khi bạn chỉ định Compu_alternatives_routes và chỉ chứa 1 tuyến nếu bạn không có. Khi mảng này chứa nhiều mục nhập, thì mục đầu tiên là tuyến đường được đề xuất nhiều nhất. Nếu mảng trống thì điều đó có nghĩa là không thể tìm thấy tuyến đường nào. |
fallbackInfo |
Trong một số trường hợp, khi máy chủ không thể tính toán kết quả tuyến đường bằng tất cả các tùy chọn đầu vào, máy chủ có thể dự phòng bằng một cách tính khác. Khi dùng chế độ dự phòng, trường này có chứa thông tin chi tiết về nội dung phản hồi dự phòng. Nếu không, trường này sẽ không được đặt. |
geocodingResults |
Chứa thông tin phản hồi mã hóa địa lý cho các điểm tham chiếu được chỉ định làm địa chỉ. |
Chất lượng hình nhiều đường
Một tập hợp các giá trị chỉ định chất lượng của hình nhiều đường.
Enum | |
---|---|
POLYLINE_QUALITY_UNSPECIFIED |
Chưa chỉ định lựa chọn chất lượng đa tuyến. Giá trị mặc định là OVERVIEW . |
HIGH_QUALITY |
Chỉ định một đường liên kết chất lượng cao (được soạn bằng cách sử dụng nhiều điểm hơn OVERVIEW ) bằng cách tăng kích thước phản hồi. Hãy sử dụng giá trị này khi bạn cần chính xác hơn. |
OVERVIEW |
Chỉ định một hình nhiều đường tổng quan – được soạn bằng một số điểm nhỏ. Hãy dùng giá trị này khi hiện thông tin tổng quan về tuyến đường. Việc sử dụng tùy chọn này có độ trễ yêu cầu thấp hơn so với việc sử dụng tùy chọn HIGH_QUALITY . |
PolylineMã hoá
Chỉ định loại polyline ưu tiên cần trả về.
Enum | |
---|---|
POLYLINE_ENCODING_UNSPECIFIED |
Chưa chỉ định tuỳ chọn loại đa hình. Giá trị mặc định là ENCODED_POLYLINE . |
ENCODED_POLYLINE |
Chỉ định một polyline mã hoá bằng thuật toán mã hoá polyline. |
GEO_JSON_LINESTRING |
Chỉ định một hình nhiều đường bằng cách sử dụng định dạng GeoLine LineString |
Đơn vị
Một tập hợp các giá trị chỉ định đơn vị đo lường được sử dụng trong màn hình.
Enum | |
---|---|
UNITS_UNSPECIFIED |
Đơn vị đo lường không được chỉ định. Giá trị mặc định là đơn vị đo lường được suy ra từ yêu cầu. |
METRIC |
Đơn vị đo lường chỉ số. |
IMPERIAL |
Đơn vị đo lường Anh (Anh). |
Tham chiếu tuyến
Tuyến tham chiếu được hỗ trợ trên ComputeRoutesRequest.
Enum | |
---|---|
REFERENCE_ROUTE_UNSPECIFIED |
Không được sử dụng. Các yêu cầu chứa giá trị này không thực hiện được. |
FUEL_EFFICIENT |
Tuyến đường tiết kiệm nhiên liệu. Các tuyến đường được gắn nhãn bằng giá trị này được xác định là tối ưu hóa cho các thông số như mức tiêu thụ nhiên liệu. |
Điện toán bổ sung
Các phép tính bổ sung cần thực hiện trong khi hoàn thành yêu cầu.
Enum | |
---|---|
EXTRA_COMPUTATION_UNSPECIFIED |
Không được sử dụng. Các yêu cầu chứa giá trị này sẽ không thành công. |
TOLLS |
Thông tin về phí cầu đường cho(các) tuyến đường. |
FUEL_CONSUMPTION |
Mức tiêu thụ nhiên liệu ước tính cho(các) tuyến đường. |
TRAFFIC_ON_POLYLINE |
Đường đa tuyến nhận biết giao thông cho(các) tuyến đường. |
Tuyến đường
Bao gồm một tuyến đường, bao gồm một loạt các đoạn đường nối với các điểm bắt đầu, kết thúc và trung gian.
Biểu diễn dưới dạng JSON |
---|
{ "routeLabels": [ enum ( |
Các trường | |
---|---|
routeLabels[] |
Các nhãn cho |
legs[] |
Một tập hợp các chân (phân đoạn đường dẫn giữa các điểm tham chiếu) tạo nên tuyến đường. Mỗi chặng tương ứng với chuyến đi giữa hai |
distanceMeters |
Khoảng cách di chuyển của tuyến đường, tính bằng mét. |
duration |
Khoảng thời gian cần thiết để điều hướng tuyến đường. Nếu bạn đặt Khoảng thời gian tính bằng giây có tối đa 9 chữ số thập phân, kết thúc bằng " |
staticDuration |
Thời gian di chuyển qua tuyến đường mà không tính đến điều kiện giao thông. Khoảng thời gian tính bằng giây có tối đa 9 chữ số thập phân, kết thúc bằng " |
polyline |
Tổng thể tuyến đường đa tuyến. Hình nhiều đường này sẽ là hình đa giác kết hợp của tất cả |
description |
Thông tin mô tả tuyến đường. |
warnings[] |
Một loạt các cảnh báo cần hiển thị khi hiển thị tuyến đường. |
viewport |
Hộp giới hạn khung nhìn của polyline. |
travelAdvisory |
Thông tin bổ sung về tuyến đường. |
routeToken |
Mã thông báo tuyến đường được mã hóa base64 an toàn cho web có thể được chuyển tới NavigationSDK, cho phép SDK điều hướng tạo lại tuyến trong quá trình điều hướng và trong trường hợp định tuyến lại tôn trọng ý định ban đầu khi Tuyến đường v2.computeRoutes. Khách hàng nên coi mã thông báo này là một blob mờ. LƯU Ý: |
Nhãn định tuyến
Các nhãn cho Route
hữu ích để xác định các thuộc tính cụ thể của tuyến đường để so sánh với các thuộc tính khác.
Enum | |
---|---|
ROUTE_LABEL_UNSPECIFIED |
Mặc định – không được sử dụng. |
DEFAULT_ROUTE |
Tuyến đường "tốt nhất" mặc định được trả về để tính toán tuyến đường. |
DEFAULT_ROUTE_ALTERNATE |
Một tuyến đường thay thế cho tuyến đường "tốt nhất" mặc định. Các tuyến đường như thế này sẽ được trả về khi computeAlternativeRoutes được chỉ định. |
FUEL_EFFICIENT |
Tuyến đường tiết kiệm nhiên liệu. Các tuyến đường được gắn nhãn với giá trị này được xác định là tối ưu hóa cho các thông số Eco như mức tiêu thụ nhiên liệu. |
Tuyến đường
Đóng gói một phân đoạn giữa các điểm trung gian không phải via
.
Biểu diễn dưới dạng JSON |
---|
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object ( |
Các trường | |
---|---|
distanceMeters |
Khoảng cách di chuyển của chân tuyến đường, tính bằng mét. |
duration |
Khoảng thời gian cần thiết để di chuyển ở chân. Nếu bạn đặt Khoảng thời gian tính bằng giây có tối đa 9 chữ số thập phân, kết thúc bằng " |
staticDuration |
Thời gian di chuyển qua chặng đường, được tính toán mà không tính đến điều kiện giao thông. Khoảng thời gian tính bằng giây có tối đa 9 chữ số thập phân, kết thúc bằng " |
polyline |
Hình nhiều đường tổng thể cho chân này. Điều này bao gồm nhiều đường liên kết của mỗi |
startLocation |
Vị trí bắt đầu của chân này. Giá trị này có thể khác với |
endLocation |
Vị trí kết thúc của chân này. Giá trị này có thể khác với |
steps[] |
Một loạt các bước biểu thị các phân khúc trong chân này. Mỗi bước đại diện cho một hướng dẫn điều hướng. |
travelAdvisory |
Bao gồm các thông tin bổ sung mà người dùng cần được thông báo, chẳng hạn như hạn chế vùng giao thông có thể bị ảnh hưởng, v.v. ở một tuyến đường. |
Hình nhiều đường
Đóng gói một polyline mã hoá.
Biểu diễn dưới dạng JSON |
---|
{ // Union field |
Các trường | |
---|---|
Trường liên kết polyline_type . Đóng gói loại polyline. Giá trị mặc định làEncrypt_polyline. polyline_type chỉ có thể là một trong những trạng thái sau: |
|
encodedPolyline |
Phương thức mã hoá chuỗi của polyline bằng thuật toán mã hoá polyline |
geoJsonLinestring |
Chỉ định một hình nhiều đường bằng cách sử dụng định dạng GeoLine LineString |
Tuyến đường
Đóng gói một phân đoạn của RouteLeg
. Một bước tương ứng với một lệnh điều hướng duy nhất. Chân của tuyến đường bao gồm các bước.
Biểu diễn dưới dạng JSON |
---|
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object ( |
Các trường | |
---|---|
distanceMeters |
Khoảng cách di chuyển của bước này, tính bằng mét. Trong một số trường hợp, trường này có thể không có giá trị. |
staticDuration |
Thời gian di chuyển qua bước này mà không tính đến điều kiện giao thông. Trong một số trường hợp, trường này có thể không có giá trị. Khoảng thời gian tính bằng giây có tối đa 9 chữ số thập phân, kết thúc bằng " |
polyline |
Hình nhiều đường liên kết với bước này. |
startLocation |
Vị trí bắt đầu của bước này. |
endLocation |
Vị trí kết thúc của bước này. |
navigationInstruction |
Hướng dẫn điều hướng. |
travelAdvisory |
Đóng gói thông tin bổ sung mà người dùng nên được thông báo, chẳng hạn như hạn chế vùng lưu lượng truy cập có thể có ở bước chân. |
Thao tác
Một tập hợp các giá trị chỉ định hành động điều hướng cần thực hiện cho bước hiện tại (ví dụ: rẽ trái, hợp nhất, thẳng, v.v.).
Enum | |
---|---|
MANEUVER_UNSPECIFIED |
Không được sử dụng. |
TURN_SLIGHT_LEFT |
Xoay một chút sang trái. |
TURN_SHARP_LEFT |
Xoay mạnh sang trái. |
UTURN_LEFT |
Vòng ngược lại bên trái. |
TURN_LEFT |
Rẽ trái. |
TURN_SLIGHT_RIGHT |
Xoay một chút sang phải. |
TURN_SHARP_RIGHT |
Xoay mạnh sang phải. |
UTURN_RIGHT |
Vòng ngược lại bên phải. |
TURN_RIGHT |
Rẽ phải. |
STRAIGHT |
Đi thẳng. |
RAMP_LEFT |
Đi theo đoạn đường nối bên trái. |
RAMP_RIGHT |
Đi theo đoạn đường dốc bên phải. |
MERGE |
Hợp nhất thành lưu lượng truy cập. |
FORK_LEFT |
Đi theo bên trái. |
FORK_RIGHT |
Đi theo bên phải. |
FERRY |
Đi phà. |
FERRY_TRAIN |
Đi tàu lên phà. |
ROUNDABOUT_LEFT |
Rẽ trái tại vòng xoay. |
ROUNDABOUT_RIGHT |
Rẽ phải tại vòng tròn. |
Tuyến đường du lịch
Đóng gói thông tin bổ sung mà người dùng nên được thông báo, chẳng hạn như hạn chế vùng lưu lượng truy cập có thể có ở bước chân.
Biểu diễn dưới dạng JSON |
---|
{
"speedReadingIntervals": [
{
object ( |
Các trường | |
---|---|
speedReadingIntervals[] |
LƯU Ý: Hiện tại, trường này chưa được điền sẵn. |
Tuyến đường du lịch
Bao gồm các thông tin bổ sung mà người dùng cần được thông báo, chẳng hạn như hạn chế vùng giao thông có thể bị ảnh hưởng, v.v. ở một tuyến đường.
Biểu diễn dưới dạng JSON |
---|
{ "tollInfo": { object ( |
Các trường | |
---|---|
tollInfo |
Đóng gói thông tin về trạm thu phí trên RouteLeg cụ thể. Trường này chỉ được điền sẵn nếu chúng tôi dự kiến sẽ có trạm thu phí trên RouteLeg. Nếu bạn đặt trường này nhưng trường con pricePrice ước tính không được điền, chúng tôi dự kiến rằng đường đó sẽ chứa phí cầu đường nhưng chúng tôi không biết giá ước tính. Nếu trường này không tồn tại, thì không có phí cầu đường trên RouteLeg. |
speedReadingIntervals[] |
Tốc độ đọc chi tiết nêu rõ mật độ giao thông. Có thể áp dụng trong trường hợp tuỳ chọn định tuyến Ví dụ:
|
Khung nhìn
Khung nhìn vĩ độ — kinh độ, được biểu thị dưới dạng hai đường chéo low
và high
điểm. Khung nhìn được coi là một vùng đóng, tức là khung nhìn bao gồm ranh giới của vùng đó. Giới hạn vĩ độ phải nằm trong khoảng từ -90 đến 90 độ và giới hạn kinh độ phải nằm trong khoảng từ -180 đến 180 độ. Các trường hợp khác nhau bao gồm:
Nếu
low
=high
, khung nhìn bao gồm điểm duy nhất đó.Nếu
low.longitude
>high.longitude
, phạm vi kinh độ sẽ bị đảo ngược (khung nhìn vượt qua đường kinh độ 180 độ).Nếu
low.longitude
= -180 độ vàhigh.longitude
= 180 độ, khung nhìn sẽ bao gồm tất cả các kinh độ.Nếu
low.longitude
= 180 độ vàhigh.longitude
= -180 độ, thì phạm vi kinh độ sẽ trống.Nếu
low.latitude
>high.latitude
, phạm vi vĩ độ trống.
Bạn phải điền cả low
và high
, và không được để trống hộp đại diện (như đã xác định trong các định nghĩa ở trên). Một khung nhìn trống sẽ dẫn đến lỗi.
Ví dụ: khung nhìn này bao quanh hoàn toàn Thành phố New York:
{ "thấp": { "vĩ độ": 40.477398, "kinh độ": -74.259087 }, "cao": { "vĩ độ": 40.91618, "kinh độ": -73.70018 } }
Biểu diễn dưới dạng JSON |
---|
{ "low": { object ( |
Các trường | |
---|---|
low |
Bắt buộc. Điểm thấp của khung nhìn. |
high |
Bắt buộc. Điểm cao của khung nhìn. |
Mã hoá kết quả địa lý
Chứa GeocodedWaypoints
cho điểm xuất phát, điểm đến và điểm trung gian. Chỉ được điền sẵn cho các điểm tham chiếu địa chỉ.
Biểu diễn dưới dạng JSON |
---|
{ "origin": { object ( |
Các trường | |
---|---|
origin |
Điểm xuất phát được mã hóa địa lý gốc. |
destination |
Điểm tham chiếu được mã hóa địa lý đích. |
intermediates[] |
Danh sách các điểm tham chiếu được mã hóa trung gian, mỗi điểm chứa một trường chỉ mục tương ứng với vị trí dựa trên 0 của điểm tham chiếu theo thứ tự được chỉ định trong yêu cầu. |
Điểm mã hoá địa lý
Thông tin chi tiết về các địa điểm được dùng làm điểm trung gian. Chỉ được điền sẵn cho các điểm tham chiếu địa chỉ. Bao gồm thông tin chi tiết về kết quả mã hoá địa lý nhằm mục đích xác định địa chỉ nào được mã hoá địa lý.
Biểu diễn dưới dạng JSON |
---|
{
"geocoderStatus": {
object ( |
Các trường | |
---|---|
geocoderStatus |
Cho biết mã trạng thái từ hoạt động mã hoá địa lý. |
type[] |
(Các) loại kết quả, ở dạng không hoặc nhiều thẻ loại. Các loại được hỗ trợ: https://developers.google.com/maps/documentation/geocodes/requests-geocodes#Types |
partialMatch |
Cho biết rằng bộ mã hoá dữ liệu không trả về kết quả khớp chính xác với yêu cầu ban đầu, mặc dù bộ mã hoá có thể so khớp một phần của địa chỉ đã yêu cầu. Bạn nên kiểm tra yêu cầu ban đầu để tìm lỗi chính tả và/hoặc địa chỉ không đầy đủ. |
placeId |
Mã địa điểm của kết quả này. |
intermediateWaypointRequestIndex |
Chỉ mục của điểm trung gian tương ứng trong yêu cầu. Chỉ được điền nếu điểm trung gian tương ứng là điểm trung gian. |