Zugersee
Cham is located on the northern shore of Lake Zug, northwest of the cantonal capital of Zug. Surrounding Cham, Steinhausen is to the east, Hünenberg is to the west, Lake Zug is south, and Maschwanden and Knonau in the Canton of Zürich are to the north. The town has an area of . The train station is located above sea level and the highest point in town is above sea level.