このサービスは、クライアント側のMaps JavaScript APIの一部として、またはjavaクライアント、Pythonクライアント、Goクライアント、Nodeでサーバー側Googleマップサービス用のjsクライアント。
はじめに
距離行列APIは、出発地と目的地の行列の移動距離と時間を提供するサービスです。 このAPIは、Google Maps APIによって計算された開始点と終了点の間の推奨ルートに基づいて情報を返し、各ペアのdurationdistanceの値を含む行で構成されます。注:このサービスは、詳細なルート情報を返しません。
注:このサービスは、詳細なルート情報を返しません。 ルート情報は、目的の単一の起点と目的地を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を指定する場合は、その前に
-
destinationsdestinationsoriginsパラメータのオプションと同じです。 -
key—アプリケーションのAPIキー。 このキーは、クォータ管理の目的でアプリケーションを識別します。 キーを取得する方法を学びます。ノート: Google Maps Platform Premiumプランのお客様は、Distance MatrixリクエストでAPIキー、または有効なクライアントIDとデジタル署名を使用できます。 プレミアムプランのお客様の認証パラメータの詳細を取得します。
次の例では、緯度/経度の座標を使用して宛先座標を指定します。
次の例では、プラスコードを使用して宛先座標を指定します。
次の例では、エンコー:
オプションパラメータ
-
modedriving)—距離を計算するときに使用するトランスポートモードを指定します。 有効な値とその他の要求の詳細は、このドキュメントの[移動モード]セクションで指定します。 -
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_timearrival_timearrival_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_timearrival_timedeparture_timeはデフォルトでnowになります(つまり、出発時刻はデフォルトで現在の時刻になります)。 - 旅行モードが運転している要求の場合:交通状況を考慮したルートと旅行期間(応答フィールド:
duration_in_trafficdeparture_timeを指定 このオプションは、リクエストに有効なAPIキー、または有効なGoogle Maps Platform Premium PlanクライアントIDと署名が含まれている場合にのみ使用できます。departure_timeは、現在の時刻または将来の時刻に設定する必要があります。 それは過去にすることはできません。注:出発時間が指定されていない場合、ルートと期間の選択は、道路網と平均時間に依存しない交通状況に基づいています。 特定の要求の結果は、道路網の変化、更新された平均交通状況、およびサービスの分散性により、時間の経過とともに変化する可能性があります。 結果はまた、任意の時間または周波数でほぼ同等のルート間で異なる場合があります。
注:
mode=drivingdeparture_timeを指定する距離行列要求は、要求ごとに最大100要素に制限されています。 起点の数に終点の数を掛けた数は、要素の数を定義します。
- の二つのケースで指定できます: 必要に応じて、
-
traffic_modelbest_guessduration_in_traffictraffic_modeldrivingdeparture_timeが含まれているリクエストに対してのみ指定できます。 このパラメーターに使用可能な値は次のとおりです:-
best_guessduration_in_trafficdeparture_timeが近いほど重要になります。 -
pessimisticduration_in_trafficは、ほとんどの日の実際の移動時間よりも長くする必要がありますが、特に交通状況が悪い日はこの値を超える -
optimisticduration_in_trafficは、ほとんどの日の実際の移動時間よりも短くする必要がありますが、特に良好な交通状況を持つ時折の日は、この値
-
-
transit_modemodetransitである要求に対してのみ指定できます。 このパラメーターは、次の引数をサポートしています:-
bus計算されたルートは、バスでの旅行を好むべきであることを示します。 -
subway計算されたルートは地下鉄での旅行を好むべきであることを示します。 -
train計算されたルートは電車での旅行を好むべきであることを示します。 -
tram計算されたルートは、トラムとライトレールでの旅行を好むべきであることを示します。 -
railtransit_mode=train|tram|subwayと同等です。
-
-
transit_routing_preference—トランジット要求の環境設定を指定します。 このパラメータを使用すると、APIによって選択されたデフォルトの最適なルートを受け入れるのではなく、返されるオプションにバイアスをかけるこ このパラメータは、modetransitである要求に対してのみ指定できます。 このパラメーターは、次の引数をサポートします。-
less_walking計算されたルートは、限られた歩行量を優先する必要があることを示します。 -
fewer_transfers計算されたルートは、限られた数の転送を優先する必要があることを示します。
-
移動モード
距離の計算には、使用する交通機関を指定することができますmode。 デフォルトでは、走行モードの距離が計算されます。 次の移動モードがサポートされています。
-
driving(デフォルト)道路ネットワークを使用した距離計算を示します。 -
walking&歩道(利用可能な場合)。 -
bicycling&優先通り(利用可能な場合)。 -
transit公共交通機関のルート(利用可能な場合)を介して距離計算を要求します。 この値は、リクエストにAPIキーまたはGoogle Maps Platform Premium PlanクライアントIDが含まれている場合にのみ指定できます。 モードをtransitdeparture_timearrival_timedeparture_timeはデフォルトでnowになります(つまり、出発時刻はデフォルトで現在の時刻になります)。 また、オプションでtransit_modetransit_routing_preferenceを含めることもできます。
交通情報
交通情報は、次のすべてが適用される場合に使用されます(これらは、距離行列応答のduration_in_trafficdrivingはデフォルトの移動モードです)。
departure_timedeparture_timetraffic_modelパラメータをリクエストに含めて、トラフィックの時間を計算するときに使用する仮定を指定できます。
次のURLは、マサチューセッツ州ボストンまたはチャールズタウン、マサチューセッツ州レキシントンおよびマサチューセッツ州コンコード間の距離を走行するための距離行列要求を開始します。 要求には出発時刻が含まれており、距離行列応答のduration_in_trafficフィールドを返すためのすべての要件を満たしています。
制限
特定の制限に従う距離を計算することができます。 制限は、avoidパラメータと、そのパラメータの引数を使用して回避する制限を示すことによって示されます。 次の制限がサポートされています。
avoid=tollsavoid=highwaysavoid=ferriesavoid=indoor-
units=metric(デフォルト)キロメートルとメートル単位の距離を返します。 -
units=imperialdistancetextにのみ影響します。 -
status要求のメタデータが含まれています。 以下のステータスコードを参照してください。 -
origin_addresses元のリクエストからAPIによって返されたアドレスの配列が含まれています。 これらはジオコーダーによってフォーマットされ、要求で渡されたlanguageパラメータに従ってローカライズされます。 -
destination_addresses元のリクエストからAPIによって返されたアドレスの配列が含まれています。origin_addressesと同様に、これらは適切な場合にローカライズされます。 -
rowselementsstatusdurationdistance要素….. -
OKresultが含まれていることを示します。 -
INVALID_REQUEST指定された要求が無効であったことを示します。 -
MAX_ELEMENTS_EXCEEDEDは、起点と終点の積がクエリごとの制限を超えていることを示します。 -
MAX_DIMENSIONS_EXCEEDEDは、送信元または送信先の数がクエリごとの制限を超えていることを示します。 -
OVER_DAILY_LIMITは、次のいずれかを示します。- APIキーが欠落しているか無効です。
- アカウントで請求が有効になっていません。
- 自主的な使用上限を超えました。
- 提供された支払い方法が有効ではなくなりました(クレジットカードの有効期限が切れているなど)。これを修正する方法については、Maps FAQを参照してください。
-
OVER_QUERY_LIMITは、許可された期間内にサービスがアプリケーションから要求を受け取りすぎたことを示します。 -
REQUEST_DENIEDは、サービスがアプリケーションによる距離行列サービスの使用を拒否したことを示します。 -
UNKNOWN_ERRORは、サーバーエラーのために距離行列要求を処理できなかったことを示します。 再試行すると、要求が成功する可能性があります。
要素レベルのステータスコード
-
OKresultが含まれていることを示します。 -
NOT_FOUNDは、このペアリングの原点および/または宛先をジオコーディングできなかったことを示します。 -
ZERO_RESULTSは、出発地と目的地の間にルートが見つからなかったことを示します。 -
MAX_ROUTE_LENGTH_EXCEEDEDOK以外の場合、Distance Matrix応答オブジェクト内に追加のerror_messageフィールドが存在する可能性があります。 このフィールドには、指定されたステータスコードの背後にある理由に関するより詳細な情報。注:このフィールドが常に存在することは保証されておらず、その内容は変更される可能性があります。距離行列APIが結果を返すと、JSONrows配列内に配置されます。 結果が返されなくても(起源や目的地が存在しない場合など)、空の配列が返されます。 XMLレスポンスは、ゼロ以上の<row>要素で構成されます。行は、要求の
originelementdestination値のペアに対応します。各
rowelementエントリが含まれており、単一の起点と終点のペアリングに関する情報が含まれています。要素
各起点と終点のペアリングに関する情報は、
elementelement次のフィールドが含まれています。-
status:可能なステータスコードのリストについては、ステータスコードを参照してください。 -
durationvaluetextlanguageパラメーターに従ってローカライズされます。 -
duration_in_traffictraffic_modelvaluetextlanguageパラメーターに従ってローカライズされます。 トラフィックの期間は、次のすべてがtrueの場合にのみ返されます。- 要求には
departure_timeパラメータが含まれています。 - リクエストには、有効なAPIキー、または有効なGoogle Maps Platform Premium PlanクライアントIDと署名が含まれています。
- 交通状況は、要求されたルートのために利用可能です。
-
modedrivingに設定されています。
- 要求には
-
distancevaluetextunitパラメータで指定された単位系、またはオリジンの領域を使用します。 -
fare:存在する場合、このルートの合計運賃(つまり、チケットの合計コスト)が含まれています。 このプロパティは、トランジットリクエストと運賃情報が利用可能なトランジットプロバイダの場合にのみ返されます。 この情報には、-
currency:金額が表現されている通貨を示すISO4217通貨コードが含まれます。 -
value:上記で指定された通貨での合計運賃額。 -
text:要求された言語でフォーマットされた合計運賃額。
-
以下は、運賃情報を含む
elementの例です。sensorパラメータ
Google Maps APIでは、以前、アプリケーションがasensorを使用してユーザーの位置を決定したかどうかを示す
sensorパラメータを含める必要がありました。 このパラメータはもはや必須ではありません。 -
ul*注:制限の追加は、制限された機能を含むルートを排除するものではなく、結果をより有利なルートにバイアスします。
単位系
距離行列の結果には、textdistance計算されたルートの距離を示すフィールドが含まれています。 使用する単位系を指定することができます。
*注:このユニットシステム設定は、distancetextvaluesも含まれています。
距離行列応答
距離行列APIクエリへの応答は、URL要求のパス内のoutputフラグで示される形式で返されます。
二つのサンプルHTTP要求は、バンクーバー、BC、カナダから、シアトル、ワシントン州、サンフランシスコ、カリフォルニア州、カナダビクトリア、BC、カナダへの距離と期間を要求し、以下に示されています。このリクエストはJSONoutputフラグの使用を示しています:
このリクエストは、XMLを使用して実証していますoutputフラグ:
このリクエストは、四つの要素を返します-二つの起源×二つの目的地:
| バンクーバーからサンフランシスコ | バンクーバーからビクトリア | |||||||||||
| シアトルからサンフランシスコ | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア | シアトルからビクトリア |
結果は行に返され、各行には各宛先とペアになった原点が含まれます。これをテストするには、webブラウザにURLを入力します(YOUR_API_KEYを実際のAPIキーに置き換えてください)。
以下のタブを選択して、JSONおよびXML応答のサンプルを表示します。
このドキュメントの残りの部分ではJSON構文を使用します。
距離行列応答要素
距離行列応答には、次のルート要素が含まれています。
ステータスコード
応答オブジェクト内のstatusフィールドには、要求のステータスが含まれており、有用なデバッグ情報が含まれてい Distance Matrix APIは、要求全般に関する情報を含む最上位のステータスフィールドと、各要素フィールドのステータスフィールドと、その特定の起点と終点のペアリングに