町や国の場合は、大きな範囲の地域の中ということで、in でいいと思います。ビルの中なども in でしょう。
〜通り沿いのレストランなら on を使うこともあります。〜の近くなら by 、〜の周辺なら around も使えます。
I went to a restaurant in Shibuya.
渋谷にあるレストランに行った。
I love going to restaurants in Japan.
日本にあるレストランに行くのが大好きだ。
The restaurant is on L Street.
そのレストランはL通り沿いにある。
His restaurant is by the sea.
彼のレストランは海のそばにある。
Let's look for a restaurant around Tokyo Station.
東京駅周辺にあるレストランを探そう。
「~町にあるレストラン」は、
"restaurants are located in ~"
"restaurants are in ~"
「西麻布にあるレストラン」という場合は、
"Restaurants are located in Nishi-Azabu."
"Restaurants are in Nishi-Azabu."
ご参考になれば幸いです。