I believe the hilton or hyatt and a Mariotts one street over from the wharf has views (above the 4th floor facing east)...its one block over so just a hop skip and jump from pier 39 and all the rest of the Wharf area, ps look out for 'tree man' on the other side of aliotos...also theres a Rad a Sheraton and a Holiday Inn all within two blocks of the main street...now if you dont need to stay on the wharf itself, look up the Fairmount, sits at the top of a hill where cable cars go by...great views of the city from high ground, but pricey...
Dante's Seafood is right on pier 39 (fisherman's wharf) and the have excellent food and views. I live in the bay area, and when the blue angels are in town, we eat at this restaurant because it is surrounded by windows and you will have incredible views no matter where you sit. They also have sandwiches, steak, chicken, etc. but they definitely specialize in seafood. Check out their website www.pier39restaurants.com and click on Dante's Seafood for menus.
3. Mark W
There is a new Courtyard that you can ask them to get you a ocean view. For dinner:
The Crab House on the 39th street pier. Nice food, short wait times and reasonable prices (with a view ON the pier you asked for.) In the city, go to Harris' Steak House if you like AGED, PRIME beef! It is awesome, and serves a terrific martini in a cool glass that sits on a 'barrel' of ice. Both are nice; one for seafood and one for beef.
All of them have views.
Pompei's Grotto is an excellent restaurant. Not too touristy.
Scoma's is famous.