交通情報
交通情報は、交通データの可用性に応じ て、Map.setTrafficInfoVisible(true)
地図を使用して交通対応のマップ スキームに設定することで、地図に表示できます。 リアルタイムの交通情報をダウンロードするには、トラフィックの視覚化にネットワークデータ接続が必要です。 ただし、トラフィックイベントが期限切れになるか、または可視性が切り替えられるまで、接続せずに引き続きトラフィック情報が表示されることがあります。
Map.Scheme.HYBRID_TRAFFIC_DAY
Map.Scheme.HYBRID_TRAFFIC_NIGHT
Map.Scheme.NORMAL_TRAFFIC_DAY
Map.Scheme.NORMAL_TRAFFIC_NIGHT
Map.Scheme.CARNAV_TRAFFIC_DAY
Map.Scheme.CARNAV_TRAFFIC_NIGHT
Map.Scheme.CARNAV_TRAFFIC_HYBRID_DAY
Map.Scheme.CARNAV_TRAFFIC_HYBRID_NIGHT
次のいずれかの状況が発生すると、トラフィックの視覚化が更新されます。
- 地図は相当な距離だけ移動します
- 地図は 1 分間移動されません。 この期間は、を使用して設定でき
TrafficUpdater.setRefreshInterval()
ます。
トラフィックフロー
次の図は、トラフィックの視覚化の例を示しています。

トラフィックフローラインは、次のように色分けされています。
緑 | 正常です |
Amber | 高い |
赤 | 非常に高い |
黒 | ブロック中です |
GitHub の交通情報の例
この機能の例について は、 https://github.com/heremaps/を参照してください。
交通情報の表示制御
MapTrafficLayer
オブジェクトをMap.getMapTrafficLayer()
呼び出して使用することで、トラフィックの表示をさらに制御できます。
で MapTrafficLayer
は、トラフィックフロー、トラフィックのインシデント、またはルート上のトラフィックを個別に無効にしたり、最小の重大度レベルに従って表示されるトラフィックをフィルタリングしたりできます。
たとえば、「非常に高い」(赤)または「ブロッキング」(黒)のトラフィックフロー回線のみを表示するようにマップを設定するには、次の手順を実行します。
MapTrafficLayer traffic = map.getMapTrafficLayer();
// set the minimum displayed traffic level
traffic.setDisplayFilter(TrafficEvent.Severity.VERY_HIGH);
交通情報の更新を制御してい
デフォルトでは、トラフィックがイネーブルの場合、トラフィックイベントは自動的にビューポイント内にロードされます。 を使用 TrafficUpdater.request(GeoCoordinate, int, Listener)
して、ジオコード化された特定のセットの周囲のトラフィックを明示的に取得することもできます。
アプリでのトラフィック更新の実装を完全にカスタマイズするに TrafficUpdater.disableAutoUpdate()
は、まずメソッドを介した自動トラフィック更新をオフにしてから、上記のメソッドを使用して、必要な場合にのみトラフィックを取得します。
トラフィックオブジェクトとイベントを選択しています
交通イベントは、地図ジェスチャおよびを使用して選択 OnGestureListener.onMapObjectsSelected(List<ViewObject>)
できます。 選択可能なユーザー TrafficEventObject
は、ライブトラフィックイベント情報を含み、さまざまな形式でマップに表示されます。 次の図は、 3 つの例を示しています。
![]() | ![]() | ![]() |
タップされたTrafficEventObject
に関する情報を取得 するには (MapObjects を参照 ) 、次のようにonMapObjectsSelected(List<ViewObject>)
を使用します。
private MapGesture.OnGestureListener listener = new MapGesture.OnGestureListener() {
...
@Override
public boolean onMapObjectsSelected(List<ViewObject> objects) {
for (ViewObject obj : objects) {
if (obj.getBaseType() == ViewObject.Type.PROXY_OBJECT) {
MapProxyObject proxyObj = (MapProxyObject) obj;
if (proxyObj.getType() == MapProxyObject.Type.TRAFFIC_EVENT) {
TrafficEventObject trafficEventObj =
(TrafficEventObject) proxyObj;
TrafficEvent trafficEvent =
trafficEventObj.getTrafficEvent();
Toast.makeText(getApplicationContext(), trafficEvent.getEventText(),
Toast.LENGTH_LONG).show();
}
}
}
return true;
};