Month: January 2016

DevelopersInformation

Improved Roads Open Data – Car Parks & JamCams

In my previous post on Roads Open Data I outlined the importance of providing quality data for London’s roads, particularly at a time when our Road Modernisation Plan is being implemented and we are urging drivers to check for disruption before they travel.

We continue to make improvements to our roads open data, with London Underground live car parking spaces availability now available through the Unified API, as well as live video JamCams that give a far better indication of how traffic is flowing in the Capital.

London Underground car parks

London Underground has over 60 car parks with over 11,000 spaces. With the help of our partners NCP and SmartParking, we have released live data showing available spaces for 25 of these car parks. We are seeing whether we can expand the feed to cover all London Underground car parks in the future.

We don’t have this showing on tfl.gov.uk yet, but we’ve made the feed available as open data in the Unified API so that the dev community can have a head start.

You can get the full list of Car Parks from the Places API, which can also be searched by lat/long bounding box or radius. For each car park, we return information such as the address, opening hours, payment methods and facilities, and in some cases, the live occupancy. In the example below, Barkingside Station car park, the OccupancyUrl is returned, indicating that live data is available.

{
  "id": "CarParks_800491",
  "url": "https://api.tfl.gov.uk/Place/CarParks_800491",
  "commonName": "Barkingside Stn (LUL)",
  "placeType": "CarPark",
  "additionalProperties": [
  {
    "category": "Description",
    "key": "NumberOfSpaces",
    "sourceSystemKey": "CarParks",
    "value": "46",
    "modified": "2016-01-07T15:45:43.153"
  },
  {
    "category": "Description",
    "key": "NumberOfDisabledBays",
    "sourceSystemKey": "CarParks",
    "value": "2",
    "modified": "2016-01-07T15:45:43.153"
  },
  {
    "category": "Meta",
    "key": "OccupancyUrl",
    "sourceSystemKey": "CarParks",
    "value": "https://api.tfl.gov.uk/Occupancy/CarPark/CarParks_800491",
    "modified": "2016-01-07T15:45:43.153"
  }...

The URL is based on the place id of the car park, for example “CarParks_800491” so if you know the Car Park id, you can go straight to the occupancy data. We use a separate URL because we have a much shorter time-to-live in our cache for the occupancy vs. the place data (60 seconds and 1 day respectively). In the example below, using Barkingside again, we can see that there’s no spaces available right now.

{
 "id": "CarParks_800491",
 "bays": [
    {
     "bayType": "Disabled",
     "bayCount": 2,
     "free": 0,
     "occupied": 2
    },
    {
     "bayType": "Pay and Display Parking",
     "bayCount": 45,
     "free": 0,
     "occupied": 45
    }
  ],
  "name": "Barkingside Stn (LUL)",
  "carParkDetailsUrl": "https://api.tfl.gov.uk/Place/CarParks_800491"
}

Read More