Wikipedia describes the flag as follows:
The flag of Saint Petersburg, in the Russian Federation, is a red field charged in the center with the arms of the city, which consists of two silver anchors (a sea anchor, and a river anchor), and a gold scepter.
The anchors both cross each other at their centers, with the sea anchor to the left and the river anchor on the right. They reflect the fact that the city has both river and sea ports. The scepter is surmounted on the anchors in the center. It shows that the city was the former capital of Russia.
The flag was adopted on September 6, 1991. The proportions are 2:3.
The City Hall is described by Saint-Petersburg as follows:
"The Mariinsky Palace"
The Mariinsky Palace, situated just across the square from St Isaac's Cathedral, is better known today as the seat of the local Legislative Assembly (i.e. the City Council), although it was originally built as the Imperial residence of the Grand Duchess Maria, daughter of Emperor Nicholas I. Built between 1839 and 1844, the palace was filled with magnificent interiors and furniture and even boasted an enormous greenhouse, where it was said that pineapples grew rather well.
In 1884 the Mariinsky Palace was bought by the government and became the seat of the State Council, the State Chancellor's office and the Committee of Ministers (later - the Council of Ministers). Since 1945 the palace has belonged to the city council and local administration.