Method: computeRoutes

Trả về tuyến đường 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 tập hợp các điểm trung gian và điểm cuối.

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 các tham số và tiêu đề URL hiện có). Giá trị này là danh sách đườ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 tạo đườ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, khoảng cách và đường đa tuyến ở cấp Tuyến (ví dụ về chế độ thiết lập chính thức): X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline

Google không khuyến khích việc 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 những trường mà bạn cần giúp máy chủ của chúng tôi tiết kiệm đượ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 độ trễ ổn định. Trong tương lai, chúng tôi có thể thêm các trường phản hồi khác và các trường mới đó có thể cần thêm thời gian tính toán. Nếu chọn tất cả các trường hoặc nếu 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 vì mọi trường mới mà chúng tôi thêm vào sẽ tự động được đưa vào phản hồi.
  • Việc chỉ chọn các trường mà bạn cần sẽ giúp giảm kích thước phản hồi, nhờ đó tăng băng thông mạng.

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

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng JSON
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "intermediates": [
    {
      object (Waypoint)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "polylineQuality": enum (PolylineQuality),
  "polylineEncoding": enum (PolylineEncoding),
  "departureTime": string,
  "arrivalTime": string,
  "computeAlternativeRoutes": boolean,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "languageCode": string,
  "regionCode": string,
  "units": enum (Units),
  "optimizeWaypointOrder": boolean,
  "requestedReferenceRoutes": [
    enum (ReferenceRoute)
  ],
  "extraComputations": [
    enum (ExtraComputation)
  ],
  "trafficModel": enum (TrafficModel),
  "transitPreferences": {
    object (TransitPreferences)
  }
}
Trường
origin

object (Waypoint)

Bắt buộc. Điểm tham chiếu gốc.

destination

object (Waypoint)

Bắt buộc. Điểm trung gian đến.

intermediates[]

object (Waypoint)

Không bắt buộc. Một tập hợp các điểm trung gian dọc theo tuyến đường (ngoại trừ các điểm cuối), để dừng lại hoặc đi qua. Hỗ trợ tối đa 25 điểm trung gian.

travelMode

enum (RouteTravelMode)

Không bắt buộc. Chỉ định phương tiện giao thông.

routingPreference

enum (RoutingPreference)

Không bắt buộc. Chỉ định cách tính toán tuyến đường. Máy chủ sẽ cố gắng sử dụng lựa chọn ưu tiên định tuyến đã chọn để tính toán tuyến. Nếu lựa chọn ưu tiên định tuyến dẫn đến lỗi hoặc độ trễ quá dài, thì hệ thống sẽ trả về lỗi. Bạn chỉ có thể chỉ định tuỳ chọn này khi travelModeDRIVE hoặc TWO_WHEELER, nếu không yêu cầu sẽ không thành công.

polylineQuality

enum (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 tuyến.

polylineEncoding

enum (PolylineEncoding)

Không bắt buộc. Chỉ định cách mã hoá ưu tiên cho đường đa tuyến.

departureTime

string (Timestamp format)

Không bắt buộc. Thời gian khởi hành. Nếu bạn không đặt giá trị này, thì giá trị này sẽ mặc định là thời điểm bạn đưa ra yêu cầu. LƯU Ý: Bạn chỉ có thể chỉ định departureTime trong quá khứ khi RouteTravelMode được đặt thành TRANSIT. Bạn có thể xem thông tin về 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 100 ngày sau.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

arrivalTime

string (Timestamp format)

Không bắt buộc. Thời gian đến. LƯU Ý: Bạn chỉ có thể đặt khi RouteTravelMode được đặt thành TRANSIT. Bạn có thể chỉ định departureTime hoặc arrivalTime, nhưng không được chỉ định cả hai. Bạn có thể xem thông tin về 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 100 ngày sau.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

computeAlternativeRoutes

boolean

Không bắt buộc. Chỉ định xem có tính 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 các yêu cầu có điểm trung gian.

routeModifiers

object (RouteModifiers)

Không bắt buộc. Một tập hợp các điều kiện cần đáp ứng ảnh hưởng đến cách tính toán tuyến.

languageCode

string

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 phần Giá trị nhận dạng ngôn ngữ Unicode. Hãy xem phần 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ị sẽ được suy ra từ vị trí của yêu cầu định tuyến.

regionCode

string

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 bài viết Miền cấp cao nhất theo mã quốc gia.

units

enum (Units)

Không bắt buộc. Chỉ định đơn vị đo lường cho các trường hiển thị. Các trường này bao gồm trường instruction trong NavigationInstruction. Giá trị này không ảnh hưởng đến các đơn vị đo lường được dùng cho tuyến đường, chặng, khoảng cách bước và thời lượng. Nếu bạn không cung cấp giá trị này, thì các đơn vị hiển thị sẽ được suy ra từ vị trí của nguồn gốc đầu tiên.

optimizeWaypointOrder

boolean

Không bắt buộc. Nếu bạn đặt thành true, dịch vụ sẽ cố gắng giảm thiểu tổng chi phí của tuyến đường bằng cách sắp xếp lại các điểm trung gian đã chỉ định. Yêu cầu sẽ không thành công nếu có điểm trung gian nào đó là điểm trung gian via. Sử dụng ComputeRoutesResponse.Routes.optimized_intermediate_waypoint_index để tìm thứ tự mới. Nếu bạn không yêu cầu ComputeRoutesResponseroutes.optimized_intermediate_waypoint_index trong tiêu đề X-Goog-FieldMask, yêu cầu sẽ không thành công. Nếu bạn đặt optimizeWaypointOrder thành false, ComputeRoutesResponse.optimized_intermediate_waypoint_index sẽ trống.

requestedReferenceRoutes[]

enum (ReferenceRoute)

Không bắt buộc. Chỉ định các tuyến đường tham chiếu cần tính toán trong yêu cầu ngoài tuyến đường mặc định. Tuyến tham chiếu là tuyến có mục tiêu tính toán tuyến khác với tuyến mặc định. Ví dụ: tính toán tuyến đường tham chiếu FUEL_EFFICIENT sẽ tính đến nhiều tham số để tạo ra tuyến đường tiết kiệm nhiên liệu tối ưu. Khi sử dụng tính năng này, hãy tìm routeLabels trên các tuyến đường thu được.

extraComputations[]

enum (ExtraComputation)

Không bắt buộc. Danh sách các phép tính bổ sung có thể được dùng để hoàn tất 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 để được trả về trong phản hồi.

trafficModel

enum (TrafficModel)

Không bắt buộc. Chỉ định các giả định cần sử dụng khi tính 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 thời lượng trong RouteRouteLeg. Trường này chứa thời gian dự đoán trong lưu lượng truy cập dựa trên mức trung bình trước đây. TrafficModel chỉ dùng được cho các yêu cầu đã đặt RoutingPreference thành TRAFFIC_AWARE_OPTIMALRouteTravelMode thành DRIVE. Mặc định là BEST_GUESS nếu lưu lượng truy cập được yêu cầu và TrafficModel không được chỉ định.

transitPreferences

object (TransitPreferences)

Không bắt buộc. Chỉ định các tuỳ chọn ưu tiên ảnh hưởng đến tuyến đường được trả về cho các tuyến đường TRANSIT. LƯU Ý: Bạn chỉ có thể chỉ định transitPreferences khi RouteTravelMode được đặt thành TRANSIT.

Nội dung phản hồi

v2.computeRoutes thông báo 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:

Biểu diễn dưới dạng JSON
{
  "routes": [
    {
      object (Route)
    }
  ],
  "fallbackInfo": {
    object (FallbackInfo)
  },
  "geocodingResults": {
    object (GeocodingResults)
  }
}
Trường
routes[]

object (Route)

Chứa một mảng các tuyến đường đã tính toán (tối đa 3) khi bạn chỉ định compute_alternatives_routes và chỉ chứa một tuyến đường khi bạn không chỉ định. Khi mảng này chứa nhiều mục nhập, mục nhập đầu tiên là tuyến đường được đề xuất nhất. Nếu mảng này trống, thì tức là không tìm thấy tuyến đường nào.

fallbackInfo

object (FallbackInfo)

Trong một số trường hợp, khi không thể tính toán kết quả tuyến đường bằng tất cả các tuỳ chọn ưu tiên đầu vào, máy chủ có thể sử dụng một phương thức tính toán khác. Khi chế độ dự phòng được sử dụng, trường này sẽ chứa thông tin chi tiết về phản hồi dự phòng. Nếu không, trường này sẽ không được đặt.

geocodingResults

object (GeocodingResults)

Chứa thông tin phản hồi về việc mã hoá địa lý cho các điểm trung gian được chỉ định dưới dạng địa chỉ.

PolylineQuality

Một tập hợp các giá trị chỉ định chất lượng của đa tuyến.

Enum
POLYLINE_QUALITY_UNSPECIFIED Chưa chỉ định lựa chọn ưu tiên về chất lượng đường đa tuyến. Giá trị mặc định là OVERVIEW.
HIGH_QUALITY Chỉ định một đa tuyến chất lượng cao – được tạo bằng nhiều điểm hơn OVERVIEW, nhưng kích thước phản hồi sẽ tăng lên. Sử dụng giá trị này khi bạn cần độ chính xác cao hơn.
OVERVIEW Chỉ định một đường đa tuyến tổng quan – được tạo bằng một số ít điểm. Sử dụng giá trị này khi hiển thị thông tin tổng quan về tuyến đường. Khi sử dụng tuỳ chọn này, độ trễ yêu cầu sẽ thấp hơn so với khi sử dụng tuỳ chọn HIGH_QUALITY.

PolylineEncoding

Chỉ định loại đường đa tuyến ưu tiên được trả về.

Enum
POLYLINE_ENCODING_UNSPECIFIED Không chỉ định loại đường đa tuyến. Giá trị mặc định là ENCODED_POLYLINE.
ENCODED_POLYLINE Chỉ định một đa tuyến được mã hoá bằng thuật toán mã hoá đa tuyến.
GEO_JSON_LINESTRING Chỉ định một đa tuyến bằng định dạng GeoJSON LineString

ReferenceRoute

Một 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 sẽ không thành công.
FUEL_EFFICIENT Tuyến đường tiết kiệm nhiên liệu.
SHORTER_DISTANCE

Tuyến đường có quãng đường di chuyển ngắn hơn. Đây là tính năng thử nghiệm.

Đối với các yêu cầu DRIVE, tính năng này ưu tiên quãng đường ngắn hơn so với sự thoải mái khi lái xe. Ví dụ: tính năng này có thể ưu tiên đường địa phương thay vì đường cao tốc, đi theo đường đất, cắt ngang bãi đỗ xe, v.v. Tính năng này không trả về bất kỳ thao tác nào mà Google Maps biết là bất hợp pháp.

Đối với các yêu cầu BICYCLETWO_WHEELER, tính năng này trả về các tuyến tương tự như các tuyến được trả về khi bạn không chỉ định requestedReferenceRoutes.

Tính năng này không tương thích với bất kỳ phương thức di chuyển nào khác, thông qua các điểm trung gian hoặc optimizeWaypointOrder; các yêu cầu như vậy sẽ không thành công. Tuy nhiên, bạn có thể sử dụng nó với bất kỳ routingPreference nào.

ExtraComputation

Các phép tính bổ sung cần thực hiện trong khi hoàn tất 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 có tính năng nhận biết tình hình giao thông cho(các) tuyến đường.
HTML_FORMATTED_NAVIGATION_INSTRUCTIONS NavigationInstructions được trình bày dưới dạng một chuỗi văn bản HTML được định dạng. Nội dung này được đọc nguyên trạng. Nội dung này chỉ để hiển thị. Không phân tích cú pháp theo phương thức lập trình.

Tuyến đường

Chứa một tuyến đường, bao gồm một loạt các đoạn đường được kết nối với nhau, nối các điểm bắt đầu, điểm kết thúc và điểm trung gian.

Biểu diễn dưới dạng JSON
{
  "routeLabels": [
    enum (RouteLabel)
  ],
  "legs": [
    {
      object (RouteLeg)
    }
  ],
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "description": string,
  "warnings": [
    string
  ],
  "viewport": {
    object (Viewport)
  },
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "optimizedIntermediateWaypointIndex": [
    integer
  ],
  "localizedValues": {
    object (RouteLocalizedValues)
  },
  "routeToken": string
}
Trường
routeLabels[]

enum (RouteLabel)

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 tuyến đường khác.

legs[]

object (RouteLeg)

Tập hợp các chặng (phân đoạn đường dẫn giữa các điểm trung gian) tạo nên tuyến đường. Mỗi chặng tương ứng với chuyến đi giữa hai Waypoints không phải via. Ví dụ: một tuyến đường không có điểm trung gian chỉ có một chặng. Một tuyến đường có một điểm trung gian không phải via sẽ có hai chặng. Một tuyến đường có một điểm trung gian via sẽ có một chặng. Thứ tự của các chặng khớp với thứ tự của các điểm trung gian từ origin đến intermediates đến destination.

distanceMeters

integer

Quãng đường đi của tuyến đường, tính bằng mét.

duration

string (Duration format)

Khoảng thời gian cần thiết để đi theo tuyến đường. Nếu bạn đặt routingPreference thành TRAFFIC_UNAWARE, thì giá trị này sẽ giống với staticDuration. Nếu bạn đặt routingPreference thành TRAFFIC_AWARE hoặc TRAFFIC_AWARE_OPTIMAL, thì giá trị này sẽ được tính toán có tính đến điều kiện giao thông.

Thời lượng tính bằng giây, có tối đa 9 chữ số thập phân, kết thúc bằng "s". Ví dụ: "3.5s".

staticDuration

string (Duration format)

Thời gian di chuyển qua tuyến đường mà không tính đến tình trạng giao thông.

Thời lượng tính bằng giây, có tối đa 9 chữ số thập phân, kết thúc bằng "s". Ví dụ: "3.5s".

polyline

object (Polyline)

Hình nhiều đường của tuyến đường tổng thể. Đường đa tuyến này là đường đa tuyến kết hợp của tất cả legs.

description

string

Nội dung mô tả tuyến đường.

warnings[]

string

Một mảng cảnh báo sẽ hiển thị khi hiển thị tuyến đường.

viewport

object (Viewport)

Hộp giới hạn khung nhìn của đường đa tuyến.

travelAdvisory

object (RouteTravelAdvisory)

Thông tin bổ sung về tuyến đường.

optimizedIntermediateWaypointIndex[]

integer

Nếu bạn đặt optimizeWaypointOrder thành true, trường này sẽ chứa thứ tự tối ưu hoá của các điểm trung gian. Nếu không, trường này sẽ trống. Ví dụ: nếu bạn nhập thông tin đầu vào là Điểm xuất phát: LA; Điểm trung gian: Dallas, Bangor, Phoenix; Điểm đến: New York; và thứ tự điểm trung gian được tối ưu hoá là Phoenix, Dallas, Bangor, thì trường này sẽ chứa các giá trị [2, 0, 1]. Chỉ mục bắt đầu bằng 0 cho điểm trung gian đầu tiên được cung cấp trong dữ liệu đầu vào.

localizedValues

object (RouteLocalizedValues)

Biểu diễn văn bản của các thuộc tính của Route.

routeToken

string

Mã thông báo mờ có thể được truyền đến Navigation SDK để tái tạo tuyến đường trong quá trình điều hướng và trong trường hợp định tuyến lại, hãy tuân thủ ý định ban đầu khi tạo tuyến đường. Xem mã thông báo này là một blob mờ. Đừng so sánh giá trị của thuộc tính này trên các yêu cầu vì giá trị của thuộc tính này có thể thay đổi ngay cả khi dịch vụ trả về cùng một tuyến.

LƯU Ý: Route.route_token chỉ dùng được cho các yêu cầu đã đặt ComputeRoutesRequest.routing_preference thành TRAFFIC_AWARE hoặc TRAFFIC_AWARE_OPTIMAL. Route.route_token không được hỗ trợ cho các yêu cầu có điểm trung gian Via.

RouteLabel

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 tuyến đường 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ề cho quá trình 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 bạn chỉ định computeAlternativeRoutes.
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à được tối ưu hoá cho các tham số Tiết kiệm, chẳng hạn như mức tiêu thụ nhiên liệu.
SHORTER_DISTANCE Tuyến đường có quãng đường di chuyển ngắn hơn. Đây là tính năng thử nghiệm.

RouteLeg

Chứa một đ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 (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "steps": [
    {
      object (RouteLegStep)
    }
  ],
  "travelAdvisory": {
    object (RouteLegTravelAdvisory)
  },
  "localizedValues": {
    object (RouteLegLocalizedValues)
  },
  "stepsOverview": {
    object (StepsOverview)
  }
}
Trường
distanceMeters

integer

Khoảng cách di chuyển của chặng đường, tính bằng mét.

duration

string (Duration format)

Khoảng thời gian cần thiết để di chuyển chặng bay. Nếu bạn đặt route_preference thành TRAFFIC_UNAWARE, thì giá trị này sẽ giống với staticDuration. Nếu route_preferenceTRAFFIC_AWARE hoặc TRAFFIC_AWARE_OPTIMAL, thì giá trị này sẽ được tính toán dựa trên điều kiện giao thông.

Thời lượng tính bằng giây, có tối đa 9 chữ số thập phân, kết thúc bằng "s". Ví dụ: "3.5s".

staticDuration

string (Duration format)

Thời gian di chuyển qua chặng, được tính toán mà không tính đến tình trạng giao thông.

Thời lượng tính bằng giây, có tối đa 9 chữ số thập phân, kết thúc bằng "s". Ví dụ: "3.5s".

polyline

object (Polyline)

Đường đa tuyến tổng thể cho chặng này bao gồm đường đa tuyến của mỗi step.

startLocation

object (Location)

Vị trí bắt đầu của chặng này. Vị trí này có thể khác với origin đã cung cấp. Ví dụ: khi origin được cung cấp không ở gần đường, thì đây là một điểm trên đường.

endLocation

object (Location)

Vị trí kết thúc của chặng này. Vị trí này có thể khác với destination đã cung cấp. Ví dụ: khi destination được cung cấp không ở gần đường, thì đây là một điểm trên đường.

steps[]

object (RouteLegStep)

Một mảng các bước biểu thị các phân đoạn trong chặng này. Mỗi bước đại diện cho một hướng dẫn điều hướng.

travelAdvisory

object (RouteLegTravelAdvisory)

Chứa thông tin bổ sung mà người dùng cần được thông báo, chẳng hạn như các quy định hạn chế có thể có trong khu vực giao thông, trên một chặng đường.

localizedValues

object (RouteLegLocalizedValues)

Biểu diễn văn bản của các thuộc tính của RouteLeg.

stepsOverview

object (StepsOverview)

Thông tin tổng quan về các bước trong RouteLeg này. Trường này chỉ được điền sẵn cho các tuyến PHƯƠNG TIỆN CÔNG CỘNG.

Hình nhiều đường

Đóng gói một đường đa tuyến đã mã hoá.

Biểu diễn dưới dạng JSON
{

  // Union field polyline_type can be only one of the following:
  "encodedPolyline": string,
  "geoJsonLinestring": {
    object
  }
  // End of list of possible types for union field polyline_type.
}
Trường
Trường hợp hợp nhất polyline_type. Đóng gói loại đường đa tuyến. Giá trị mặc định là encoded_polyline. polyline_type chỉ có thể là một trong những giá trị sau:
encodedPolyline

string

Mã hoá chuỗi của đa tuyến bằng thuật toán mã hoá đa tuyến

geoJsonLinestring

object (Struct format)

Chỉ định một đa tuyến bằng định dạng GeoJSON LineString.

RouteLegStep

Chứa một phân đoạn của RouteLeg. Một bước tương ứng với một hướng dẫn điều hướng. Các chặng đường bao gồm các bước.

Biểu diễn dưới dạng JSON
{
  "distanceMeters": integer,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "navigationInstruction": {
    object (NavigationInstruction)
  },
  "travelAdvisory": {
    object (RouteLegStepTravelAdvisory)
  },
  "localizedValues": {
    object (RouteLegStepLocalizedValues)
  },
  "transitDetails": {
    object (RouteLegStepTransitDetails)
  },
  "travelMode": enum (RouteTravelMode)
}
Trường
distanceMeters

integer

Quãng đường 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

string (Duration format)

Thời gian di chuyển qua bước này mà không tính đến tình trạng giao thông. Trong một số trường hợp, trường này có thể không có giá trị.

Thời lượng tính bằng giây, có tối đa 9 chữ số thập phân, kết thúc bằng "s". Ví dụ: "3.5s".

polyline

object (Polyline)

Đường đa tuyến liên kết với bước này.

startLocation

object (Location)

Vị trí bắt đầu của bước này.

endLocation

object (Location)

Vị trí kết thúc của bước này.

navigationInstruction

object (NavigationInstruction)

Hướng dẫn điều hướng.

travelAdvisory

object (RouteLegStepTravelAdvisory)

Chứa thông tin bổ sung mà người dùng cần được thông báo, chẳng hạn như các quy định hạn chế có thể có đối với khu vực giao thông, trong một bước của chặng.

localizedValues

object (RouteLegStepLocalizedValues)

Biểu diễn văn bản của các thuộc tính của RouteLegStep.

transitDetails

object (RouteLegStepTransitDetails)

Thông tin chi tiết liên quan đến bước này nếu chế độ đi lại là TRANSIT.

travelMode

enum (RouteTravelMode)

Phương thức di chuyển được sử dụng cho bước này.

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, nhập hoặc đi thẳng).

Enum
MANEUVER_UNSPECIFIED Không được sử dụng.
TURN_SLIGHT_LEFT Rẽ nhẹ sang trái.
TURN_SHARP_LEFT Rẽ trái đột ngột.
UTURN_LEFT Rẽ trái rồi rẽ ngược lại.
TURN_LEFT Rẽ trái.
TURN_SLIGHT_RIGHT Xoay nhẹ sang phải.
TURN_SHARP_RIGHT Rẽ ngoặt sang phải.
UTURN_RIGHT Rẽ phải rồi rẽ ngược lại.
TURN_RIGHT Rẽ phải.
STRAIGHT Đi thẳng.
RAMP_LEFT Đi theo đường dốc bên trái.
RAMP_RIGHT Đi theo đường dốc bên phải.
MERGE Hợp nhất vào luồng giao thông.
FORK_LEFT Rẽ trái.
FORK_RIGHT Rẽ phải.
FERRY Đi phà.
FERRY_TRAIN Đi tàu đến phà.
ROUNDABOUT_LEFT Rẽ trái tại vòng xoay.
ROUNDABOUT_RIGHT Rẽ phải tại vòng xoay.
DEPART Thao tác ban đầu.
NAME_CHANGE Dùng để cho biết tên đường đã thay đổi.

RouteLegStepTravelAdvisory

Chứa thông tin bổ sung mà người dùng cần được thông báo, chẳng hạn như các quy định hạn chế có thể có đối với khu vực giao thông trên một bước đi.

Biểu diễn dưới dạng JSON
{
  "speedReadingIntervals": [
    {
      object (SpeedReadingInterval)
    }
  ]
}
Trường
speedReadingIntervals[]

object (SpeedReadingInterval)

LƯU Ý: Trường này hiện chưa được điền sẵn.

RouteLegStepLocalizedValues

Biểu thị văn bản của một số thuộc tính.

Biểu diễn dưới dạng JSON
{
  "distance": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  }
}
Trường
distance

