Traffic and directions
The traffic and directions example is a visualization of Mapbox's traffic data and Directions API.
Traffic
In this example scene, traffic is visualized by leveraging the Mapbox Traffic v1 tileset, which provides constantly updating congestion information. The tileset is specified in the Map Layers settings as a Custom
Data Source as shown in the screenshot below. You can specify multiple tilesets as data sources by separating them with a comma. For more information refer to the documentation on using custom data in Unity.
Map Features are used to render the congestion data inside of Unity. Navigate to Map Layers > Features > Map Features
to see how the visualizers are configured. The Mapbox Traffic v1 tileset gives access to layers and fields that are used for this visualization. The traffic
layer of the tileset contains the congestion
key which has low
, moderate
, heavy
, and severe
as possible values. Each one of these keys are configured with a separate visualizer so that it can be styled and rendered appropriately. To see how the vector features interact with tileset data, inspect the LowTrafficCongestion feature.
Select LowTrafficCongestion to view the configuration and you'll see the following settings:
Filters
- View the configured filters by navigating to Filters.
- Key is set to
congestion
. - Operator is set to
Contains
. - Str Value is set to
low
.
- Key is set to
Modeling
- Primitive Type is set to
Custom
. - Layer Name is set to
traffic
. - Snap to Terrain is checked and Combine Meshes is unchecked.
Behavior modifiers
Styling of this feature is handled in Behavior Modifiers by the following modifiers:
- Mesh Modifier: A LoftModifier is specified to achieve a 3D look.
- Game Object Modifier: A MaterialModifier is specified to color the area with low congestion a specific color.
Directions
Mapbox Navigation is available inside of Unity, and is configured using the DirectionsFactor.cs script. In this scene there is a Directions
game object that has the DirectionsFactory script attached to it. Additionally, it has two waypoints as children that are the markers on the map. Every two seconds the DirectionsFactory will query the Directions API and return the driving route between the two points. If the points have moved within that time, a line will be rendered along the new driving route.
The DirectionsFactory script contains the following:
- Map: This field contains the map game object for this scene.
- Mesh Modifiers: This is an array of mesh modifiers. It contains a LoftModifier to place a line on top of the traffic mesh.
- Material: This contains the material to style the line along the directions route.
- Waypoints: This array contains the waypoints of the route.
- Update Frequency: This setting controls how often the Directions API is queried and updates the route if the position of the waypoints have changed.
To configure directions in your own scene, you can drag the Directions prefab into a new scene or attach the DirectionsFactory script to an empty game object.