首先要講,雖然永樂四年開始營建北京,但直到永樂十八年才正式遷都。朱棣在南京做了十八年皇帝。朱棣遷都顯然和衣錦還鄉或者內疚并無關系。
歷朝歷代一直有一個固定的問題要解決,守內還是守外?漢唐實外虛內,以重兵對邊境異族形成攻勢。在古代技術條件下,邊境大將必須有臨機專斷之權,提拔任命之權,籌措糧餉之權,有時為了協同作戰,還需要同時掌控數個軍區。邊將大權在握,一旦因為各種因素朝廷不能及時調換邊將,經營日久必然會出現獨立王國。由于邊境軍人長期作戰,內地軍人長期安逸,戰斗力差異巨大。邊軍輕則藩鎮割據、重則威脅中央。漢之董卓、唐之安史、明之靖難、清之三藩就是實例。
宋實內虛外,以重重鎖鏈束縛將領,甚至于兵不知將、將不知兵,從根本上將軍隊瓦解為一個個毫無關系的小部分。
結果宋軍的戰力高峰期非常短暫,開國不久軍事上就喪失了進攻能力。長期和平下完全軍隊渙散,以至于靖康之變。
朱棣本人就是邊將上位,因此對于這種兩難困境體會深刻。既然必須有大權在握的邊將,何不干脆將內外合一,由天子近距離控制邊軍。這就是天子守國門的本意。
了解了朱棣的目的,那麼定都北京就是唯一合適的選擇。
西安是古都,可是由于長期開發,水土流失,以及氣候逐漸干冷。從唐中期,關中就無法提供足夠的糧食供養巨大的首都。唐代中后期完全依賴兩淮的糧食。甚至出現天子時常帶百官到洛陽「就食」的事情。唐德宗時,長安由于缺糧幾乎兵變,正好兩淮米運到,唐德宗狂喜的跑去的對太子說「米已至陜,吾父子得生矣!」到明初由于長期戰爭破壞,關中人口稀少,物產貧瘠,已經不足以建都。
洛陽距離前線太遠,完全起不到控制邊軍的作用。定都洛陽還不如就呆在南京,至少不用向北方運糧了。
北京距離前線很近,地形西、北、東北環山,向東是渤海,五河縱橫。出關是塞外,進可攻退可守。往南是大片的河北平原,糧食豐富,有利于供養首都,減輕漕運壓力。大運河溝通南北,利于將南方糧食運送到北京。而且北京作為南方糧食的集中目的地,同時也是九邊大軍軍糧運輸的起點。大部分北方邊軍的糧食都在北京的控制下。有利于穩固的控制軍隊,即使某些野心家有陰謀,也找不到足夠養活軍隊的糧食。