Take a look at this app for the iPhone:
http://gps.motionx.com/overview/ . I use a RAM mount to secure it to my Cervelo
http://gps.motionx.com/accessories/.
They're adding features once in a while. When Apple release the new 3.0 update later, it maybe possible to add on Heart Rate and Cadence via an add on dock on the bike.
The battery on the iPhone is not the greatest especially in the cold weather, but I've been getting about 3 to 4 hours.
The best $2.99 I spent on iTune.