基本的なコンセプト

等時線を生成するには、出発地、移動手段(車、二輪車、自転車、徒歩など)、制限時間を API に指定します。また、ルート設定や、結果のポリゴンの外観を調整することもできます。

移動手段

必須の travelMode(travel_mode)パラメータを使用して、移動手段を指定します。

  • DRIVE: 走行可能な道路に沿って、乗用車の車での移動圏内を計算します。計算には、制限速度、道路階層、右左折ペナルティ、リアルタイム交通状況(オプション)が使用されます。
  • TWO_WHEELER: モード固有の道路アクセスルールと、高速道路での DRIVE よりも低いモデル速度を使用して、二輪車(オートバイやスクーターなど)の到達可能性を計算します。その結果、TWO_WHEELER 等時線は通常、BICYCLE より広いエリアをカバーしますが、高速道路沿いの DRIVE よりは狭いエリアをカバーします。
  • BICYCLE: 自転車が通行可能な道路、自転車レーン、共有パスに沿って、自転車の到達可能性を計算します。速度は道路の種類と傾斜に合わせて調整されます。高速道路とアクセス制限のある高速道路は除外されます。
  • WALK: 歩道、歩行者専用道路、トレイル、歩行者が通行可能な道路に沿って歩行者の到達可能性を計算します。歩行速度は傾斜に合わせて調整されます。徒歩での移動では、車両の一方通行規制は無視されます。

期間

サービスに指定する主な制約は travelDuration(travel_duration)です。これにより、計算の期間が定義されます。

  • 最小期間と最大期間: 期間は "1s"(1 秒)以上にする必要があります。ゼロ("0s")、負の期間、1 秒未満の期間("0.5s" など)は、400 INVALID_ARGUMENT エラーを返します。この API は、DRIVE モードと TWO_WHEELER モードでは最大 3,600 秒(1 時間)、WALK モードと BICYCLE モードでは最大 7,200 秒(2 時間)の移動時間をサポートしています。
  • 最小ポリゴン フロア: API は到達した道路セグメントを空間グリッドセルに変換するため、非常に短い時間で、スナップされた出発地の周囲のグリッドセルをカバーする小さなポリゴンが返されます。
  • パフォーマンス: 計算時間は、リクエストされた期間と選択した移動手段に応じて変化します。1 時間の運転等時線は、1 時間の徒歩等時線よりもはるかに広い地理的エリアと道路網をカバーするため、運転リクエストのレイテンシが高くなります。
  • 形式: API は google.protobuf.Duration を使用するため、期間は整数ではなく、"s" で終わる文字列(例: "3600s")としてフォーマットする必要があります。

出発地と道路スナップ

等時線の開始点は、次の 2 つの方法で指定できます。

  • 座標(location): 緯度と経度のペア。latitude([-90, 90] 内)と longitude([-180, 180] 内)の両方を指定します。どちらかを省略すると、API は 0.0 として扱い、赤道または本初子午線上に点を配置します。両方を省略({})するか、(0, 0) を送信すると、API は 400 INVALID_ARGUMENT エラーを返します。
  • プレイス ID(place): Google マップ上の特定の場所の固有識別子。プレイス ID を指定すると、サービスは場所を重心座標に解決し、そのポイントを最も近い道路にスナップします。places/ で始まるリソース名の形式(例: places/ChIJIQBpAG2ahYAR_6128GcTUEo)を使用します。places/ 接頭辞のないプレイス ID のみでも使用できます。プレイス ID について詳しくは、プレイス ID をご覧ください。

