リージョン
各ルーティイングマトリックスのリクエストには、パラメータ regionDefinition
が必要です。 このパラメータでは、マトリックスを計算するリージョンを定義します。 リージョン定義は、ユーザーが指定することも、サービスによって自動的に取得することもできます。
regionDefinition
パラメーターには、 world
任意の長さのルートを持つマトリックスの計算を可能にするために使用される特殊なバリアントがあります。 次のいずれかの場合に使用できます。
- 指定したプロファイルと組み合わせて使用します。 次に、定義済みのオプションおよびフリーフロー速度のトラフィックに基づいて、ルーティングマトリクスが計算されます。 詳細については 、「プロファイル」を参照してください。
- 最大サイズが 15x100 または 100x1 のマトリックスの場合、プロファイルを指定せずに行います。 マトリックスは、カスタムオプションおよび動的トラフィックで計算できます。
ここでは、リージョン定義のバリアントがworld
ではないと仮定します。
各出発地と目的地はこのリージョン内にある必要があります。 リージョン内のデータのみが結果の計算に使用されます。 これにはいくつかの意味があります。
まず、指定したリージョンの外部にある送信元または宛先は、次のいずれかになります。
- 十分に近い場合はリージョンの境界に一致するか、または
- 一致できなかったことを示すエラーコードがエラーマトリックスに表示されます
そのため、すべての出発地と目的地がこのリージョン内にあることを確認する必要があります。
別の考慮事項として、出発地または目的地がリージョンの内側にあり、境界に近すぎる場合、サービスが最適でないルートを計算する可能性があります。 たとえば、高速道路を使ってより速いルートを選択するために、目的地とは別の方向に運転した方が速い場合があります。このような出発地の周囲でリージョンが狭すぎる場合、高速道路が遮断される可能性があります。
この問題を回避するには、すべての座標の周囲に適切なマージンを持つリージョンを指定する必要があります。 マージンのサイズは、道路ネットワークの特性によって異なります。 都市では、数キロメートルのマージンで十分です。 しかし、農村地域では、長い迂回路があるため、より大きなマージンが必要です。
サポートされているリージョン
マトリックスルーティングサービスは、最大の大きさ 400 km の 3 種類のリージョンをサポートしています。
サークル
サークルのリージョンは、その中心と半径でメートル単位で次の形式で指定されます。
{
"type": "circle",
"center": {"lat": 0.0, "lng": 0.0},
"radius": 10000
}
バウンディングボックス
軸に沿った境界線は、東から西、北から南の範囲で指定されます。 反転した範囲 ( 北 / 南または西 / 東がスワップされた範囲 ) が無効です。 バウンディング ボックスの大きさは、いずれかの対角線上にあるコーナーの横方向の距離として計算されます。
{
"type": "boundingBox",
"west": 0,
"east": 2,
"north": 10,
"south": 0,
}
0 番目または 180 番目の経線に広がるバウンディング ボックスが有効です。
ポリゴン
ポリゴンは、その頂点のリストで指定されます。このリストでは、連続する 2 つのエレメント、およびリストの最後と最初のエレメントが結合済みと見なされます。 サービスは、最大 100 の頂点を持つポリゴンをサポートします。 ポリゴンは凸状である必要はありません。 ただし 、自己交差していてはなりません。 ポリゴンの大きさは、任意の 2 つの頂点間のハバーサイン距離の最大値です。 この定義の後、ポリゴンは、常に同じ半径と対応する中心を持つサークルで置き換えることができます。
ポリゴンの指定は、次の理由で便利です。
- ポイントを囲むサークルを計算するよりも、シェイプをポリゴンとして記述する方が簡単な場合があります
- リージョンが小さいほど、サービスの計算時間が短縮されます。そのため、ポリゴンリージョンを使用して計算を高速化できます。
{
"type": "polygon",
"outer": [
{"lat": 0.0, "lng": 0.0},
{"lat": 1.0, "lng": 0.0},
{"lat": 1.0, "lng": 1.0},
{"lat": 0.0, "lng": 1.0}
]
}
オートサークル
オートサークルは、regionDefinition
の特殊なバリアントです 。これは、サービスが、提供された出発地と到着地を含むサークルをマージン付きで自動的に派生することを示します。 autoCircle
を要求しても、要求されたマージンが大きすぎる場合など、結果のサークルのサイズが有効であるとは保証されません。 一方、上記のように、マトリックスの計算を成功させるには、マージンが十分な大きさである必要があります。 市内のルートに適したデフォルト値( 10 km )を使用するように、マージンを指定しないこともできます。
{
"type": "autoCircle",
"margin": 1000
}
派生したサークルが RegionDefinition
のタイプCircle
としてMatrixResponse
に表示 されます。