このサービスは、クライアント側のMaps JavaScript APIの一部として、またはjavaクライアント、Pythonクライアント、Goクライアント、Nodeでサーバー側Googleマップサービス用のjsクライアント。
はじめに
距離行列APIは、出発地と目的地の行列の移動距離と時間を提供するサービスです。 このAPIは、Google Maps APIによって計算された開始点と終了点の間の推奨ルートに基づいて情報を返し、各ペアのduration
distance
の値を含む行で構成されます。注:このサービスは、詳細なルート情報を返しません。
注:このサービスは、詳細なルート情報を返しません。 ルート情報は、目的の単一の起点と目的地をDirections APIに渡すことによって取得できます。
作業を開始する前に
このドキュメントは、Google Maps Apiのいずれかによって提供されるマップ内のいくつかのポイント間の移動距離と時間を計算したい開発者を対象としています。 ここでは、APIの使用方法の紹介と、使用可能なパラメータに関する参考資料を提供します。
Distance Matrix APIを使用して開発を開始する前に、認証要件(APIキーが必要)とAPIの使用状況と課金情報(プロジェクトで課金を有効にする必要があります)を確認
距離行列要求
距離行列API要求は、次の形式をとります。
outputFormat
は、次のいずれかの値になります。
-
json
(推奨)、JavaScriptオブジェクjson);または -
xml
、xmlとして出力を示します。
注:Urlは有効であるために適切にエンコードされている必要があり、すべてのwebサービスで8192文字に制限されています。 Urlを構築するときは、この制限に注意してください。 ブラウザ、プロキシ、およびサーバーによっては、URL文字の制限が異なる場合があります。
HTTPSまたはHTTP
セキュリティは重要であり、特に要求にユーザーの場所などの機密性の高いユーザーデータを含むアプリケーションでは、可能な限りHTTPSを HTTPS暗号化を使用すると、アプリケーションの安全性が向上し、スヌーピングや改ざんに対する耐性が向上します。HTTPSが使用できない場合は、Http経由でDistance Matrix APIにアクセスするには、次のコマンドを使用します。
:
要求パラメータ
特定のパラメータが必要ですが、他のパラメータはオプションです。 Urlの標準と同様に、すべてのパラメータはアンパサンド(&
)文字を使用して分離されます。 すべての予約文字(プラス記号”+”など)は、URLエンコードする必要があります。パラメータとその可能な値のリストを以下に列挙します。p>
必要なパラメータ
-
origins
|
)で区切られた1つ以上の場所を、場所ID、住所、緯度/経度座標の形式で指定できます。- 場所IDを指定する場合は、その前に
place_id:
を付ける必要があります。 リクエストにAPIキーまたはGoogle Maps Platform Premium PlanクライアントIDが含まれている場合にのみ、プレイスIDを指定できます。 Geocoding APIおよびPlaces API(Place Autocompleteを含む)からplace Idを取得できます。 場所のオートコンプリートから場所Idを使用する例については、”場所のオートコンプリートと方向”を参照してください。 場所Idの詳細については、”場所IDの概要”を参照してください。 - アドレスを渡すと、サービスは文字列をジオコードし、それを緯度/経度座標に変換して距離を計算します。 この座標は、Geocoding APIによって返される座標とは異なる場合があります。
origins=Bobcaygeon+ON|24+Sussex+Drive+Ottawa+ON
注:住所や緯度/経度の座標を使用するよりも、場所Idを使用する方が優先されます。 座標を使用すると、常にポイントがそれらの座標に最も近い道路にスナップされます-プロパティへのアクセスポイントではないかもしれませんし、 - 緯度/経度の座標を渡すと、最も近い道路にスナップします。 場所IDを渡すことをお勧めします。 座標を渡す場合は、緯度と経度の値の間にスペースが存在しないことを確認してください。
origins=41.43206,-81.38992|-33.86748,151.20699
origins=place_id:ChIJ3S-JXmauEmsRUcIaWtf4MzE
- プラスコードは、グローバルコードまたは複合コードとしてフォーマットする必要があります。 ここに示すように、プラスコードをフォーマットします(プラス記号は
%2B
にurlエスケープされ、スペースは%20
にurlエスケープされます)。- グローバルコードは4文字の市外局番と6文字以上のローカルコードです(849VCWC8+R9は
849VCWC8%2BR9
)。 - 複合コードは、明示的な場所を持つ6文字以上のローカルコードです(CWC8+R9Mountain View、CA、USAは
CWC8%2BR9%20Mountain%20View%20CA%20USA
)。
- グローバルコードは4文字の市外局番と6文字以上のローカルコードです(849VCWC8+R9は
- または、エンコードされたポリラインアルゴリズムを使用して、エンコードされた座標セットを指定できます。 これは、エンコードされたポリラインを使用するとURLが大幅に短くなるため、多数の起点ポイントがある場合に特に便利です。
- エンコードされたポリラインは、
enc:
:
origins=enc:gfo}EtohhU:
- パイプ文字で区切られた複数のエンコードされたポリラインを含めることもできます(
|
origins=enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:|enc:udymA{~bxM:
- エンコードされたポリラインは、
- 場所IDを指定する場合は、その前に
-
destinations
destinations
origins
パラメータのオプションと同じです。 -
key
—アプリケーションのAPIキー。 このキーは、クォータ管理の目的でアプリケーションを識別します。 キーを取得する方法を学びます。ノート: Google Maps Platform Premiumプランのお客様は、Distance MatrixリクエストでAPIキー、または有効なクライアントIDとデジタル署名を使用できます。 プレミアムプランのお客様の認証パラメータの詳細を取得します。
次の例では、緯度/経度の座標を使用して宛先座標を指定します。
次の例では、プラスコードを使用して宛先座標を指定します。
次の例では、エンコー:
オプションパラメータ
-
mode
driving
)—距離を計算するときに使用するトランスポートモードを指定します。 有効な値とその他の要求の詳細は、このドキュメントの[移動モード]セクションで指定します。 -
language
—結果を返す言語。- サポートされている言語のリストを参照してください。 Googleはサポートされている言語を頻繁に更新するため、このリストは網羅的ではない場合があります。
-
language
が指定されていない場合、APIはAccept-Language
ヘッダーで指定されている優先言語、または要求の送信元ドメインの母国語を使用 - APIは、ユーザーと地元の人々の両方が読める住所を提供するために最善を尽くします。 その目標を達成するために、必要に応じてユーザーが読めるスクリプトに音訳されたローカル言語で住所を返し、優先言語を観察します。 その他のすべてのアドレスは、優先言語で返されます。 アドレスコンポーネントはすべて、最初のコンポーネントから選択された同じ言語で返されます。
- 優先言語で名前を使用できない場合、APIは最も近い一致を使用します。
- 優先言語は、APIが返すことを選択した結果のセットと、それらが返される順序に小さな影響を与えます。 Geocoderは、ストリートタイプの略語や、ある言語では有効であるが別の言語では有効ではないシノニムなど、言語によって異なる略語を解釈します。 たとえば、utcaとtérはハンガリー語のstreetの同義語です。
-
region
—地域コード。ccTLD(国コードトップレベルドメイン)の2文字の値として指定します。 ほとんどのccTLDコードは、いくつかの例外を除いて、ISO3166-1コードと同一です。 このパラメータは、ジオコーダの結果にのみ影響を与え、完全に制限するものではありません。 より関連性の高い結果が指定された領域の外に存在する場合、それらを含めることができる。 -
avoid
—ルートに制限を導入します。 有効な値は、このドキュメントの”制限”セクションで指定します。 指定できる制限は1つだけです。 -
units
—距離をテキストとして表現するときに使用する単位系を指定します。 詳細については、このドキュメントの単位系のセクションを参照してください。 -
arrival_time
—トランジット要求の到着希望時刻を、真夜中、January1、1970UTCからの秒単位で指定します。departure_time
arrival_time
arrival_time
は整数として指定する必要があります。 -
departure_time
—出発の希望時間。 時刻は、utc1970年1月1日午前0時からの秒単位の整数で指定できます。 9999-12-31T23:59:59.999999999Zより後のdeparture_time
が指定されている場合、APIはdeparture_time
を9999-12-31T23:59:59.999999999Zにフォールバnow
、出発時刻を現在の時刻に設定します(最も近い秒に正しい)。 出発時間は、旅行モードがトランジットであるリクエストの場合には、- の二つのケースで指定できます: 必要に応じて、
departure_time
arrival_time
departure_time
はデフォルトでnowになります(つまり、出発時刻はデフォルトで現在の時刻になります)。 - 旅行モードが運転している要求の場合:交通状況を考慮したルートと旅行期間(応答フィールド:
duration_in_traffic
departure_time
を指定 このオプションは、リクエストに有効なAPIキー、または有効なGoogle Maps Platform Premium PlanクライアントIDと署名が含まれている場合にのみ使用できます。departure_time
は、現在の時刻または将来の時刻に設定する必要があります。 それは過去にすることはできません。注:出発時間が指定されていない場合、ルートと期間の選択は、道路網と平均時間に依存しない交通状況に基づいています。 特定の要求の結果は、道路網の変化、更新された平均交通状況、およびサービスの分散性により、時間の経過とともに変化する可能性があります。 結果はまた、任意の時間または周波数でほぼ同等のルート間で異なる場合があります。
注:
mode=driving
departure_time
を指定する距離行列要求は、要求ごとに最大100要素に制限されています。 起点の数に終点の数を掛けた数は、要素の数を定義します。
- の二つのケースで指定できます: 必要に応じて、
-
traffic_model
best_guess
duration_in_traffic
traffic_model
driving
departure_time
が含まれているリクエストに対してのみ指定できます。 このパラメーターに使用可能な値は次のとおりです:-
best_guess
duration_in_traffic
departure_time
が近いほど重要になります。 -
pessimistic
duration_in_traffic
は、ほとんどの日の実際の移動時間よりも長くする必要がありますが、特に交通状況が悪い日はこの値を超える -
optimistic
duration_in_traffic
は、ほとんどの日の実際の移動時間よりも短くする必要がありますが、特に良好な交通状況を持つ時折の日は、この値
-
-
transit_mode
mode
transit
である要求に対してのみ指定できます。 このパラメーターは、次の引数をサポートしています:-
bus
計算されたルートは、バスでの旅行を好むべきであることを示します。 -
subway
計算されたルートは地下鉄での旅行を好むべきであることを示します。 -
train
計算されたルートは電車での旅行を好むべきであることを示します。 -
tram
計算されたルートは、トラムとライトレールでの旅行を好むべきであることを示します。 -
rail
transit_mode=train|tram|subway
と同等です。
-
-
transit_routing_preference
—トランジット要求の環境設定を指定します。 このパラメータを使用すると、APIによって選択されたデフォルトの最適なルートを受け入れるのではなく、返されるオプションにバイアスをかけるこ このパラメータは、mode
transit
である要求に対してのみ指定できます。 このパラメーターは、次の引数をサポートします。-
less_walking
計算されたルートは、限られた歩行量を優先する必要があることを示します。 -
fewer_transfers
計算されたルートは、限られた数の転送を優先する必要があることを示します。
-
移動モード
距離の計算には、使用する交通機関を指定することができますmode
。 デフォルトでは、走行モードの距離が計算されます。 次の移動モードがサポートされています。
-
driving
(デフォルト)道路ネットワークを使用した距離計算を示します。 -
walking
&歩道(利用可能な場合)。 -
bicycling
&優先通り(利用可能な場合)。 -
transit
公共交通機関のルート(利用可能な場合)を介して距離計算を要求します。 この値は、リクエストにAPIキーまたはGoogle Maps Platform Premium PlanクライアントIDが含まれている場合にのみ指定できます。 モードをtransit
departure_time
arrival_time
departure_time
はデフォルトでnowになります(つまり、出発時刻はデフォルトで現在の時刻になります)。 また、オプションでtransit_mode
transit_routing_preference
を含めることもできます。
交通情報
交通情報は、次のすべてが適用される場合に使用されます(これらは、距離行列応答のduration_in_traffic
driving
はデフォルトの移動モードです)。
departure_time
departure_time
traffic_model
パラメータをリクエストに含めて、トラフィックの時間を計算するときに使用する仮定を指定できます。
次のURLは、マサチューセッツ州ボストンまたはチャールズタウン、マサチューセッツ州レキシントンおよびマサチューセッツ州コンコード間の距離を走行するための距離行列要求を開始します。 要求には出発時刻が含まれており、距離行列応答のduration_in_traffic
フィールドを返すためのすべての要件を満たしています。
制限
特定の制限に従う距離を計算することができます。 制限は、avoid
パラメータと、そのパラメータの引数を使用して回避する制限を示すことによって示されます。 次の制限がサポートされています。
avoid=tolls
avoid=highways
avoid=ferries
avoid=indoor
-
units=metric
(デフォルト)キロメートルとメートル単位の距離を返します。 -
units=imperial
distance
text
にのみ影響します。 -
status
要求のメタデータが含まれています。 以下のステータスコードを参照してください。 -
origin_addresses
元のリクエストからAPIによって返されたアドレスの配列が含まれています。 これらはジオコーダーによってフォーマットされ、要求で渡されたlanguage
パラメータに従ってローカライズされます。 -
destination_addresses
元のリクエストからAPIによって返されたアドレスの配列が含まれています。origin_addresses
と同様に、これらは適切な場合にローカライズされます。 -
rows
elements
status
duration
distance
要素….. -
OK
result
が含まれていることを示します。 -
INVALID_REQUEST
指定された要求が無効であったことを示します。 -
MAX_ELEMENTS_EXCEEDED
は、起点と終点の積がクエリごとの制限を超えていることを示します。 -
MAX_DIMENSIONS_EXCEEDED
は、送信元または送信先の数がクエリごとの制限を超えていることを示します。 -
OVER_DAILY_LIMIT
は、次のいずれかを示します。- APIキーが欠落しているか無効です。
- アカウントで請求が有効になっていません。
- 自主的な使用上限を超えました。
- 提供された支払い方法が有効ではなくなりました(クレジットカードの有効期限が切れているなど)。これを修正する方法については、Maps FAQを参照してください。
-
OVER_QUERY_LIMIT
は、許可された期間内にサービスがアプリケーションから要求を受け取りすぎたことを示します。 -
REQUEST_DENIED
は、サービスがアプリケーションによる距離行列サービスの使用を拒否したことを示します。 -
UNKNOWN_ERROR
は、サーバーエラーのために距離行列要求を処理できなかったことを示します。 再試行すると、要求が成功する可能性があります。
要素レベルのステータスコード
-
OK
result
が含まれていることを示します。 -
NOT_FOUND
は、このペアリングの原点および/または宛先をジオコーディングできなかったことを示します。 -
ZERO_RESULTS
は、出発地と目的地の間にルートが見つからなかったことを示します。 -
MAX_ROUTE_LENGTH_EXCEEDED
OK
以外の場合、Distance Matrix応答オブジェクト内に追加のerror_message
フィールドが存在する可能性があります。 このフィールドには、指定されたステータスコードの背後にある理由に関するより詳細な情報。注:このフィールドが常に存在することは保証されておらず、その内容は変更される可能性があります。距離行列APIが結果を返すと、JSONrows
配列内に配置されます。 結果が返されなくても(起源や目的地が存在しない場合など)、空の配列が返されます。 XMLレスポンスは、ゼロ以上の<row>
要素で構成されます。行は、要求の
origin
element
destination
値のペアに対応します。各
row
element
エントリが含まれており、単一の起点と終点のペアリングに関する情報が含まれています。要素
各起点と終点のペアリングに関する情報は、
element
element
次のフィールドが含まれています。-
status
:可能なステータスコードのリストについては、ステータスコードを参照してください。 -
duration
value
text
language
パラメーターに従ってローカライズされます。 -
duration_in_traffic
traffic_model
value
text
language
パラメーターに従ってローカライズされます。 トラフィックの期間は、次のすべてがtrueの場合にのみ返されます。- 要求には
departure_time
パラメータが含まれています。 - リクエストには、有効なAPIキー、または有効なGoogle Maps Platform Premium PlanクライアントIDと署名が含まれています。
- 交通状況は、要求されたルートのために利用可能です。
-
mode
driving
に設定されています。
- 要求には
-
distance
value
text
unit
パラメータで指定された単位系、またはオリジンの領域を使用します。 -
fare
:存在する場合、このルートの合計運賃(つまり、チケットの合計コスト)が含まれています。 このプロパティは、トランジットリクエストと運賃情報が利用可能なトランジットプロバイダの場合にのみ返されます。 この情報には、-
currency
:金額が表現されている通貨を示すISO4217通貨コードが含まれます。 -
value
:上記で指定された通貨での合計運賃額。 -
text
:要求された言語でフォーマットされた合計運賃額。
-
以下は、運賃情報を含む
element
の例です。sensorパラメータ
Google Maps APIでは、以前、アプリケーションがasensorを使用してユーザーの位置を決定したかどうかを示す
sensor
パラメータを含める必要がありました。 このパラメータはもはや必須ではありません。 -
ul*注:制限の追加は、制限された機能を含むルートを排除するものではなく、結果をより有利なルートにバイアスします。
単位系
距離行列の結果には、text
distance
計算されたルートの距離を示すフィールドが含まれています。 使用する単位系を指定することができます。
*注:このユニットシステム設定は、distance
text
values
も含まれています。
距離行列応答
距離行列APIクエリへの応答は、URL要求のパス内のoutput
フラグで示される形式で返されます。
二つのサンプルHTTP要求は、バンクーバー、BC、カナダから、シアトル、ワシントン州、サンフランシスコ、カリフォルニア州、カナダビクトリア、BC、カナダへの距離と期間を要求し、以下に示されています。このリクエストはJSONoutput
フラグの使用を示しています:
このリクエストは、XMLを使用して実証していますoutput
フラグ:
このリクエストは、四つの要素を返します-二つの起源×二つの目的地:
バンクーバーからサンフランシスコ | バンクーバーからビクトリア | |||||||||||
シアトルからサンフランシスコ | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア |
結果は行に返され、各行には各宛先とペアになった原点が含まれます。これをテストするには、webブラウザにURLを入力します(YOUR_API_KEY
を実際のAPIキーに置き換えてください)。
以下のタブを選択して、JSONおよびXML応答のサンプルを表示します。
このドキュメントの残りの部分ではJSON構文を使用します。
距離行列応答要素
距離行列応答には、次のルート要素が含まれています。
ステータスコード
応答オブジェクト内のstatus
フィールドには、要求のステータスが含まれており、有用なデバッグ情報が含まれてい Distance Matrix APIは、要求全般に関する情報を含む最上位のステータスフィールドと、各要素フィールドのステータスフィールドと、その特定の起点と終点のペアリングに