object (LocalizedText)

Khoảng cách di chuyển được thể hiện ở dạng văn bản.

staticDuration

object (LocalizedText)

Thời lượng mà không xem xét đến điều kiện lưu lượng truy cập, được thể hiện ở dạng văn bản.

RouteLegStepTransitDetails

Thông tin bổ sung cho RouteLegStep liên quan đến các tuyến TRANSIT.

Biểu diễn dưới dạng JSON
{
  "stopDetails": {
    object (TransitStopDetails)
  },
  "localizedValues": {
    object (TransitDetailsLocalizedValues)
  },
  "headsign": string,
  "headway": string,
  "transitLine": {
    object (TransitLine)
  },
  "stopCount": integer,
  "tripShortText": string
}
Trường
stopDetails

object (TransitStopDetails)

Thông tin về điểm đến và điểm khởi hành của bước.

localizedValues

object (TransitDetailsLocalizedValues)

Biểu diễn văn bản của các thuộc tính của RouteLegStepTransitDetails.

headsign

string

Chỉ định hướng di chuyển trên tuyến này như được đánh dấu trên xe hoặc tại điểm dừng khởi hành. Hướng thường là ga cuối.

headway

string (Duration format)

Chỉ định thời gian dự kiến dưới dạng thời lượng giữa các chuyến khởi hành từ cùng một điểm dừng tại thời điểm này. Ví dụ: với giá trị khoảng thời gian giữa các chuyến xe là 600 giây, bạn sẽ phải chờ 10 phút nếu lỡ chuyến xe buýt.

