飛行計画 シーケンス図
本ドキュメントは、以下のユースケースドキュメントに記載された「飛行計画の管理・通報」に関するユースケースを基に、飛行計画のCRUD(作成・確認・更新・削除)、DIPS通報、飛行開始終了のシーケンス図を作成したものである。
各シーケンス図の先頭には、どのユースケースから作成したかを Note で明記している。また、シーケンス内で他のユースケース(サブユースケース/include・extend関係にあるユースケース)を実施している箇所にも、該当ユースケースIDを Note で記載する。
トランザクション境界・ロック制御(状態遷移の排他制御。ADR-019参照)の検討は本ドキュメントの対象外とし、詳細設計にて別途対応する。
どこまでを1トランザクションにまとめるか、SELECT FOR UPDATE等での排他制御をどの範囲に適用するかは本シーケンスでは規定しない。
登場人物(アクター/コンポーネント):
| 名称 | 説明 |
|---|---|
| Operator | 運航者。飛行計画のCRUDを行う利用者。 |
| Frontend | UTMのフロントエンド(MapUI)。Operatorの画面操作を受け付け、各Backendを呼び出す。 |
| FlightPlanning | 飛行計画バックエンド。飛行計画のCRUD・DIPS通報・DIPSからの許可承認/飛行禁止エリア/他の飛行計画情報の収集を担当する。 |
| GeoSpatial | 空間情報バックエンド。空域制限・他の飛行計画の位置検索と重畳表示用データの提供を担当する。 |
| DB | IX-UTMが保持するデータベース(飛行計画・飛行禁止エリア等)。 |
| DIPS | ドローン情報基盤システム(外部システム)。 |
1. 作成(Create) - UC-PLAN-01: 飛行計画を作成する
Section titled “1. 作成(Create) - UC-PLAN-01: 飛行計画を作成する”sequenceDiagram
autonumber
actor Operator
box UTM
participant Frontend
participant FlightPlanning
participant GeoSpatial
participant DB
end
participant DIPS
Note over Operator,DIPS: 本シーケンスは「UC-PLAN-01: 飛行計画を作成する」から作成
Operator->>Frontend: 「飛行計画」画面を開く
Frontend->>FlightPlanning: 飛行計画一覧取得(listFlightPlans: GET /api/v1/fp/flight-plans)
FlightPlanning->>DB: 飛行計画一覧取得(一時保存分を含む)
DB-->>FlightPlanning: 一覧
FlightPlanning-->>Frontend: 一覧
Frontend-->>Operator: 一覧を表示
Operator->>Frontend: 「新規作成」ボタン押下
opt UC-PLAN-01-12: GCSの飛行ミッションをインポートする
Note over Operator,FlightPlanning: UC-PLAN-01-12: GCSの飛行ミッションをインポートする(実装対象外)
Operator->>Frontend: 飛行ミッションファイルをアップロード
Frontend->>FlightPlanning: 飛行ミッションファイルを解析(parseFlightPlanFromGcsMission: POST /api/v1/fp/flight-plan-parses)
FlightPlanning->>FlightPlanning: ミッションファイルを解析(DBへの登録は行わない)
FlightPlanning-->>Frontend: 解析結果(飛行計画情報)
Frontend-->>Operator: 解析結果を入力欄に反映
end
Operator->>Frontend: 基本情報を入力(飛行計画名、飛行予定日時、飛行時間)
Note over Operator: UC-PLAN-01-2: 機体を指定する
Note over Operator: UC-PLAN-01-3: 操縦者を指定する
Operator->>Frontend: 機体・操縦者を指定
opt 通報が必要な飛行計画の場合
Note over Operator: UC-PLAN-01-1: 飛行目的を指定する
Note over Operator: UC-PLAN-01-4: 保険を指定する
Operator->>Frontend: 飛行目的・保険を入力
end
opt 飛行許可・承認申請が必要な場合
alt Operatorが手動入力する場合
Note over Operator: UC-PLAN-01-5: 許可承認を指定する
Operator->>Frontend: 許可承認を入力
else DIPSから取得した情報で自動入力する場合
Note over Operator,DIPS: UC-PLAN-01-6: DIPSの許可承認情報を指定する
Operator->>Frontend: 「DIPSから許可承認を取得」ボタン押下
Frontend->>FlightPlanning: 許可・承認情報取得
Note over FlightPlanning,DIPS: UC-DIPS-02: OperatorのDIPS APIの認証をする(include)
FlightPlanning->>DIPS: 許可・承認情報取得(DIPS API)
DIPS-->>FlightPlanning: 許可承認一覧
FlightPlanning-->>Frontend: 一覧
Frontend-->>Operator: 一覧を表示
Operator->>Frontend: 使用する許可承認を選択
end
end
Note over Operator: UC-PLAN-01-11: 経路/エリアを設定する
Operator->>Frontend: 経路/エリア(Route/ポリゴン/円のいずれか)を設定
opt 経路/エリア設定時の事前競合チェック
Note over Operator,FlightPlanning: 飛行計画競合チェック(実装対象外)
Frontend->>FlightPlanning: 飛行計画競合チェック(execConflictCheck: POST /api/v1/fp/flight-plan-conflict-checks)
FlightPlanning->>DB: 空域制限との競合を判定
DB-->>FlightPlanning: 競合している空域制限一覧
FlightPlanning-->>Frontend: 競合している空域制限一覧
Frontend-->>Operator: 競合の有無を表示(保存前のプレビュー。DBへの保存は行わない)
end
Note over Operator,DB: 「9. 共通シーケンス:飛行禁止エリア・他の飛行計画の確認」を参照
alt 一時保存の場合
Operator->>Frontend: 「一時保存」ボタン押下
Frontend->>FlightPlanning: 飛行計画仮登録(createFlightPlan: POST /api/v1/fp/flight-plans)
FlightPlanning->>DB: 飛行計画を保存(状態:DRAFT、検証・競合判定は行わない)
DB-->>FlightPlanning: 保存完了
FlightPlanning-->>Frontend: 保存完了
Frontend-->>Operator: 一時保存完了を表示
else 保存の場合
Operator->>Frontend: 「保存」ボタン押下
Frontend->>FlightPlanning: 飛行計画仮登録(createFlightPlan: POST /api/v1/fp/flight-plans)
FlightPlanning->>DB: 飛行計画を保存(状態:DRAFT)
DB-->>FlightPlanning: 保存完了
Frontend->>FlightPlanning: 飛行計画本登録(registerFlightPlan: POST /api/v1/fp/flight-plans/{flightPlanId}/registration)
FlightPlanning->>DB: 全入力項目を検証し本登録(状態:ACCEPTED)
DB-->>FlightPlanning: 登録完了
Note over FlightPlanning,DB: UC-PLAN-01-13: 飛行禁止エリアとの競合を検知する
FlightPlanning->>DB: 飛行禁止エリアとの競合を判定
DB-->>FlightPlanning: 競合有無
alt 競合ありの場合
FlightPlanning->>DB: 競合情報の保存
Note over Operator,FlightPlanning: UC-USP-05: 飛行計画の競合発生を通知する
FlightPlanning-->>Frontend: 競合を警告(本登録はブロックしない)
Frontend-->>Operator: 競合を警告
end
FlightPlanning-->>Frontend: 本登録完了・通報の実施を促す
Frontend-->>Operator: 本登録完了・通報の実施を促す
end
2. 確認(Read) - UC-PLAN-03: 飛行計画を確認・更新する(確認フロー)
Section titled “2. 確認(Read) - UC-PLAN-03: 飛行計画を確認・更新する(確認フロー)”sequenceDiagram
autonumber
actor Operator
box UTM
participant Frontend
participant FlightPlanning
participant GeoSpatial
participant DB
end
participant DIPS
Note over Operator,DIPS: 本シーケンスは「UC-PLAN-03: 飛行計画を確認・更新する」の確認フロー(手順1〜6)から作成
Operator->>Frontend: 「飛行計画」画面を開く
Frontend->>FlightPlanning: 飛行計画一覧取得(listFlightPlans: GET /api/v1/fp/flight-plans)
FlightPlanning->>DB: 飛行計画一覧取得
DB-->>FlightPlanning: 一覧
FlightPlanning-->>Frontend: 一覧
Frontend-->>Operator: 一覧を表示
Operator->>Frontend: 一覧から対象の飛行計画を選択
Frontend->>FlightPlanning: 飛行計画詳細取得(getFlightPlan: GET /api/v1/fp/flight-plans/{flightPlanId})
FlightPlanning->>DB: 飛行計画詳細取得
DB-->>FlightPlanning: 飛行計画詳細
FlightPlanning-->>Frontend: 飛行計画詳細
Note over Frontend,DB: UC-PLAN-01-7: 飛行禁止エリアを確認する
Note over Frontend,DB: UC-PLAN-01-9: 他の飛行計画を確認する
opt 飛行計画周辺データの最新化
Note over Operator,DIPS: UC-PLAN-01-10: 飛行計画付近の他の飛行計画を収集する
Operator->>Frontend: 「周辺データの最新化」操作
Frontend->>FlightPlanning: 飛行計画周辺データ更新(refreshNearbyFlightPlans: POST /api/v1/fp/flight-plans/{flightPlanId}/nearby-data-refresh)
FlightPlanning->>DIPS: 対象の飛行計画のflyRoute・flightPeriodをもとに、周辺の他の飛行計画を取得(DIPS API)
DIPS-->>FlightPlanning: 他の飛行計画情報
FlightPlanning->>DB: 取得した情報を保存・更新
DB-->>FlightPlanning: 更新完了
FlightPlanning-->>Frontend: 更新完了
end
Frontend->>GeoSpatial: 飛行禁止エリア・他の飛行計画取得
GeoSpatial->>DB: 飛行禁止エリア・他の飛行計画を取得
DB-->>GeoSpatial: 重畳表示用データ
GeoSpatial-->>Frontend: 重畳表示用データ
Frontend-->>Operator: 飛行計画の詳細画面を表示(飛行禁止エリア・他の飛行計画を重畳表示)
Operator->>Frontend: 飛行計画の詳細項目、重畳表示の内容を確認
3. 更新(Update) - UC-PLAN-03: 飛行計画を確認・更新する(変更フロー)
Section titled “3. 更新(Update) - UC-PLAN-03: 飛行計画を確認・更新する(変更フロー)”sequenceDiagram
autonumber
actor Operator
box UTM
participant Frontend
participant FlightPlanning
participant GeoSpatial
participant DB
end
participant DIPS
Note over Operator,DIPS: 本シーケンスは「UC-PLAN-03: 飛行計画を確認・更新する」の飛行計画変更フロー(手順7〜15)から作成<br/>前提:「2. 確認(Read)」のシーケンスで対象の飛行計画を表示済みであること
Note over Operator: UC-PLAN-01-2: 機体を指定する
Note over Operator: UC-PLAN-01-3: 操縦者を指定する
Operator->>Frontend: 機体・操縦者を変更
opt 通報が必要な飛行計画の場合
Note over Operator: UC-PLAN-01-1: 飛行目的を指定する
Note over Operator: UC-PLAN-01-4: 保険を指定する
Operator->>Frontend: 飛行目的・保険を変更
end
opt 飛行許可・承認申請が必要な場合
alt Operatorが手動入力する場合
Note over Operator: UC-PLAN-01-5: 許可承認を指定する
Operator->>Frontend: 許可承認を変更
else DIPSから取得した情報で自動入力する場合
Note over Operator,DIPS: UC-PLAN-01-6: DIPSの許可承認情報を指定する
Operator->>Frontend: 「DIPSから許可承認を取得」ボタン押下
Frontend->>FlightPlanning: 許可・承認情報取得
Note over FlightPlanning,DIPS: UC-DIPS-02: OperatorのDIPS APIの認証をする(include)
FlightPlanning->>DIPS: 許可・承認情報取得(DIPS API)
DIPS-->>FlightPlanning: 許可承認一覧
FlightPlanning-->>Frontend: 一覧
Frontend-->>Operator: 一覧を表示
Operator->>Frontend: 使用する許可承認を選択
end
end
Note over Operator: UC-PLAN-01-11: 経路/エリアを設定する
Operator->>Frontend: 経路/エリアを変更
opt 経路/エリア変更時の事前競合チェック
Note over Operator,FlightPlanning: 飛行計画競合チェック(実装対象外)
Frontend->>FlightPlanning: 飛行計画競合チェック(execConflictCheck: POST /api/v1/fp/flight-plan-conflict-checks)
FlightPlanning->>DB: 空域制限との競合を判定
DB-->>FlightPlanning: 競合している空域制限一覧
FlightPlanning-->>Frontend: 競合している空域制限一覧
Frontend-->>Operator: 競合の有無を表示(保存前のプレビュー。DBへの保存は行わない)
end
Note over Operator,DB: 「9. 共通シーケンス:飛行禁止エリア・他の飛行計画の確認」を参照
alt 対象がDRAFTの場合
alt 一時保存の場合
Operator->>Frontend: 「一時保存」ボタン押下
Frontend->>FlightPlanning: 変更内容を保存(updateFlightPlan: PUT /api/v1/fp/flight-plans/{flightPlanId})
FlightPlanning->>DB: 変更内容を保存(状態:DRAFT、検証・競合判定は行わない)
DB-->>FlightPlanning: 保存完了
FlightPlanning-->>Frontend: 保存完了
Frontend-->>Operator: 一時保存完了を表示
else 保存(本登録)の場合
Operator->>Frontend: 「保存」ボタン押下
Frontend->>FlightPlanning: 変更内容を保存(updateFlightPlan: PUT /api/v1/fp/flight-plans/{flightPlanId})
FlightPlanning->>DB: 変更内容を保存(状態:DRAFT)
DB-->>FlightPlanning: 保存完了
Frontend->>FlightPlanning: 飛行計画本登録(registerFlightPlan: POST /api/v1/fp/flight-plans/{flightPlanId}/registration)
FlightPlanning->>DB: 全入力項目を検証し本登録(状態:ACCEPTED)
DB-->>FlightPlanning: 登録完了
Note over FlightPlanning,DB: UC-PLAN-01-13: 飛行禁止エリアとの競合を検知する
FlightPlanning->>DB: 飛行禁止エリアとの競合を判定
DB-->>FlightPlanning: 競合有無
alt 競合ありの場合
FlightPlanning->>DB: 競合情報の保存
Note over Operator,FlightPlanning: UC-USP-05: 飛行計画の競合発生を通知する
FlightPlanning-->>Frontend: 競合を警告(本登録はブロックしない)
Frontend-->>Operator: 競合を警告
end
FlightPlanning-->>Frontend: 本登録完了・通報の実施を促す
Frontend-->>Operator: 本登録完了・通報の実施を促す
end
else 対象がACCEPTED以降の場合
Operator->>Frontend: 「保存」ボタン押下
Frontend->>FlightPlanning: 変更後の飛行計画を保存(updateFlightPlan: PUT /api/v1/fp/flight-plans/{flightPlanId})
FlightPlanning->>DB: 全入力項目を検証し変更後の飛行計画を保存(状態:ACCEPTED以降のまま)
DB-->>FlightPlanning: 保存完了
Note over FlightPlanning,DB: UC-PLAN-01-13: 飛行禁止エリアとの競合を検知する
FlightPlanning->>DB: 飛行禁止エリアとの競合を判定
DB-->>FlightPlanning: 競合有無
alt 競合ありの場合
FlightPlanning->>DB: 競合情報の保存
Note over Operator,FlightPlanning: UC-USP-05: 飛行計画の競合発生を通知する
FlightPlanning-->>Frontend: 競合を警告(保存はブロックしない)
Frontend-->>Operator: 競合を警告
end
FlightPlanning->>DB: DIPS通報済みか判定
DB-->>FlightPlanning: 通報ステータス
alt DIPS通報済みの場合
FlightPlanning-->>Frontend: DIPSとのデータ不一致を警告し、再通報するか確認
Frontend-->>Operator: DIPSとのデータ不一致を警告し、再通報するか確認
Note over Operator,DIPS: Operatorが再通報を選択した場合は「UC-DIPS-03: 飛行計画を通報する」へ遷移(別シーケンス)
else 未通報かつ初回保存の場合
FlightPlanning-->>Frontend: 通報の実施を促す
Frontend-->>Operator: 通報の実施を促す
else それ以外の場合
FlightPlanning-->>Frontend: 保存完了を表示
Frontend-->>Operator: 保存完了を表示
end
end
4. 削除(Delete) - UC-PLAN-04: 飛行計画を削除する
Section titled “4. 削除(Delete) - UC-PLAN-04: 飛行計画を削除する”sequenceDiagram
autonumber
actor Operator
box UTM
participant Frontend
participant FlightPlanning
participant DB
end
participant DIPS
Note over Operator,DIPS: 本シーケンスは「UC-PLAN-04: 飛行計画を削除する」から作成
Operator->>Frontend: 「飛行計画」画面を開く
Frontend->>FlightPlanning: 飛行計画一覧取得(listFlightPlans: GET /api/v1/fp/flight-plans)
FlightPlanning->>DB: 飛行計画一覧取得
DB-->>FlightPlanning: 一覧
FlightPlanning-->>Frontend: 一覧
Frontend-->>Operator: 一覧を表示
Operator->>Frontend: 削除対象の飛行計画を選択
Operator->>Frontend: 「削除」ボタン押下
Frontend-->>Operator: 確認ダイアログを表示
Operator->>Frontend: 削除を確定
Frontend->>FlightPlanning: 対象の飛行計画を削除(deleteFlightPlan: DELETE /api/v1/fp/flight-plans/{flightPlanId})
FlightPlanning->>DB: DIPS通報済み(reportStatus=REPORTED)か判定
DB-->>FlightPlanning: 通報ステータス
alt DIPS通報済みの場合
FlightPlanning->>DB: ステータスを更新(reportStatus=WITHDRAWING。DIPS API呼び出し前に更新)
FlightPlanning->>DIPS: DIPS側の飛行計画を削除(DIPS API:飛行計画削除)
alt DIPS API実行エラー
DIPS-->>FlightPlanning: 呼び出し失敗
FlightPlanning->>DB: 503・502はreportStatus=REPORTEDへ戻す/504はWITHDRAWINGのまま保持(WITHDRAW_TIMEOUTイベントとして記録)
FlightPlanning-->>Frontend: エラーを返却
Frontend-->>Operator: 削除失敗(再試行可能)を表示
else 削除成功
DIPS-->>FlightPlanning: 削除完了
FlightPlanning->>DB: 対象の飛行計画を削除(論理削除。飛行計画の更新履歴は保持する。reportStatus=WITHDRAWN)
DB-->>FlightPlanning: 削除完了
FlightPlanning-->>Frontend: 削除完了
Frontend-->>Operator: 削除完了を表示
end
else 未通報の場合
FlightPlanning->>DB: 対象の飛行計画を削除(論理削除。飛行計画の更新履歴は保持する。)
DB-->>FlightPlanning: 削除完了
FlightPlanning-->>Frontend: 削除完了
Frontend-->>Operator: 削除完了を表示
end
5. 通報(Report)
Section titled “5. 通報(Report)”sequenceDiagram
autonumber
actor Operator
box UTM
participant Frontend
participant FlightPlanning
participant DB
end
participant DIPS
Note over Operator,DIPS: 本シーケンスは 「UC-DIPS-03: 飛行計画を通報する」から作成
Operator->>Frontend: 通報対象の飛行計画を選択し「通報」ボタン押下
Frontend->>FlightPlanning: 飛行計画を通報(reportFlightPlan: POST /api/v1/fp/flight-plans/{flightPlanId}/report、Idempotency-Keyを送信)
FlightPlanning->>DB: ステータスを更新(reportStatus=REPORTING)
DB-->>FlightPlanning: 更新完了
FlightPlanning->>DIPS: 飛行計画情報を設定して通報(DIPS API:飛行計画通報受付)
alt DIPS API実行エラー
DIPS-->>FlightPlanning: 呼び出し失敗
FlightPlanning->>DB: 503・502はreportStatus=UNREPORTEDへ戻す(statusは変更しない)/504はREPORTINGのまま保持(REPORT_TIMEOUTイベントとして記録)
DB-->>FlightPlanning: 更新完了
FlightPlanning-->>Frontend: エラーを返却
Frontend-->>Operator: 通報失敗(再試行可能)を表示
else DIPS API呼び出し成功(受理・競合いずれの結果でも同じ扱い。statusには影響しない)
DIPS-->>FlightPlanning: 受理結果または競合ありの結果を返却
alt 初回の通報成功
FlightPlanning->>DB: ステータスを更新(reportStatus=REPORTED、応答の受付番号をdipsFlightPlanIdとして保存)
else 再通報(2回目以降。dipsFlightPlanIdは変更しない)
FlightPlanning->>DB: ステータスを更新(reportStatus=REPORTED)
end
DB-->>FlightPlanning: 更新完了
FlightPlanning-->>Frontend: 通報結果(reportStatus・dipsFlightPlanId)を返却
Frontend-->>Operator: 通報結果を表示
end
6. 飛行開始(Start)
Section titled “6. 飛行開始(Start)”sequenceDiagram
autonumber
actor Operator
box UTM
participant Frontend
participant FlightPlanning
participant DB
end
Note over Operator,DB: 本シーケンスは「UC-MON-01: 飛行を開始する」から作成
Operator->>Frontend: 飛行開始する飛行計画を選択し「飛行開始」ボタン押下
Frontend->>FlightPlanning: 飛行開始(activateFlightPlan: POST /api/v1/fp/flight-plans/{flightPlanId}/start)
FlightPlanning->>DB: 対象の飛行計画のステータスを更新(ACTIVATED)
DB-->>FlightPlanning: 更新完了
FlightPlanning-->>Frontend: 開始後のステータス情報を返却
Frontend-->>Operator: 開始後のステータス情報を表示
7. 飛行終了(Finish)
Section titled “7. 飛行終了(Finish)”sequenceDiagram
autonumber
actor Operator
box UTM
participant Frontend
participant FlightPlanning
participant DB
end
Note over Operator,DB: 本シーケンスは「UC-MON-02: 飛行を終了する」から作成
Operator->>Frontend: 飛行終了する飛行計画を選択し「飛行終了」ボタン押下
Frontend->>FlightPlanning: 飛行終了(completeFlightPlan: POST /api/v1/fp/flight-plans/{flightPlanId}/end)
FlightPlanning->>DB: 対象の飛行計画のステータスを更新(ENDED)し、飛行実績を保存
DB-->>FlightPlanning: 更新完了
FlightPlanning-->>Frontend: 終了後のステータス情報を返却
Frontend-->>Operator: 終了後のステータス情報を表示
8. キャンセル(Cancel)
Section titled “8. キャンセル(Cancel)”sequenceDiagram
autonumber
actor Operator
box UTM
participant Frontend
participant FlightPlanning
participant DB
end
participant DIPS
Operator->>Frontend: キャンセルする飛行計画を選択し「キャンセル」ボタン押下
Frontend-->>Operator: 確認ダイアログを表示
Operator->>Frontend: キャンセルを確定
Frontend->>FlightPlanning: 飛行計画キャンセル(cancelFlightPlan: POST /api/v1/fp/flight-plans/{flightPlanId}/cancel、Idempotency-Keyを送信)
FlightPlanning->>DB: DIPS通報済み(reportStatus=REPORTED)か判定
DB-->>FlightPlanning: 通報ステータス
alt DIPS通報済みの場合
FlightPlanning->>DB: ステータスを更新(reportStatus=WITHDRAWING。DIPS API呼び出し前に更新)
FlightPlanning->>DIPS: DIPS側の飛行計画を削除(DIPS API:飛行計画削除)
alt DIPS API実行エラー
DIPS-->>FlightPlanning: 呼び出し失敗
FlightPlanning->>DB: 503・502はreportStatus=REPORTEDへ戻す/504はWITHDRAWINGのまま保持(WITHDRAW_TIMEOUTイベントとして記録)
FlightPlanning-->>Frontend: エラーを返却
Frontend-->>Operator: キャンセル失敗(再試行可能)を表示
else 削除成功
DIPS-->>FlightPlanning: 削除完了
FlightPlanning->>DB: ステータスを更新(status=CANCELLED、reportStatus=WITHDRAWN)
DB-->>FlightPlanning: 更新完了
FlightPlanning-->>Frontend: キャンセル後のステータス情報を返却
Frontend-->>Operator: キャンセル後のステータス情報を表示
end
else 未通報の場合
FlightPlanning->>DB: ステータスを更新(status=CANCELLED)
DB-->>FlightPlanning: 更新完了
FlightPlanning-->>Frontend: キャンセル後のステータス情報を返却
Frontend-->>Operator: キャンセル後のステータス情報を表示
end
9. 共通シーケンス:飛行禁止エリア・他の飛行計画の確認
Section titled “9. 共通シーケンス:飛行禁止エリア・他の飛行計画の確認”「1. 作成」「3. 更新」の両方から参照される共通部分。変更時は本節のみを直せば両方に反映される (各シーケンス側では下記の内容を省略し、本節への参照のみを記載する)。
sequenceDiagram
autonumber
actor Operator
box UTM
participant Frontend
participant FlightPlanning
participant GeoSpatial
participant DB
end
participant DIPS
opt 最新の飛行禁止エリア取得
Note over Operator,DIPS: UC-PLAN-01-8: 飛行計画付近の飛行禁止エリアを収集する(実装対象外)
Operator->>Frontend: 対象種別を選択し「飛行禁止エリアの最新化」操作
Frontend->>FlightPlanning: 飛行禁止エリアの最新化
FlightPlanning->>DIPS: 飛行禁止エリア情報を取得(DIPS API)
DIPS-->>FlightPlanning: 飛行禁止エリア情報
FlightPlanning->>DB: 取得した情報を保存・更新
end
Note over Operator,DB: UC-PLAN-01-7: 飛行禁止エリアを確認する
Operator->>Frontend: 空域制限の重畳表示を要求
Frontend->>GeoSpatial: 空域制限取得
GeoSpatial->>DB: 空域制限を取得
DB-->>GeoSpatial: 重畳表示用データ
GeoSpatial-->>Frontend: ジオメトリ情報
Frontend-->>Operator: ジオメトリ情報を重畳表示
Note over Operator,DB: UC-PLAN-01-9: 他の飛行計画を確認する
Operator->>Frontend: 他の飛行計画の重畳表示を要求
Frontend->>GeoSpatial: 飛行計画取得
GeoSpatial->>DB: 他の飛行計画を取得
DB-->>GeoSpatial: 重畳表示用データ
GeoSpatial-->>Frontend: ジオメトリ情報
Frontend-->>Operator: ジオメトリ情報を重畳表示