I've got the garmin vivo active HR, which can do all the above. The battery normally lasts a week, but in GPS mode, it lasts about 13 hours.
But the newer Garmin watches have taken the battery life to the next level (I think the Fenix 5 does 42 hours in GPS mode).
At the end of my walk, I open my garmin app on my iphone and sync the data to the app, which uploads it to my garmin connect account, so I can either review the route walked (uses google maps) on my phone or my laptop.
I'm sure there are loads of other things it can do, but I just use it to record my routes, times, heart rate, speed, and alititude.
Actually, talking about altitude, for the last year or so, the altitude readings have been crazy . I think there is a bug, but not sure if it only affects my model or all Garmins?
So maybe look at the Suunto watches, which have a good reputation.
This was yesterday's walk
https://connect.garmin.com/modern/activity/3154182848