Traffic
1 trafficIncidents
行のコードでマップ レイヤー 状態を有効にすることで、地図上の交通事故を視覚化できます。 HERE SDK は trafficFlow
、レイヤーを追加することで現在のトラフィック状況を確認するための別のレイヤーもサポートしています。
また Route
、経路 セクションに示されているように、インスタンスに沿ったトラフィックを指定することもできます。
リアルタイムの交通フローとインシデントを地図に表示します
マップ レイヤー状態を有効にする trafficIncidents
と、地図上の交通事故を簡単に視覚化できます。 HERE SDK は、現在のトラフィック状況を確認するための別のレイヤーもサポートしています。 地図上のレイヤーを表示または非表示にする方法については、以下の例を参照してください。
スクリーンショット: 地図上に交通事故が表示されます。 レイヤーを設定すると、地図の表示領域が自動的に更新されます。 そのため、地図をあらゆる方向に自由に移動して、最新の交通事故を確認できます。
多く の状況で、ドライバーは、都市内外での現在の渋滞状況に基づいて最速ルートを探しています。 HERE SDK を使用すると、現在のすべての渋滞を保持しているレイヤーをさまざまな色の線で表示して、渋滞の重大度をリアルタイムで常に更新することができます。 この機能を使用するには、オンライン接続が必要です。また、より多くのデータを消費します。 ただし、交通渋滞ルートは地図のタイルの一部として表示されるため、高性能です。
これらの交通情報は、いくつかのコード行で地図上に表示することも、単独で表示することもできます。
do {
try mapView.mapScene.setLayerState(layer: MapLayerLite.trafficFlow, newState: LayerStateLite.enabled)
try mapView.mapScene.setLayerState(layer: MapLayerLite.trafficIncidents, newState: LayerStateLite.enabled)
} catch let mapSceneError {
print("Failed to enable traffic visualization. Cause: \(mapSceneError)")
}
新しいレイヤー状態の設定は同期的に実行されますが、以前にロードしておく必要がある有効なマップ シーンが必要です。 また、新しいマップ シーンの読み込み中に新しいレイヤーの状態を設定すると、エラーが発生することがあります。 レイヤーを非表示にする場合 LayerStateLite.disabled
は、ではなく、で上記のレイヤーを呼び出す LayerStateLite.enabled
ことができます。
トラフィックフローラインは、次のように色分けされています。
- 緑 : 通常 の交通状況
- 黄色 / 黄色 : 渋滞しています
- 赤 : 交通量が非常に多い
- 黒 : トラフィックのブロック
トラフィック 例アプリ の一部として、 GitHub で使用例を利用できます。
MapSceneConfig を使用して、複数のレイヤーを新しいマップ シーンで有効にします
を使用してマップ シーンをロードする方が便利な場合 MapSceneConfigLite
があります。 たとえば、トラフィックインシデント、トラフィックフロー、 および新しいマップ シーンの表示を同時に有効にする場合は、次のように呼び出します。
var mapSceneConfig = MapSceneConfigLite()
mapSceneConfig.mapLayers[MapLayerLite.trafficFlow] = LayerStateLite.enabled
mapSceneConfig.mapLayers[MapLayerLite.trafficIncidents] = LayerStateLite.enabled
mapView.mapScene.loadScene(mapStyle: MapStyleLite.normalDay, sceneConfig: mapSceneConfig, callback: self.onLoadScene)
次に、オプションのコールバックを実装して、シーンの読み込みが成功したかどうかを確認します。
func onLoadScene(errorCode: MapSceneLite.ErrorCode?) {
if let error = errorCode {
print("Error: New map scene not loaded: \(error)")
}
}
HERE mapSceneConfig
は、目的のレイヤーと trafficFlow
trafficIncidents
その新しい状態を保持します。 デフォルトでは、両方のレイヤーの初期状態はです disabled
。 新しいマップ シーンをロードする場合 mapSceneConfig
、は、目的のマップスタイルと一緒にパラメータとして渡すことができます。
新しいマップ シーンの設定中に両方のレイヤーを同時に非表示にする場合 .disabled
は、では .enabled
なく、を使用して上記のレイヤーを呼び出すことができます。 または setLayerState(layer:newState:)
、上記のようにとの同期コールを使用して、マップ レイヤーの状態を個別に制御できます。