- HTTP リクエスト
- リクエストの本文
- レスポンスの本文
- ポリラインの画質
- PolylineEncoding
- 単位
- ReferenceRoute
- 追加の計算
- Route
- RouteLabel
- RouteLeg
- ポリライン
- RouteLegStep
- NavigationInstruction
- 操作
- RouteLegStepTravelAdvisory
- RouteLegTravelAdvisory
- ビューポート
- GeocodingResults
- GeocodedWaypoint
ターミナルと中間地点のセットを指定すると、プライマリ ルートとオプションの代替ルートを返します。
注: このメソッドでは、入力にレスポンス フィールド マスクを指定する必要があります。レスポンス フィールド マスクを指定するには、URL パラメータ $fields
または fields
を使用するか、HTTP/gRPC ヘッダー X-Goog-FieldMask
を使用します(使用可能な URL パラメータとヘッダーをご覧ください)。値はカンマ区切りのフィールド フィールドのリストです。詳しくは、フィールドパスの作成方法に関するドキュメントをご覧ください。
たとえば、次のメソッドを使用します。
- 使用可能なすべてのフィールドのフィールド マスク(手動検査用):
X-Goog-FieldMask: *
- ルートレベルの所要時間、距離、ポリラインのフィールド マスク(本番環境設定の例):
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
ワイルドカード(*
)レスポンスのフィールド マスクを使用したり、トップレベル(routes
)でフィールド マスクを指定したりしないことをおすすめします。理由は次のとおりです。
- 必要なフィールドのみを選択して計算サイクルを短縮することで、より短いレイテンシで結果を返すことができます。
- 本番環境ジョブに必要なフィールドのみを選択すると、安定したレイテンシのパフォーマンスが確保されます。今後、レスポンス フィールドがさらに追加される可能性があります。また、これらの新しいフィールドでは、追加の計算時間が必要になることがあります。すべてのフィールドを選択するか、トップレベルですべてのフィールドを選択すると、追加された新しいフィールドが自動的にレスポンスに含まれるため、パフォーマンスの低下が発生することがあります。
- 必要なフィールドのみを選択すると、レスポンス サイズが小さくなり、ネットワーク スループットも高くなります。
HTTP リクエスト
POST https://routes.googleapis.com/directions/v2:computeRoutes
この URL では gRPC Transcoding 構文を使用します。
リクエスト本文
リクエストの本文には次の構造のデータが含まれます。
JSON 表現 |
---|
{ "origin": { object ( |
フィールド | |
---|---|
origin |
必須。出発地の地点。 |
destination |
必須。目的地の地点。 |
intermediates[] |
(省略可)経路上の地点のセット(到着駅または停留所)。最大 25 の中間地点がサポートされます。 |
travelMode |
(省略可)移動手段を指定します。 |
routingPreference |
(省略可)ルートの計算方法を指定します。サーバーは選択したルーティング設定を使用してルートを計算します。ルーティングの設定がエラーや非常に長いレイテンシになると、エラーが返されます。このオプションを指定できるのは、 |
polylineQuality |
(省略可)ポリラインの品質の設定を指定します。 |
polylineEncoding |
(省略可)ポリラインに優先するエンコードを指定します。 |
departureTime |
(省略可)出発時刻。この値を設定しなかった場合、デフォルトでリクエストを行った時刻が設定されます。この値をすでに発生している時間に設定すると、リクエストは失敗します。 RFC3339 UTC「Zulu」形式のタイムスタンプ。解像度はナノ秒で、小数点以下 9 桁まで指定できます。(例: |
computeAlternativeRoutes |
(省略可)ルートに加え、代替ルートを計算するかどうかを指定します。中間地点を持つリクエストに対して代替ルートは返されません。 |
routeModifiers |
(省略可)ルートの計算方法に影響する一連の条件。 |
languageCode |
(省略可)「en-US」や「sr-Latn」などの BCP-47 言語コード。詳しくは、http://www.unicode.org/reports/tr35/#Unicode_locale_identifier を参照してください。サポートされている言語の一覧については、言語サポートをご覧ください。この値を指定しない場合は、経路リクエストの場所から表示言語が推測されます。 |
regionCode |
(省略可)ccTLD(「トップレベル ドメイン」)の 2 文字の値として指定される地域コード詳しくは、https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains をご覧ください。 |
units |
(省略可)表示フィールドの測定単位を指定します。これには、 |
requestedReferenceRoutes[] |
(省略可)デフォルト ルートに加えて、リクエストの一部として計算する参照ルートを指定します。参照ルートは、デフォルト ルートとは異なるルートの計算目標を持つルートです。たとえば、FUEL_EFFICIENT 参照ルートの計算では、最適な燃料効率の高いルートを生成するさまざまなパラメータが考慮されます。 |
extraComputations[] |
(省略可)リクエストを完了するために使用できる追加の計算のリスト。注: これらの追加の計算は、レスポンスで追加のフィールドを返す場合があります。これらの追加フィールドは、レスポンスで返されるフィールド マスクで指定する必要があります。 |
レスポンスの本文
成功すると、レスポンスの本文に次の構造のデータが含まれます。
v2.computeRoutes レスポンス メッセージ。
JSON 表現 |
---|
{ "routes": [ { object ( |
フィールド | |
---|---|
routes[] |
compute_alternatives_routes を指定すると、計算されたルートの配列(最大 3 つ)が含まれ、指定しない場合のルートは 1 つのみが含まれます。この配列に複数のエントリが含まれている場合、最初のルートが最も推奨されます。配列が空の場合は、ルートが見つからなかったことを示します。 |
fallbackInfo |
入力された設定内容をすべて考慮してもサーバーでルート結果を計算できない場合は、別の計算方法が使用されることがあります。フォールバック モードが使用されている場合、このフィールドにはフォールバック レスポンスに関する詳細情報が含まれます。それ以外の場合はこのフィールドが設定されていません。 |
geocodingResults |
住所として指定された地点のジオコーディング レスポンス情報が含まれます。 |
ポリラインの画質
ポリラインの品質を指定する値のセット。
列挙型 | |
---|---|
POLYLINE_QUALITY_UNSPECIFIED |
ポリラインの品質設定が指定されていません。デフォルトは OVERVIEW です。 |
HIGH_QUALITY |
高品質のポリラインを指定します。これは OVERVIEW を超えるポイントで構成されますが、レスポンス サイズが大きくなります。精度を高めるために、この値を使用します。 |
OVERVIEW |
少数のポリラインで構成される概要ポリラインを指定します。この値は、ルートの概要を表示する場合に使用します。このオプションを使用すると、HIGH_QUALITY オプションを使用する場合よりもリクエストのレイテンシが低くなります。 |
ポリラインのエンコード
返されるポリラインの優先タイプを指定します。
列挙型 | |
---|---|
POLYLINE_ENCODING_UNSPECIFIED |
ポリラインのタイプ設定が指定されていません。デフォルトは ENCODED_POLYLINE です。 |
ENCODED_POLYLINE |
ポリライン エンコード アルゴリズムを使用してエンコードされたポリラインを指定します。 |
GEO_JSON_LINESTRING |
GeoJSON LineString 形式でポリラインを指定します。 |
単位
ディスプレイで使用される測定単位を指定する値のセット。
列挙型 | |
---|---|
UNITS_UNSPECIFIED |
測定単位が指定されていません。デフォルトは、リクエストから推定される測定単位です。 |
METRIC |
指標の単位。 |
IMPERIAL |
ヤード・ポンド法 |
ReferenceRoute
ComputeRoutesRequest でサポートされている参照ルート。
列挙型 | |
---|---|
REFERENCE_ROUTE_UNSPECIFIED |
不使用。この値を含むリクエストは失敗します。 |
FUEL_EFFICIENT |
燃料効率が良いルートこの値のラベルが付いたルートは、燃料消費量などのパラメータに最適化されていると判断されます。 |
外算出
リクエストの完了時に実行する追加の計算。
列挙型 | |
---|---|
EXTRA_COMPUTATION_UNSPECIFIED |
不使用。この値を含むリクエストは失敗します。 |
TOLLS |
有料道路の情報。 |
FUEL_CONSUMPTION |
そのルートの推定燃料消費量。 |
TRAFFIC_ON_POLYLINE |
経路の交通認識のポリライン。 |
ルーティング
ルートは、開始地点、終了地点、中間地点をつなぐ一連の接続済み道路セグメントで構成されます。
JSON 表現 |
---|
{ "routeLabels": [ enum ( |
フィールド | |
---|---|
routeLabels[] |
|
legs[] |
ルートを構成する区間(地点間のセグメント)です。各区間は、2 つの非 |
distanceMeters |
ルートの移動距離(メートル単位)。 |
duration |
ルートの移動に必要な時間。 小数点以下 9 桁までの値で、末尾が「 |
staticDuration |
交通状況を考慮せずにルートを走行した時間。 小数点以下 9 桁までの値で、末尾が「 |
polyline |
ルート全体のポリライン。このポリラインは、すべての |
description |
経路の説明。 |
warnings[] |
ルートを表示するときに表示する警告の配列。 |
viewport |
ポリラインのビューポート境界ボックス。 |
travelAdvisory |
経路に関する追加情報。 |
routeToken |
NavigationSDK に渡せる、ウェブセーフな base64 でエンコードされたルートトークン。これにより、Navigation SDK はナビゲーション中にルートを再構築できます。また、再ルーティングが発生した場合、Route v2.computeRoutes が呼び出されたときに元のインテントが使用されます。お客様はこのトークンを不透明な blob として扱う必要があります。注: |
ルートラベル
Route
のラベル。ルートの他のプロパティと比較する際に役立ちます。
列挙型 | |
---|---|
ROUTE_LABEL_UNSPECIFIED |
デフォルト - 使用されません。 |
DEFAULT_ROUTE |
ルートの計算で返されるデフォルトの「最適」ルート。 |
DEFAULT_ROUTE_ALTERNATE |
デフォルトの「最適な」ルートの代替。ComputeRoutesRequest.compute_alternative_routes を指定すると、このようなルートが返されます。 |
FUEL_EFFICIENT |
燃料効率が良いルートこの値のラベルが付いたルートは、燃料消費量などのエコ パラメータに合わせて最適化されています。 |
ルートレッグ
via
以外の地点間のセグメントをカプセル化します。
JSON 表現 |
---|
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object ( |
フィールド | |
---|---|
distanceMeters |
経路の区間の移動距離(メートル単位)。 |
duration |
脚の移動に必要な時間。 小数点以下 9 桁までの値で、末尾が「 |
staticDuration |
交通状況を考慮せずに計算された、区間内の所要時間。 小数点以下 9 桁までの値で、末尾が「 |
polyline |
この区間の全体的なポリライン。これには各 |
startLocation |
この区間の始点の場所。指定された |
endLocation |
この区間の終点。指定された |
steps[] |
この区間のセグメントを示すステップの配列。各ステップは 1 つのナビゲーション命令を表します。 |
travelAdvisory |
ルートの区間で考えられる交通ゾーンの制限など、ユーザーに通知する必要のある追加情報をカプセル化します。 |
Polyline
エンコードされたポリラインをカプセル化します。
JSON 表現 |
---|
{ // Union field |
フィールド | |
---|---|
共用体フィールド polyline_type 。ポリラインのタイプをカプセル化します。デフォルトは encoded_ポリラインです。polyline_type は次のいずれかになります。 |
|
encodedPolyline |
ポリライン エンコード アルゴリズムを使用したポリラインの文字列エンコード |
geoJsonLinestring |
GeoJSON LineString 形式でポリラインを指定します。 |
ルートレッグステップ
RouteLeg
のセグメントをカプセル化します。ステップは 1 つのナビゲーション命令に対応します。ルート区間は複数のステップで構成されます。
JSON 表現 |
---|
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object ( |
フィールド | |
---|---|
distanceMeters |
このステップの移動距離(メートル単位)。状況によっては、このフィールドに値が表示されないことがあります。 |
staticDuration |
交通状況を考慮しない、このステップの移動時間。状況によっては、このフィールドに値が表示されないことがあります。 小数点以下 9 桁までの値で、末尾が「 |
polyline |
このステップに関連付けられたポリライン。 |
startLocation |
このステップの始点の場所。 |
endLocation |
このステップの終了位置。 |
navigationInstruction |
ナビゲーション手順。 |
travelAdvisory |
レッグステップのトラフィック ゾーン制限など、ユーザーに通知する必要のある追加情報がカプセル化されています。 |
Maneuver
現在のステップで行うナビゲーション アクションを指定する値のセット(左左折、マージ、ストレートなど)。
列挙型 | |
---|---|
MANEUVER_UNSPECIFIED |
使用されません。 |
TURN_SLIGHT_LEFT |
少し左に回します。 |
TURN_SHARP_LEFT |
左に鋭角に曲がります。 |
UTURN_LEFT |
左折します。 |
TURN_LEFT |
左折します。 |
TURN_SLIGHT_RIGHT |
少し右に曲がります。 |
TURN_SHARP_RIGHT |
右に鋭角に曲がります。 |
UTURN_RIGHT |
右左折します。 |
TURN_RIGHT |
左折します。 |
STRAIGHT |
まっすぐ |
RAMP_LEFT |
左のランプに入ります。 |
RAMP_RIGHT |
適切なランプに進む。 |
MERGE |
トラフィックに統合します。 |
FORK_LEFT |
左のフォークを行く。 |
FORK_RIGHT |
適切なフォークを。 |
FERRY |
フェリーを利用します。 |
FERRY_TRAIN |
電車に乗ってフェリーに乗ります。 |
ROUNDABOUT_LEFT |
ロータリーを左折します。 |
ROUNDABOUT_RIGHT |
環状交差点で右に曲がります。 |
ルートレッグトラベルアドバイザリ
レッグステップのトラフィック ゾーン制限など、ユーザーに通知する必要のある追加情報がカプセル化されています。
JSON 表現 |
---|
{
"speedReadingIntervals": [
{
object ( |
フィールド | |
---|---|
speedReadingIntervals[] |
注: 現在、このフィールドにはデータが入力されていません。 |
ルート区間の移動案内
ルートの区間で考えられる交通ゾーンの制限など、ユーザーに通知する必要のある追加情報をカプセル化します。
JSON 表現 |
---|
{ "tollInfo": { object ( |
フィールド | |
---|---|
tollInfo |
特定の RouteLegs の有料道路に関する情報をカプセル化します。このフィールドは、RouteLegs で有料道路が予想される場合にのみ入力されます。このフィールドが設定されていても、EstimatedPrice サブフィールドに値が入力されていない場合、道路には有料道路が含まれることが想定されますが、推定料金はわかりません。このフィールドが存在しない場合、RouteLeg には有料道路がありません。 |
speedReadingIntervals[] |
トラフィック密度の詳細を示す読み取り間隔。 例:
|
ビューポート
緯度と経度のビューポート。low
と high
の対角線上にある 2 つの地点として表されます。ビューポートは閉じられた領域とみなされます(つまりその境界を含む)。緯度の境界は -90 ~ 90 度の範囲で、経度の境界は -180 ~ 180 度の範囲にする必要があります。次のようなケースが考えられます。
low
=high
の場合、ビューポートはその単一のポイントで構成されます。low.longitude
>high.longitude
の場合、経度の範囲が反転します(ビューポートが経度 180 度の線と交差します)。low.longitude
= -180 度、high.longitude
= 180 度の場合、ビューポートにはすべての経度が含まれます。low.longitude
= 180 度、high.longitude
= -180 度の場合、経度の範囲は空です。low.latitude
>high.latitude
の場合、緯度の範囲は空です。
low
と high
はどちらも入力する必要があります。また、表現されたボックスは空にできません(上記の定義で指定)。ビューポートが空の場合はエラーが発生します。
たとえば、次のビューポートはニューヨークを完全に囲んでいます。
{ "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } }
JSON 表現 |
---|
{ "low": { object ( |
フィールド | |
---|---|
low |
必須。ビューポートの下限。 |
high |
必須。ビューポートの要点。 |
ジオコーディングの結果
出発地、目的地、中間地点の GeocodedWaypoint が含まれます。住所の地点にのみデータが入力されます。
JSON 表現 |
---|
{ "origin": { object ( |
フィールド | |
---|---|
origin |
ジオコーディングされた出発地。 |
destination |
ジオコーディングされた地点。 |
intermediates[] |
ジオコーディングされた中間地点のリスト。各地点は、リクエストで指定された地点のゼロベースの地点に対応するインデックス フィールドで構成されます。 |
ジオコーディングされた地点
地点として使用される場所の詳細。住所の地点にのみデータが入力されます。住所がジオコーディングされた住所を特定するためのジオコーディング結果の詳細を含めます。
JSON 表現 |
---|
{
"geocoderStatus": {
object ( |
フィールド | |
---|---|
geocoderStatus |
ジオコーディングの処理結果を示すステータス コードを示します。 |
type[] |
結果の型(ゼロ個以上のタイプタグの形式)。サポートされるタイプ: https://developers.google.com/maps/documentation/Geocoding/requests-Geocoding#Types |
partialMatch |
ジオコーダによって、元のリクエストに完全一致する住所は見つからなかったものの、部分一致する住所は見つかったことを示します。元のリクエストで住所の表記が間違っていたり、不完全である可能性があります。 |
placeId |
この結果の場所 ID。 |
intermediateWaypointRequestIndex |
リクエスト内の対応する中間地点のインデックス。対応する地点が中間地点である場合にのみ入力されます。 |