Vancouver. Wonderful city, and your criteria are met if you stay at the Westin Bayshore on the water near Stanley Park. Lovely hotel, Stanley Park is a terrific place to be (I'd have wished I couldda gone there when I was a baby), and Granville Island is the perfect getaway-within-a-getaway.