Smart Parking: Using a Crowd of Taxis to Sense On-Street Parking Space Availability