Area Analytics Tools
Area Analytics Tools
Analyze traffic patterns across custom geographical areas over specific time periods. Define a region using a GeoJSON Polygon, choose your date range (up to 31 days), and query congestion levels, speeds, and travel times.
- Documentation: Area Analytics API
- Uses
TOMTOM_MOVE_PORTAL_KEY
tomtom-area-analytics-stats
Retrieve area analytics statistics for a GeoJSON Polygon region within a 31-day period.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name for the analysis report (1–250 characters) |
startDate | string | Yes | Analysis start date (YYYY-MM-DD) |
endDate | string | Yes | Analysis end date (YYYY-MM-DD). Must be within 31 days of startDate and at least 2 days before today |
hours | number[] | Yes | Hours to analyze (0–23). Minimum 1, maximum 24 |
frcs | number[] | Yes | Functional road classes (0–8). 0 = Motorway, 1 = Major, 2 = Other Major, 3 = Secondary, 4 = Local Connecting, 5 = Local High, 6 = Local, 7 = Local Minor, 8 = Other |
dataTypes | enum[] | Yes | One or more of: NETWORK_LENGTH, CONGESTION_LEVEL, FREE_FLOW_SPEED, TRAVEL_TIME, SPEED |
features | GeoJSON[] | Yes | Exactly 1 GeoJSON Feature with Polygon or MultiPolygon geometry |
sql_queries | object | Yes | Named SQL queries (see SQL Filtering ) |
SQL Tables
timed_data: One row per time aggregation per region
| Column | Type | Description |
|---|---|---|
region_name | string | Region name from GeoJSON properties |
timezone | string | Timezone from GeoJSON properties |
aggregation_type | string | all, yearly, monthly, daily, or hourly |
time | string | Timestamp |
speed | number | Speed |
free_flow_speed | number | Free flow speed |
congestion_level | number | Congestion level (0–100) |
travel_time | number | Travel time in seconds |
network_length | number | Network length |
tiled_data: One row per spatial tile per region
| Column | Type | Description |
|---|---|---|
region_name | string | Region name from GeoJSON properties |
lat | number | Tile latitude |
lon | number | Tile longitude |
speed | number | Speed |
free_flow_speed | number | Free flow speed |
congestion_level | number | Congestion level (0–100) |
travel_time | number | Travel time in seconds |
network_length | number | Network length |
Example SQL Queries
-- Daily congestion trendSELECT time::DATE as day, ROUND(AVG(congestion_level), 2) as avg_congestionFROM timed_dataWHERE aggregation_type = 'daily'GROUP BY dayORDER BY day
-- Top congestion hotspotsSELECT lat, lon, congestion_levelFROM tiled_dataWHERE congestion_level > 70ORDER BY congestion_level DESCLIMIT 20
-- Compare hourly patterns across the weekSELECT date_part('dow', time::TIMESTAMP) as day_of_week, date_part('hour', time::TIMESTAMP) as hour, ROUND(AVG(congestion_level), 1) as avg_congestionFROM timed_dataWHERE aggregation_type = 'hourly'GROUP BY day_of_week, hourORDER BY day_of_week, hour