入力方法に関係なく、API は、公園や建物内など、道路上にない正確な物理的な地点からの移動時間を計算しません。この状況に対処するため、サービスは道路スナップを使用します。道路スナップには次の機能があります。

  • スマート スナップ: サービスは、出発地点を最も近い通行可能な道路セグメントにスナップしようとします。
  • モード認識: スナップ ロジックは travel_mode を考慮します。DRIVE または TWO_WHEELER をリクエストすると、API は歩行者専用の経路を無視して、最も近い走行可能な道路を探します。WALK をリクエストすると、API は歩行可能な経路と歩道を優先します。
  • 失敗ケース: 出発地点の最大スナップ距離(約 200 メートル、WALK と BICYCLE の場合はそれ以下)内に適切な道路セグメントが見つからない場合、API は 404 NOT_FOUND エラーを返します。大きな地理的特徴(公園、キャンパス、景色の良い場所など)では、プレイス ID の重心が、移動モードで使用可能な最も近い道路からスナップ距離よりも遠い場合があります。そのような場合は、代わりに道路の入り口の明示的な location 座標を渡します。

移動方向(インバウンドとアウトバウンド)

travelDirection(travel_direction)パラメータを使用して、インバウンドとアウトバウンドの両方の到達可能性を計算できます。

  • FROM(往路): 指定された制限時間内に、出発地から到達可能なエリアを計算します。これは、配達エリアやサービス提供エリアなどのユースケースに適しています。
  • TO(インバウンド): 指定された制限時間内に、出発地まで移動できるエリアを計算します。これは、従業員が中央オフィスに通勤できる場所など、集客ゾーンを決定するのに適しています。

交通状況の認識

routingPreference(routing_preference)パラメータを使用して、交通データが生成されたポリゴンにどのように影響するかを制御します。

  • TRAFFIC_UNAWARE(デフォルト): 自由流速度制限と道路階層を使用して等時線ポリゴンを生成します。これにより、時間帯によって変動しない決定論的な形状が生成されます。このパラメータは、一般的な分析やベースライン シナリオの計画に最適です。
  • TRAFFIC_AWARE: リクエストが処理された時点のライブ交通状況を使用して等時線を計算します(v1 では、カスタムの将来または過去の出発または到着のタイムスタンプは構成できません)。これにより、到達可能エリアは混雑時に縮小し、オフピーク時に拡大します。フリーフローまたはオフピークの条件では、TRAFFIC_AWARE と TRAFFIC_UNAWARE はほぼ同じポリゴンを返す可能性があります。注: 交通状況を考慮したルートは、travelMode が DRIVE または TWO_WHEELER に設定されている場合にのみサポートされます。

スムージングと忠実度

出力ポリゴンの外観と精度は、polygonFidelity(polygon_fidelity)パラメータと enableSmoothing(enable_smoothing)パラメータを使用してカスタマイズできます。これらのオプションは独立していますが、連携して最終的な形状を決定します。

  • polygonFidelity: 到達可能な境界の近似に使用される空間グリッドセルの解像度を制御します。

    • LOW: 最大のグリッドセル(幅数百メートル)を使用します。頂点が少なく、内部にギャップがない広いエリアをカバーするのに最適です。その結果、狭い道路沿いの到達可能なエリアを過大評価する可能性がある一般的な形状になります。
    • MEDIUM: 精度と頂点数のバランスが取れています。
    • HIGH: 最小のグリッドセル(約 100 ~ 150 メートル)を使用します。到達した道路ネットワークにぴったりとフィットしますが、道路ネットワークがまばらな場所では内部に穴が生じることがあります。
    • POLYGON_FIDELITY_UNSPECIFIED: 指定しない場合、サービスは移動モードと所要時間に基づいて解像度を自動的に選択します。所要時間が短い場合と WALK の場合は細かいセルを使用し、所要時間が長い場合は粗いセルを使用します。異なる所要時間または移動手段で等時線を比較するには、polygonFidelity を明示的に設定します。
      高、中、低のポリゴン忠実度
      高、中、低のポリゴン忠実度
  • enableSmoothing: フィデリティで定義されたグリッドセルの階段状のエッジを丸めるかどうかを制御します。

    • false(未加工): デフォルト。グリッドに揃えられた境界を返します。エッジはグリッドセルに沿って階段状に表示されます。厳密なポイントインポリゴン テストなど、分析の精度に最適です。
    • true(平滑化): 各リングの面積をほぼ維持しながら、視覚的な地図表示のために鋭角を丸めます。境界はグリッドセルに沿っていません。
      スムージングありとなしの等時線
      等時線(スムージングあり / なし)