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
1-- Daily congestion trend2SELECT time::DATE as day, ROUND(AVG(congestion_level), 2) as avg_congestion3FROM timed_data4WHERE aggregation_type = 'daily'5GROUP BY day6ORDER BY day78-- Top congestion hotspots9SELECT lat, lon, congestion_level10FROM tiled_data11WHERE congestion_level > 7012ORDER BY congestion_level DESC13LIMIT 201415-- Compare hourly patterns across the week16SELECT date_part('dow', time::TIMESTAMP) as day_of_week,17 date_part('hour', time::TIMESTAMP) as hour,18 ROUND(AVG(congestion_level), 1) as avg_congestion19FROM timed_data20WHERE aggregation_type = 'hourly'21GROUP BY day_of_week, hour22ORDER BY day_of_week, hour