Thời lượng tính bằng giây, có tối đa 9 chữ số thập phân, kết thúc bằng "s". Ví dụ: "3.5s".

transitLine

object (TransitLine)

Thông tin về tuyến phương tiện công cộng được sử dụng trong bước này.

stopCount

integer

Số điểm dừng từ điểm khởi hành đến điểm đến. Số lượng này bao gồm điểm dừng đến nhưng không bao gồm điểm dừng khởi hành. Ví dụ: nếu tuyến xe buýt của bạn khởi hành từ Bến A, đi qua các bến B và C rồi đến bến D,

stopCount

trả về 3.

tripShortText

string

Văn bản xuất hiện trong lịch trình và bảng hiệu để xác định chuyến đi bằng phương tiện công cộng cho hành khách. Văn bản phải xác định một chuyến đi trong một ngày hoạt động. Ví dụ: "538" là tripShortText của chuyến tàu Amtrak khởi hành từ San Jose, California lúc 15:10 vào các ngày trong tuần đến Sacramento, California.

TransitStopDetails

Thông tin chi tiết về các trạm trung chuyển của RouteLegStep.

Biểu diễn dưới dạng JSON
{
  "arrivalStop": {
    object (TransitStop)
  },
  "arrivalTime": string,
  "departureStop": {
    object (TransitStop)
  },
  "departureTime": string
}
Trường
arrivalStop

