ガイドAPIリファレンス
ガイド

リージョンとregionDefinition

各ルーティイングマトリックスのリクエストには、パラメーターregionDefinitionが必要です。このパラメーターでは、マトリックスを計算するリージョンを定義します。地域の定義は、ユーザーが指定することも、サービスによって自動的に取得することもできます。

regionDefinitionパラメーターには、任意の長さのルートを持つマトリックスの計算を可能にするために使用される特殊なバリアントworldがあります。次の2つのケースのいずれかで使用できます。

  • 指定したプロファイルと組み合わせて使用します。次に、定義済みのオプションおよびフリーフロー速度のトラフィックに基づいて、ルーティイングマトリックスが計算されます。詳細については、「マトリックス計算のプロファイル」を参照してください。
  • プロファイルを指定せず、最大サイズが15x100または100x1のマトリックスの場合。マトリックスはカスタムオプションと動的トラフィックで計算できます。

ここでは、リージョン定義のバリアントがworldではないと仮定します。

各出発地と目的地はこのリージョン内にある必要があります。リージョン内のデータのみが結果の計算に使用されます。これにはいくつかの意味があります。

まず、指定された地域の外にある出発地または到着地の場合、次のとおりです。

  • 十分に近い場合はリージョンの境界に一致する、または
  • エラーマトリックスにエラーコードが生成され、一致できなかったことが示される

そのため、すべての出発地と目的地がこのリージョン内にあることを確認する必要があります。

別の考慮事項として、出発地または目的地が地域の内側にあるものの境界に近すぎる場合は、サービスが最適でないルートを計算する可能性があります。たとえば、高速道路を使ってより速いルートを選択するために、目的地とは別の方向に運転した方が速い場合があります。このように出発地の周囲の地域が狭すぎる場合、高速道路が対象から外れる可能性があります。

この問題を回避するには、すべての座標の周りに適切なマージンを持たせた地域を指定する必要があります。マージンの大きさは道路ネットワークの特性に依存します。都市では、数キロのマージンで十分な場合があります。

しかし地方では、迂回距離が長いため、より大きなマージンが必要となります。

サポートされている地域

マトリックスルーティングサービスは、最大の大きさ400kmの3種類のリージョンをサポートしています。

サークル

サークルのリージョンは、その中心と半径でメートル単位で次の形式で指定されます。

{
    "type": "circle",
    "center": {"lat": 0.0, "lng": 0.0},
    "radius": 10000  // 10 km
}

バウンディングボックス

軸に沿った境界線は、東から西、北から南の範囲で指定されます。

反転した範囲 (北/southまたは西/eastがスワップされた範囲) が無効です。バウンディングボックスの寸法は、いずれかの対角線上にあるコーナーのハバーサイン距離として計算されます。

{
    "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を要求しても、要求されたマージンが大きすぎる場合など、結果のサークルのサイズが有効であるとは保証されません。一方、上述のように、マトリックスの計算を成功させるには、マージンが十分な大きさである必要があります。マージンを指定せずに、サービスが市内のルートに適したデフォルト値 (10km) を使用するようにすることもできます。

{
    "type": "autoCircle",
    "margin": 1000
}

派生したサークルがタイプCircleRegionDefinitionとしてMatrixResponseに表示されます。