Traffic Events
The Maps SDK for Flutter provides real-time information about traffic events, such as delays, which can occur in various forms.
When enabled and supported by the applied map style, traffic events are visually represented on the map as red overlays on affected road segments.
Based on the source of the event:
- Most traffic events are provided by the Magic Lane servers if online and provide up-to-date traffic data
- The user can add custom user-defined roadblocks in order to blacklist certain road segments or areas.
Based on the impact zone:
- The traffic event can be a path-based traffic area, following the shape of a road.
- The traffic event can be an area-based traffic area, including a larger geographic area.
The central class for handling both traffic events and roadblocks is TrafficEvent
. Instances of this class can be obtained either through user interaction with the map (e.g., selecting a road segment) or as part of user-defined roadblock operations.
For route-specific traffic data, the SDK provides the RouteTrafficEvent
class, which extends TrafficEvent
by including detailed information relevant to a specific route. These events are provided by the route.
Traffic events, including delays and user-defined roadblocks, are fully integrated into the routing and navigation logic. This ensures that calculated routes dynamically account for traffic conditions and any restricted segments.
TrafficEvent structure
The TrafficEvent
class has the following structure:
Member | Type | Description |
---|---|---|
isRoadblock | bool | Returns true if the event represents a roadblock. |
delay | int | Estimated delay in seconds. Returns -1 if unknown. |
length | int | Length in meters of the road segment affected. Returns -1 if unknown if the event is an area-based roadblock. |
impactZone | TrafficEventImpactZone | Indicates if the event affects a point or area. |
referencePoint | Coordinates | The central coordinate for the event. Returns (0,0) for area events. |
boundingBox | RectangleGeographicArea | Geographical bounding box surrounding the event. |
description | String | Human-readable description of the traffic event. If it is a user-defined roadblock contains the id |
eventClass | TrafficEventClass | Classification of the traffic event. |
eventSeverity | TrafficEventSeverity | Severity level of the event. |
getImage({size, format}) | Uint8List? | Returns an image representing the traffic event. |
img | Img | Retrieves the event image in internal format (Img ). |
previewUrl | String | Returns a URL to preview the traffic event. Returns emtpy if not available (user-defined roadblock). |
isUserRoadblock | bool | Returns true if the event is a user-defined roadblock. |
affectedTransportModes | Set<TrafficTransportMode> | Returns all transport modes affected by the event. |
startTime | DateTime? | UTC start time of the traffic event, if available. |
endTime | DateTime? | UTC end time of the traffic event, if available. |
hasOppositeSibling | bool | Returns true if a sibling event exists in the opposite direction. Relevant for path-based events. |
RouteTrafficEvent structure
The RouteTrafficEvent
class extends TrafficEvent
with the following members:
Member | Type | Description |
---|---|---|
distanceToDestination | int | Returns the distance in meters from the event's position on the route to the destination. Returns 0 if unavailable. |
from | Coordinates | The starting point of the traffic event on the route. |
to | Coordinates | The end point of the traffic event on the route. |
fromLandmark | Pair<Landmark, bool> | Returns the starting point as a landmark and a flag indicating if data is cached locally. |
toLandmark | Pair<Landmark, bool> | Returns the end point as a landmark and a flag indicating if data is cached locally. |
asyncUpdateToFromData() | void Function(GemError) | Asynchronously updates the from and to landmarks' address and description info from the server. |
cancelUpdate() | void | Cancels the pending async update request for landmark data. |
Usage
- Used to provide traffic information about a route. See the Get ETA and Traffic information guide for more details.
- Used to implement user-defined roadblocks. See the Get ETA and Traffic information guide for more details.