object (TransitStop)

Thông tin về điểm dừng đến của bước.

arrivalTime

string (Timestamp format)

Thời gian đến dự kiến của bước.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

departureStop

object (TransitStop)

Thông tin về điểm dừng khởi hành của bước.

departureTime

string (Timestamp format)

Thời gian khởi hành ước tính cho bước này.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

TransitStop

Thông tin về trạm trung chuyển.

Biểu diễn dưới dạng JSON
{
  "name": string,
  "location": {
    object (Location)
  }
}
Trường
name

string

Tên của điểm dừng phương tiện công cộng.

location

object (Location)

Vị trí của trạm dừng được biểu thị bằng toạ độ vĩ độ/kinh độ.

TransitDetailsLocalizedValues

Nội dung mô tả được bản địa hoá về các giá trị cho RouteTransitDetails.

Biểu diễn dưới dạng JSON
{
  "arrivalTime": {
    object (LocalizedTime)
  },
  "departureTime": {
    object (LocalizedTime)
  }
}
Trường
arrivalTime

object (LocalizedTime)

Thời gian được thể hiện dưới dạng văn bản được định dạng với múi giờ tương ứng.

departureTime

object (LocalizedTime)

Thời gian được thể hiện dưới dạng văn bản được định dạng với múi giờ tương ứng.

