Как правило, столицы определяются правителями. Где правитель решил создавать свою ставку, там столица и будет. Так было с Москвой, когда советское правительство захотело перенести туда ставку, так было с Астаной/Нурсултаном, когда президент захотел перенести столицу государства поближе к центру. Питер стал столицей, потому что так захотел правитель.
А то, как именно правитель решает, где будет столица - это длинная песня. Переносят столицы в соответствии с геополитикой, вкусами, какими-либо другими причинами, в число которых могут войти и природно-климатические.