中國古代歷史上建都城一般是有山有水,易守難攻,有險可守是很重要的,例如明代,明太祖朱元璋就是在應天(今南京)建都,就是認為應天有長江天險,歷來都是北方遊牧部落最頭疼的問題,因為他們擅長騎兵,南方大山,大河,多不宜攻克,並且皇帝建都,都派朝中最擅長奇門遁甲,天文地理的人,選擇有王氣,能保帝國永世長存的地方建都。一般各個朝代帝王建都都會考錄安全擴張交通水患漕運經濟文化這些重要的因安全中原王朝主要威脅來自北方遊牧民族,看上去似乎南部更安全,其實不然,中國地形北高南低,北方具有居高臨下的優勢(冷令兵器時代地理因素及其重要,即使現代戰爭地形地勢仍是影響決策的重要因素),靠江河作為屏障很難抵禦北方進攻。古代冷兵器時代打仗常識,兵馬未動糧草先行,中原王朝從南方運糧到北方邊境的花銷太巨大了。
而在冷兵器時代遊牧民族發動的戰爭的成本卻低得離譜,長此以往中原王朝勢必會被戰爭拖垮。遷移到南方,否則要想保住黃河流域,就必須將政治、軍事、經濟中心北移,否則以當時的交通條件,難以有效應對北方戰事。
因此要保住中原王朝,就需要至少保住甘肅-山西燕京山海關長城一線(一個例子就是唐未石敬瑭割讓燕雲十六州後,整個宋朝雖然經濟繁榮,但面對遼、金始終處於被動防守態勢,最終被逼南遷後滅亡為了保住這條防線,都城就不能太靠南。歷史上凡是強大的王朝都是向北發展,最明顯的對比就是南宋遷都杭州而朱棣卻遷都北京。
交通:中國南方水網空布,雖然水運便利,但是修路反而不方便,總不能主要交通都依賴於水運吧,而且南方開發較晚,交通不如北方便利。蜀中、山西等地雖也各有優勢,但交通問題不利於定都。
水患:都城不能離水太遠,要保證漕運和大量人口的用水、灌溉,但也要防水患,如開封就是由於水患嚴重,宋以後既不在此定都了。
漕運:都城作為政治經濟中心,周圍必然人口密集,要想滿足這些人口的生活需要,同時為了應付全國物資調配(戰爭、賑災等)必須藉助便利的漕運。
經濟:都城周邊必須經濟足夠發達才能滿生活資源需要(不能全靠漕運)。文化漢族發源黃河流域,根在長江以北。還有就是定都南京的王朝都短命,我認為是敵人從北方南下抵達南京時都已經攻佔了江南的大片平原,可以自給自足了,所以所謂的“長江天險”總是保護不了首都都城發展:秦以前不必多說,長江流域較為落後,秦、漢、唐定都關中地區,唐以後關中凋敝,資源耗盡,無法再滿足定都需要,在此期間長江流域開始發展起來,隋煬帝開鑿了大運河打通長江、淮河、黃河等水系開始調集南方物資北運,因此從武后開始逐步轉向經濟繁榮且漕運便利的洺陽、開封,南宋被趕到杭州是迫不得已,朱元璋定都南京,但朱棣馬上覺得不方便,遷都北京,所謂“天子守國門”,清建都北京更是準備坐不穩江山就拍屁股回東北。
其實從各朝各代的發展和興盛衰弱來看。北方地勢較高,傳統觀念上,是中國龍脈匯聚之地;另外,北方的黃河流域是為中華民族的發源地,人傑雲集,自古作亂者都是自北方而始,故設都而鎮之。再加上當朝皇帝皆為北方人,為免水土不服,所以不管從戰術上考慮,還是從戰略上考慮,在北建都都是最佳方案。