LocalizedTime

Nội dung mô tả đã bản địa hoá về thời gian.

Biểu diễn dưới dạng JSON
{
  "time": {
    object (LocalizedText)
  },
  "timeZone": string
}
Trường
time

object (LocalizedText)

Thời gian được chỉ định dưới dạng một chuỗi theo múi giờ nhất định.

timeZone

string

Chứa múi giờ. Giá trị này là tên của múi giờ được xác định trong Cơ sở dữ liệu múi giờ IANA, ví dụ: "Hoa Kỳ/New_York".

TransitLine

Chứa thông tin về tuyến phương tiện công cộng được sử dụng trong bước này.

Biểu diễn dưới dạng JSON
{
  "agencies": [
    {
      object (TransitAgency)
    }
  ],
  "name": string,
  "uri": string,
  "color": string,
  "iconUri": string,
  "nameShort": string,
  "textColor": string,
  "vehicle": {
    object (TransitVehicle)
  }
}
Trường
agencies[]

object (TransitAgency)

Công ty vận tải (hoặc các công ty vận tải) vận hành tuyến phương tiện công cộng này.

name

string

Tên đầy đủ của tuyến phương tiện công cộng này. Ví dụ: "8 Avenue Local".

uri

string

URI cho tuyến phương tiện công cộng này do công ty vận tải cung cấp.

