劉邦曾經問過部下關於建都的問題,因為他也選擇了洛陽,但是他的部下婁敬和張亮都建議他把都城建在關中。後來漢光武帝劉秀復興漢朝,長安所在,大量物資需要從外地運進來。為了減少人們的物資運輸勞動,沒有建長安作為都城,而是建洛陽作為都城,因為洛陽地處天下,地理位置好,有利於物資的運輸,社會生產也沒有受到特別的破壞。
隋唐時期的長安與漢代的長安不同。隋唐長安是文帝在原長安東南建立的新都城,名大興城。後來李淵稱帝建唐,改大興城為長安。幾經擴建,周長達到35.56公裏,面積約84平方公裏,是現在的Xi安城墻的9.7倍,漢長安城的2.4倍,北魏洛陽城的64倍。是隋唐洛陽的1.8倍,元代大都的1.7倍,明代南京的1.9倍,明清北京的1.4倍,公元447年君士坦丁堡的7倍,公元800年巴格達的6.2倍,古羅馬的7倍。到盛唐時期,長安是當時最大最繁華的國際城市。
洛陽早就不是真正的首都了。大多數朝代都把它作為首都,而不是政治中心,因為洛陽附近平原眾多,沒有天然屏障可以依靠。與關中不同,馬平川交通便利,商業發達。地理位置在世界上,只要是首都或經濟中心。
歷史上以南京為首都的是三國時期的孫吳政權,還有西晉南北朝時期的宋齊梁陳,合起來就是六朝。這就是六朝古都南京的由來。後來,朱元璋在應天即南京稱帝,並定都。不過據說朱元璋真正要建都的地方是古長安。他曾派太子朱標視察關中,但短命的太子第二年就死了。朱元璋白發人送黑發人,年事漸高,遷都就擱置了。可以說,南京作為首都,尤其是在三國兩晉南北朝時期,主要是因為這些國家大多位於西南,而南京作為戰國時期(所謂“楚秦王”)修建的古城,成為首選,但其地勢並不險要, 而南方在整個中華民族歷史上也是以經濟發展為主,不可能像中原那樣控制四海,拒北胡。
北京作為首都的歷史是不能和以前相比的。歷史上,周朝的召公是第壹個建都北京的人。後來直到女真建立金朝,才把北京定為中都。元代成為全國政治中心,改名大都。後來燕王朱迪成功奪取了建文帝的寶座,因為他的封地在北平,北平是元朝最初的都城,而明成祖朱迪為了加強北方邊防,維護北方安全,遷都北京,為的就是替皇帝保家衛國(整個明朝,除了南明的小朝廷,幾乎每壹個明成祖都奉行這個信條,包括吊死景山公園的崇禎皇帝,)。
每個朝代定都的原因都不壹樣,但大部分也是因為國家的地理位置,是否是統壹的朝代,地方的地形是否險要。