This is the documentation of version 1.0.0-rc.4. Go to the latest version, 1.0.0-rc.5.
TomTom Maps for JavaScript
    Preparing search index...

    Function trafficAreaAnalytics

    • Runs a synchronous traffic area analytics report for a polygon region.

      It submits a single Polygon or MultiPolygon region with a date range and requested metrics, and receives the full analysis result immediately, with no polling.

      Parameters

      Returns Promise<TrafficAreaAnalytics>

      Promise resolving to a TrafficAreaAnalytics FeatureCollection

      It needs a TomTom MOVE Portal API key, passed as apiKey on the call, so it is not available on a Freemium or Pay As You Grow (PAYG) basis. A MOVE account comes with a 30-day free trial: start your trial, or sign in to TomTom MOVE with an account you already have. Your API key is in the MOVE Portal menu. Read more in the Area Analytics introduction.

      A lite report has these constraints:

      • Only a single region (one geometry) may be submitted per request.
      • endDate falls one to 31 days after startDate.

      The key data returned per region is:

      • baseData: overall aggregated metrics for the full analysis period
      • timedData: time-series breakdown at yearly / monthly / weekly / daily / hourly granularity, and an average week, all in UTC
      • tiledData: per-tile heatmap metrics (when available)
      • anomalies: detected traffic anomalies keyed by camelCase metric key (e.g. anomalies.speed). They stay empty, as the service detects them only over 35 days or more.

      The available metrics are:

      • speed: average speed on the road network (km/h)
      • freeFlowSpeed: average speed under uncongested conditions (km/h)
      • congestionLevel: percentage increase in travel time above free-flow
      • travelTime: average travel time per 10 km (minutes)
      • networkLength: total length of road segments with data (meters)
      // Basic speed and congestion analysis for Amsterdam
      const result = await trafficAreaAnalytics({
      days: ['2024-08-06'],
      functionalRoadClasses: ['MOTORWAY', 'MAJOR_ROAD', 'OTHER_MAJOR_ROAD', 'SECONDARY_ROAD', 'LOCAL_CONNECTING_ROAD', 'LOCAL_ROAD_HIGH_IMPORTANCE'],
      hours: [7, 8, 9, 17, 18],
      metrics: ['speed', 'congestionLevel'],
      geometry: {
      type: 'Polygon',
      coordinates: [
      [[4.896128, 52.382402], [4.875701, 52.368459], [4.923611, 52.36341], [4.896128, 52.382402]]
      ]
      }
      });

      const region = result.features[0];
      console.log(region.properties.baseData.speed); // avg speed (km/h)
      console.log(region.properties.baseData.congestionLevel); // congestion %
      console.log(region.properties.timedData.hourly); // hourly breakdown
      // Full metrics over a multi-day period
      const result = await trafficAreaAnalytics({
      startDate: new Date('2024-08-01'),
      endDate: new Date('2024-08-07'),
      functionalRoadClasses: 'all',
      hours: 'all',
      metrics: ['speed', 'freeFlowSpeed', 'congestionLevel', 'travelTime', 'networkLength'],
      geometry: {
      type: 'Polygon',
      coordinates: [[[4.89, 52.37], [4.91, 52.37], [4.91, 52.39], [4.89, 52.39], [4.89, 52.37]]]
      }
      });

      result.features[0].properties.timedData.daily?.forEach(day => {
      console.log(day.date, day.congestionLevel);
      });