color

string

Màu sắc thường dùng trong biển báo cho tuyến đường này. Được biểu thị bằng hệ thập lục phân.

iconUri

string

URI cho biểu tượng liên kết với dòng này.

nameShort

string

Tên ngắn của tuyến phương tiện công cộng này. Tên này thường là số dòng, chẳng hạn như "M7" hoặc "355".

textColor

string

Màu thường dùng trong văn bản trên biển báo cho tuyến này. Được biểu thị bằng hệ thập lục phân.

vehicle

object (TransitVehicle)

Loại phương tiện hoạt động trên tuyến phương tiện công cộng này.

TransitAgency

Một công ty vận tải vận hành một tuyến vận tải.

Biểu diễn dưới dạng JSON
{
  "name": string,
  "phoneNumber": string,
  "uri": string
}
Trường
name

string

Tên của công ty vận tải này.

phoneNumber

string

Số điện thoại của công ty vận tải công cộng được định dạng theo ngôn ngữ của địa phương.

uri

string

URI của công ty vận tải.

TransitVehicle

Thông tin về một phương tiện được sử dụng trong tuyến xe buýt.

Biểu diễn dưới dạng JSON
{
  "name": {
    object (LocalizedText)
  },
  "type": enum (TransitVehicleType),
  "iconUri": string,
  "localIconUri": string
}
Trường
name

object (LocalizedText)

Tên của xe này, viết hoa.

