琼州海峡
Haikou is situated on the north coast of Hainan Island, by Haikou Bay, facing the Leizhou Peninsula across the Qiongzhou Strait that stretches west from Beibu Bay near Vietnam to the James Shoal bordering the South China Sea to the west. Most of the city is almost completely flat and only a few metres above sea level. It has an area of . The Meishe River winds through the east side of the city flowing northward to the Haidian River.