I think you just need 3 views, here is a test site and an example for you:
http://luo126.discover-wp.com/taxonomy-archive-page-with-different-post-types-output-question/
user/pass: xgren/111111
1) view "list city"
http://luo126.discover-wp.com/wp-admin/admin.php?page=views-editor&view_id=54
This View will display Taxonomy Cities
Layout HTML/CSS/JS:
<li><a href="?wpvcity=">All cities</a></li> <wpv-loop> <li><a href="?wpvcity=[wpv-taxonomy-slug]">[wpv-taxonomy-title]</a></li> </wpv-loop>
2) View "list hotel":
http://luo126.discover-wp.com/wp-admin/admin.php?page=views-editor&view_id=55
Select posts with taxonomy: Cities the same as set by the URL parameter "wpvcity" eg. http://www.example.com/page/?wpvcity="xxxx"
3) View "list restaurant"
Same as above