type

enum (TransitVehicleType)

Loại xe được sử dụng.

iconUri

string

URI cho một biểu tượng liên kết với loại xe này.

localIconUri

string

URI cho biểu tượng liên kết với loại xe này, dựa trên biển báo phương tiện giao thông địa phương.

TransitVehicleType

Loại phương tiện cho tuyến đường công cộng.

Enum
TRANSIT_VEHICLE_TYPE_UNSPECIFIED Không sử dụng.
BUS Xe buýt.
CABLE_CAR Xe chạy bằng cáp, thường là trên mặt đất. Cáp treo có thể thuộc loại GONDOLA_LIFT.
COMMUTER_TRAIN Tàu chở khách đi làm.
FERRY Phà.
FUNICULAR Một chiếc xe được kéo lên dốc bằng cáp. Tàu điện trên cáp thường bao gồm hai toa, mỗi toa đóng vai trò là đối trọng cho toa còn lại.
GONDOLA_LIFT Một chiếc cáp treo trên không.
HEAVY_RAIL Đường sắt nặng.
HIGH_SPEED_TRAIN Tàu cao tốc.
INTERCITY_BUS Xe buýt liên thành phố.
LONG_DISTANCE_TRAIN Tàu đường dài.
METRO_RAIL Đường sắt đô thị.
MONORAIL Tàu một ray.
OTHER Tất cả các loại xe khác.
RAIL Đường sắt.
SHARE_TAXI Xe taxi đi chung là một loại xe buýt có thể đón và trả khách ở bất cứ đâu trên tuyến đường của xe.
SUBWAY Xe điện ngầm.
TRAM Xe điện trên mặt đất.
TROLLEYBUS Xe điện bánh hơi.

RouteLegTravelAdvisory

Chứa thông tin bổ sung mà người dùng cần được thông báo về một bước trong chặng, chẳng hạn như các quy định hạn chế có thể có trong khu vực giao thông.

Biểu diễn dưới dạng JSON
{
  "tollInfo": {
    object (TollInfo)
  },
  "speedReadingIntervals": [
    {
      object (SpeedReadingInterval)
    }
  ]
}
Trường
tollInfo

object (TollInfo)

Chứa thông tin về phí cầu đường trên RouteLeg cụ thể. Trường này chỉ được điền nếu chúng tôi dự kiến có đường thu phí trên RouteLeg. Nếu bạn đặt trường này nhưng không điền trường phụ estimatedPrice, thì chúng tôi cho rằng đường đó có thu phí 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[]

object (SpeedReadingInterval)

Khoảng thời gian đọc nhanh nêu chi tiết mật độ lưu lượng truy cập. Áp dụng trong trường hợp lựa chọn ưu tiên định tuyến TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL. Các khoảng thời gian này bao phủ toàn bộ đa tuyến của RouteLeg mà không bị chồng chéo. Điểm bắt đầu của một khoảng thời gian được chỉ định giống với điểm kết thúc của khoảng thời gian trước đó.

Ví dụ:

polyline: A ---- B ---- C ---- D ---- E ---- F ---- G
speedReadingIntervals: [A,C), [C,D), [D,G).

RouteLegLocalizedValues

Biểu thị văn bản của một số thuộc tính.

Biểu diễn dưới dạng JSON
{
  "distance": {
    object (LocalizedText)
  },
  "duration": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  }
}
Trường
distance

object (LocalizedText)

Khoảng cách di chuyển được thể hiện ở dạng văn bản.

duration

object (LocalizedText)

Thời lượng, được biểu thị ở dạng văn bản và được bản địa hoá theo khu vực của cụm từ tìm kiếm. Cân nhắc tình trạng giao thông. Lưu ý: Nếu bạn không yêu cầu thông tin về lưu lượng truy cập, thì giá trị này sẽ giống với staticDuration.

staticDuration

object (LocalizedText)

Thời lượng mà không xem xét đến điều kiện lưu lượng truy cập, được thể hiện ở dạng văn bản.

StepsOverview

Cung cấp thông tin tổng quan về danh sách RouteLegStep.

Biểu diễn dưới dạng JSON
{
  "multiModalSegments": [
    {
      object (MultiModalSegment)
    }
  ]
}
Trường
multiModalSegments[]

object (MultiModalSegment)

Thông tin tóm tắt về các phân đoạn đa phương thức khác nhau của RouteLeg.steps. Trường này không được điền nếu RouteLeg không chứa bất kỳ phân đoạn đa phương thức nào trong các bước.

MultiModalSegment

Cung cấp thông tin tóm tắt về các phân đoạn đa phương thức khác nhau của RouteLeg.steps. Phân đoạn đa phương thức được xác định là một hoặc nhiều RouteLegStep liền kề có cùng RouteTravelMode. Trường này không được điền nếu RouteLeg không chứa bất kỳ phân đoạn đa phương thức nào trong các bước.

Biểu diễn dưới dạng JSON
{
  "navigationInstruction": {
    object (NavigationInstruction)
  },
  "travelMode": enum (RouteTravelMode),
  "stepStartIndex": integer,
  "stepEndIndex": integer
}
Trường
navigationInstruction

object (NavigationInstruction)

