アラートは、フィード上のさまざまなエンティティに関連付けたり、停車地、駅、交通機関、経路などの組み合わせに同時に適用したりすることができます。
この記事では、アラートを適用できる一般的な組み合わせについて詳しく説明します。
informed_entity の用途
1 つのアラートに複数の informed_entity を指定した場合、アラートは指定された値のいずれかを満たすエンティティに適用されます。
以下の例では、2 つの informed_entity で、それぞれ異なる経路が指定されています。これにより、両方の経路に属するすべてのルートと、両方の経路のルートで訪問されたすべての停車地にアラートが適用されます。
id: "2"
alert {
informed_entity {
route_id: "1"
}
informed_entity {
route_id: "2"
}
...
}
同じ informed_entity に複数のフィールドを入力すると、入力したすべての値を満たすエンティティにのみ適用されます。
以下の例では、informed_entity で route_id と stop_id の両方を指定しています。これによりアラートが適用されるのは、この特定の停車地の経路に属しているルートのセグメントのみです。公共交通機関での移動中に、指定した経路のルートで指定した停車地を訪問しなかった場合、アラートは表示されません。その逆も同様で、指定した経路に属していない指定した停車地を訪問するルートでも表示されません。
id: "2"
alert {
informed_entity {
route_id: "1"
stop_id: "2"
}
...
}
active_period の用途
informed_entity の trip フィールドでは、ルートの特定の日時を選択できます。その他のフィールドでは、対象となる停車地などのエンティティも選択できますが、アラートを適用するタイミングを示すために必要な情報は提供されません。
active_period は、各エンティティに対してアラートを適用する期間を定義するために、informed_entity と組み合わせて使う必要があります。ただし、ユーザーにアラートが表示されるタイミングは定義されません。
たとえば、12 月 25 日のすべてのルートに影響する active_period を含むアラートが 12 月 20 日に作成されたとします。
12 月 25 日に運行されるルートをユーザーが 12 月 20 日以降に事前に検索した場合は、アラートが表示されますが、定義した active_period の範囲外で運行されるルートでは表示されません。
active_period を指定していない場合、アラートは、作成後すぐに informed_entity で適用されて有効になり、フィードから削除されるまで適用されます。
アラートのコンテンツが不必要に事前通知されないようにするには、ユーザーに表示したいタイミングでアラートを作成します。たとえば、今後の「社会的距離」措置に関するアラートは、公式のプレスリリースの配信中にのみ公開する必要があります。
エンティティ セレクタの組み合わせ
交通機関全体
適用先:
- 交通機関に属するすべての経路とルート
- 交通機関に属するルートが訪問するすべてのバス停
実装の詳細:
informed_entityではagency_idフィールドのみ入力されている状態にするactive_periodでは、このアラートが有効になる期間を定義する
シナリオの例: 12 月 20 日の午前 10 時から午後 12 時まで、交通機関 A から提供されているすべての列車の運行に影響する線路の故障を伝える。
id: "1"
alert {
informed_entity {
agency_id: "A"
}
active_period {
start: 1608458400
end: 1608465600
}
effect: MODIFIED_SERVICE
cause: OTHER_CAUSE
...
}経路
適用先:
- 指定した経路に属するすべてのルート
- 経路に属するルートが訪問するすべてのバス停
実装の詳細:
informed_entityではroute_idフィールドのみ入力されている状態にするactive_periodでは、アラートが有効になる期間を定義する
シナリオの例: 医療上の緊急事態により、ある観光ルートが 12 月 10 日から 12 月 20 日までキャンセルされる。
id: "1"
alert {
informed_entity {
route_id: "12"
}
active_period {
start: 1607558400
end: 1608508799
}
effect: NO_SERVICE
cause: MEDICAL_EMERGENCY
...
}特定の方向の経路
適用先:
- 指定した
direction_idを含む指定した経路に属するすべてのルート - 経路に属するルートが訪問するすべてのバス停
実装の詳細:
informed_entityでは、route_idとdirection_idの両方のフィールドのみ入力されている状態にするactive_periodでは、アラートが有効になる期間を定義する
シナリオの例: 医療上の緊急事態により、ある観光ルートが 12 月 10 日から 12 月 20 日までキャンセルされる。
id: "1"
alert {
informed_entity {
route_id: "12"
direction_id: 1
}
active_period {
start: 1607558400
end: 1608508799
}
effect: NO_SERVICE
cause: MEDICAL_EMERGENCY
...
}公共交通機関モード
適用先:
- 指定した経路タイプを含むすべてのルート
- 経路に属するルートが訪問するすべてのバス停
実装の詳細:
informed_entityではroute_idフィールドのみ入力されている状態にするactive_periodでは、アラートが有効になる期間を定義する
シナリオの例: 深刻な洪水により、フェリーの全ルートが 12 月 20 日にキャンセルされた
id: "1"
alert {
informed_entity {
route_type: 4
}
active_period {
start: 1608422400
end: 1608508799
}
effect: NO_SERVICE
cause: WEATHER
...
}停車地
適用先:
- この停車地を訪問するすべてのルート
- 停車地自体
実装の詳細:
informed_entityではstop_idフィールドのみ入力されている状態にするactive_periodでは、アラートが有効になる期間を定義する
シナリオの例: 工事のため、停車地が 12 月 10 日から 12 月 20 日まで閉鎖される。
id: "1"
alert {
informed_entity {
stop_id: "4"
}
active_period {
start: 1607558400
end: 1608508799
}
effect: NO_SERVICE
cause: CONSTRUCTION
...
}