A New Algorithm for Park Spot Routing Including On-Street Parking and Parking Garages