NavigationInstruction cho phân đoạn đa phương thức.

travelMode

enum (RouteTravelMode)

Phương tiện đi lại của đoạn đường đa phương thức.

stepStartIndex

integer

Chỉ mục RouteLegStep tương ứng là điểm bắt đầu của một phân đoạn đa phương thức.

stepEndIndex

integer

Chỉ mục RouteLegStep tương ứng là phần cuối của một phân đoạn đa phương thức.

Khung nhìn

Khung nhìn vĩ độ-kinh độ, được biểu thị dưới dạng hai điểm lowhigh đối diện nhau theo đường chéo. Khung nhìn được coi là một vùng kín, tức là bao gồm cả ranh giới. 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ó nhiều trường hợp như sau:

  • Nếu low = high, khung nhìn sẽ bao gồm một điểm duy nhất đó.

  • Nếu low.longitude > high.longitude, thì dải kinh độ sẽ bị đảo ngược (khung nhìn sẽ cắt ngang đường kinh độ 180 độ).

  • Nếu low.longitude = -180 độ và high.longitude = 180 độ, thì khung nhìn sẽ bao gồm tất cả kinh độ.

  • Nếu low.longitude = 180 độ và high.longitude = -180 độ, thì dải kinh độ sẽ trống.

  • Nếu low.latitude > high.latitude, phạm vi vĩ độ sẽ trống.

Bạn phải điền cả lowhigh và hộp được biểu thị không được để trống (như được chỉ định theo định nghĩa ở trên). Chế độ xem trống sẽ dẫn đến lỗi.

Ví dụ: khung nhìn này bao gồm toàn bộ Thành phố New York:

{ "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } }

Biểu diễn dưới dạng JSON
{
  "low": {
    object (LatLng)
  },
  "high": {
    object (LatLng)
  }
}
Trường
low

object (LatLng)

Bắt buộc. Điểm thấp của khung nhìn.

high

object (LatLng)

Bắt buộc. Điểm cao của khung nhìn.

RouteLocalizedValues

Biểu thị văn bản của một số thuộc tính.

Biểu diễn dưới dạng JSON
{
  "distance": {
    object (LocalizedText)
  },
  "duration": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  },
  "transitFare": {
    object (LocalizedText)
  }
}
Trường
distance

object (LocalizedText)

Khoảng cách di chuyển được thể hiện ở dạng văn bản.

duration

object (LocalizedText)

Thời lượng, được biểu thị ở dạng văn bản và được bản địa hoá theo khu vực của cụm từ tìm kiếm. Cân nhắc tình trạng giao thông. Lưu ý: Nếu bạn không yêu cầu thông tin lưu lượng truy cập, thì giá trị này sẽ giống với staticDuration.

staticDuration

object (LocalizedText)

Thời lượng mà không xem xét đến điều kiện lưu lượng truy cập, được thể hiện ở dạng văn bản.

transitFare

object (LocalizedText)

Giá vé phương tiện công cộng được thể hiện ở dạng văn bản.

GeocodingResults

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 trung gian địa chỉ.

Biểu diễn dưới dạng JSON
{
  "origin": {
    object (GeocodedWaypoint)
  },
  "destination": {
    object (GeocodedWaypoint)
  },
  "intermediates": [
    {
      object (GeocodedWaypoint)
    }
  ]
}
Trường
origin

object (GeocodedWaypoint)

Điểm trung gian được mã hoá địa lý của điểm xuất phát.

destination

object (GeocodedWaypoint)

Điểm trung gian được mã hoá địa lý của đích đến.

intermediates[]

object (GeocodedWaypoint)

Danh sách các điểm trung gian được mã hoá địa lý, mỗi điểm chứa một trường chỉ mục tương ứng với vị trí dựa trên số 0 của điểm trung gian theo thứ tự được chỉ định trong yêu cầu.

GeocodedWaypoint

Thông tin chi tiết về các vị trí được dùng làm điểm trung gian. Chỉ được điền sẵn cho các điểm trung gian địa chỉ. Bao gồm thông tin chi tiết về kết quả mã hoá địa lý để xác định địa chỉ được mã hoá địa lý thành địa chỉ nào.

Biểu diễn dưới dạng JSON
{
  "geocoderStatus": {
    object (Status)
  },
  "type": [
    string
  ],
  "partialMatch": boolean,
  "placeId": string,
  "intermediateWaypointRequestIndex": integer
}
Trường
geocoderStatus

object (Status)

Cho biết mã trạng thái do thao tác liên kết địa lý.

type[]

string

(Các) loại kết quả, ở dạng từ 0 thẻ loại trở lên. Các loại được hỗ trợ: Loại địa chỉ và loại thành phần địa chỉ.

partialMatch

boolean

Cho biết trình dịch địa lý không trả về kết quả khớp chính xác cho yêu cầu ban đầu, mặc dù có thể khớp một phần của địa chỉ được yêu cầu. Bạn nên kiểm tra yêu cầu ban đầu để xem có lỗi chính tả và/hoặc địa chỉ chưa hoàn chỉnh hay không.

placeId

string

Mã địa điểm của kết quả này.

intermediateWaypointRequestIndex

integer

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.