中國五級行政區劃下載:省市縣邊界向量檔打包帶走

map.ruiduobao.com 把中國五級行政區劃做成逐級可查的樹,免登入就能下載省、市、縣邊界向量檔,支援 GeoJSON、Shapefile、KML、GeoPackage 與 SVG 五種格式,年份提供 2010 到 2023 五個斷面。實測後要留意的三條線:鄉鎮邊界停在 2020 年、村級預設只有座標點、資料條款嚴禁商業使用,下載超過 20 次需要微信公眾號密碼。

用 AI 摘要這篇文章:

需要中國省市縣邊界向量檔的人,搜到 map.ruiduobao.com(銳多寶的中國行政區劃地圖站)通常帶著三個問題:能下載到什麼、免不免費、能不能商用。這三問我都在站上逐一實測過,先給答案:它能查也能下載中國五級行政區劃(省、市、縣、鄉鎮、村),免註冊免登入,GeoJSON、Shapefile、KML、GeoPackage、SVG 五種格式都有;但真正能直接打包成邊界向量檔的只有省、市、縣三級,鄉鎮邊界停在 2020 年,村級預設給的是座標點而非邊界;免費額度畫在第 20 次下載,超過要輸入密碼;至於商用,下載包裡的說明檔寫得明明白白,嚴禁任何商業用途。把這三條線看清楚,它就是目前取得中國區劃向量資料最順手的免費入口之一。

這個站有兩個形態:線上是開箱即用的查詢下載網站,線下是一個 GitHub 上整包公開的原始碼專案(舊名 gaode_MAP_CUN,已更名 china-divisions-map),站點本身就是這套程式碼跑起來的實例。而幾個下載行為的真相,就寫在它的設定檔裡。

五級行政區劃在這站怎麼查:從省一路點到村委會

這個站把中國的行政區劃層級做成逐級往下的樹狀選單,桌機用樹狀清單加地圖並列,行動版換成下拉選單,每一層背後都有對應的查詢介面。我用它的查詢介面實測了一條完整的鏈:最上層列出 31 個省級行政區(北京市到新疆維吾爾自治區,對應的是中國大陸的省級單位,不含香港、澳門與台灣,做兩岸或港澳地圖要另外補資料);點進四川省出現 21 個市州;成都市底下 21 個縣級單位;錦江區再往下是 11 個鄉鎮街道;春熙路街道最後一層列出 4 個村委會與社區居委會。從省到村委會五層全部走得通,每一級回應都在一秒內,行政區名稱與 6 位到 12 位的區劃代碼一起回來,寫程式接它的資料不需要再查碼表。

map.ruiduobao.com 官網首頁,年份按鈕列提供 2023、2021、2018、2017、2010 五個斷面Pin
官網首頁左側是年份與省份選單(省份依華北到西北七大分區排列),右側為衛星底圖。

有兩個使用細節值得知道。其一,縣級清單裡會出現「市轄區」這種條目,它來自國家統計局區劃代碼的編碼慣例(直轄市與地級市代碼下第一個縣級代碼代表市轄區彙總),做資料處理時要記得過濾,不然會多出永遠查不到的空行政區。其二,不知道行政區劃代碼也沒關係,站內搜尋支援地名直接查到村級,我拿「台北」兩個字測試,命中的是河南省商丘市睢縣董店街道的台北村委會,可見搜尋是全國範圍的模糊比對。另外還有一個座標反查介面,輸入經緯度會回傳落在哪個縣級行政區,我測成都市的座標(東經 104.06 度、北緯 30.67 度)正確回傳青羊區。座標換地點這類查詢在 AI 工具裡也有同族應用,例如 GeoSpy AI 從一張照片反推拍攝地點,方向相反但都是把地理資訊與行政區掛勾的查詢,有興趣可以對照著看(GeoSpy AI 照片定位)。

下載下來的是 ZIP 壓縮包,不是單檔

在地圖或清單裡選定一個行政區、點下載、選格式,流程就這麼短。但有個容易預期錯的地方:不管選哪種格式,拿到手的都是一個 ZIP 壓縮包,不是單檔。我把成都市(代碼 510100)的五種格式各下載了一次,拿到的全是 ZIP;其中 GeoJSON 與 SVG 兩種我解開驗過內容,結構是三件套:一個資料檔,加上說明.txt,再加上微信公眾號QR圖與站長微信圖檔。資料檔的命名規則是行政區名稱底線接區劃代碼(成都市_510100.geojson 這類),批次下載後整理歸檔很省事。

資料檔本身的品質沒問題。GeoJSON 版是標準的 FeatureCollection 結構,成都市是一個 MultiPolygon,屬性欄位裡還帶著 PostGIS 空間資料庫的原始幾何編碼,丟進 QGIS 或任何支援 GeoJSON 的工具直接可用。五種格式各有各的位置:GeoJSON 餵網頁地圖函式庫(Leaflet、D3 都吃)最順;Shapefile 是 ArcGIS 與 QGIS 的老牌格式;KML 直接拖進 Google Earth;GeoPackage 一個檔案裝多個圖層,適合帶著走;SVG 就是靜態向量圖,放簡報或文件裡當插圖。

說到 SVG 版要先把期待講對:它是 800×600 的向量圖,成都市全部行政邊界畫在同一個 path 元素裡,輪廓完整、縮放不失真,拿去做簡報示意圖夠用;但它是單色輪廓,別期待分縣著色;要分區域上色,得改抓批次包裡的縣級邊界 GeoJSON(單獨下載的市級檔是整市一體的輪廓,沒有分縣切割)。

還有一個文件沒講清楚的坑。GitHub 上的說明文件列了一支 getGsonDB 介面,說明是「取得 GeoJSON 向量資料」,我實際呼叫後發現它回傳的是後端匯出狀態(回應裡是匯出成功訊息與伺服器上的檔案路徑),資料不會直接回給你。真正能拿到檔案的入口是 downloadVector 下載介面。寫程式批次抓資料的人認準後者就好。

年份只有五個斷面,官網寫的年份範圍別照單全收

歷史年份是這個站的賣點之一。中國行政區劃這十幾年變動不少(撤縣設區、行政區合併),做長時間序列分析的人需要不同年份的邊界快照。我逐一探測了它的年份參數:2010、2017、2018、2021、2023 五個年份各有完整資料,2024 年之後查無資料,2000 到 2009 年也沒有。

這裡有個宣稱與實測的落差要提醒。官網頁面的描述文字寫著資料涵蓋「2000 到 2026 年」,但介面實測只支應上面五個年份。下載包裡的說明檔寫的是省縣市資料有時間屬性、來源於 CTAmap 資料集,時間範圍 2000 至 2023 年則標在 GitHub 的說明文件裡。三種說法對不起來,我的建議是以介面實測為準:你能拿到的就是那五個年份的斷面,需要其他年份,得回上游 CTAmap(同一作者的另一個站,站方自述這套資料以一百萬分之一公開基礎地理資訊為底,與民政部官方區劃逐一對照製成)找。上游的對照工程聽起來扎實,但站方自己也標注了資料僅供參考、準確性不保證,做嚴肅分析前最好抽幾個你熟悉的行政區核對邊界。

村級拿到的是座標點,畫不出村界

「五級行政區劃下載」這句話最容易讓人誤會的地方在村級。實測結果:用村委會的代碼直接呼叫下載介面,回應是找不到資料;鄉鎮層級的 12 位代碼也一樣。能直接下載邊界向量檔的,只有省、市、縣三級的 6 位代碼。

村級資料並非不存在,而是形態不同。查詢介面回應的村級條目其實做得乾淨:每個村委會帶著自己的代碼,以及省、市、縣、鄉鎮的完整層級路徑,直接就是一張現成的階層對照表。站上下載面板的村級選項分成「僅點」「點加所在鄉鎮」「點加鄉鎮加縣級」幾種模式,預設給的是村委會的座標點,透過批次下載一起打包(我直接呼叫鄉鎮層的批次端點時,拿到的是只含說明檔的空包;同一批端點改走市級層,一次就打包出整市各級的完整內容)。原始碼裡的設定檔也印證了這個設計:村級面(邊界)功能預設關閉(ENABLE_VILLAGE_POLYGON=false),載入模式預設 point(點位),前端下拉選單裡「面」的選項標注著「需啟用」。換句話說,需要村級邊界的人,在這站預設拿不到,站方把它放在一個需要另行啟用的位置;能拿到的是全村委會的經緯度點,適合做點密度或分布圖,做不了村界填色。

順帶一提村級點位的來源:站方說明這批座標來自高德地圖的地理編碼(把村委會名字轉成經緯度),時間大約在 2020 年。鄉鎮一級的邊界同樣停在 2020 年(來源是統計局普查資料),與省市縣的多年份資料不同源,兩層資料的新舊不一致,跨層級混用時心裡要有數。

免費額度畫在第 20 次下載,密碼要去微信公眾號拿

整站不需要註冊、不需要登入、沒有付費牆,這些都屬實。但下載次數有上限:下載超過 20 次之後會跳出密碼驗證視窗,畫面明文寫著「下載次數超過20次,請輸入密碼繼續下載」,取得密碼的方式是關注站長的微信公眾號「銳多寶」。這是站方的導流設計:資料免費,但重度使用者要用一個微信關注換繼續使用的權限。站上有個下載狀態查詢介面,但我下載多檔之後它仍回報 0,對照開源碼裡這支介面固定回傳零值,它當不了額度儀表用,第 21 次會無預警彈出密碼牆。

短時間大量抓檔還會觸發封禁機制。原始碼設定檔裡的參數顯示,超量行為會被封 30 分鐘(BAN_DURATION_MINUTES=30),前端也有對應的倒數視窗。要批次抓資料的人,正確姿勢是走市級整包下載:一個 ZIP 就打包整市底下的縣級邊界、鄉鎮邊界與村級點位(我實測成都市的市級批次包有 14.4MB、四層資料齊全),比逐縣抓省事得多。不過全國有三百多個地級單位,整批抓下來仍會撞到 20 次額度。對台灣讀者來說,微信公眾號這道門檻是實際存在的:沒有微信帳號就取不到密碼,額度用完後的續用路等於沒有,另一條路是改用它的 GitHub 開源碼自己架一套(密碼在自架設定檔裡自己設,預設值是 55555)。順道一提,它的倉庫裡還躺著一份將近 220KB 的下載統計檔,累計下載四萬八千多次、單日近千次,這個站的資料被大量取用是常態,撞到額度機制的機會不小。

禁止商用這條線,比額度更硬

每個下載包裡的說明.txt 都附著同一組條款:資料僅供學術研究、教育學習等非商業用途參考,嚴禁用於任何商業用途,下載即視為同意。同一份說明檔同時寫明資料僅供參考、使用者需自行核實,站方的資料使用頁也是同一口徑。做付費專案、商業簡報、接案交付的人,這批資料直接用會踩線,需要商用授權要另行找資料源。

程式碼這邊則是另一種狀態。這個站在 GitHub 上的原始碼(舊倉庫名 gaode_MAP_CUN,已改名 china-divisions-map,588 顆星、85 個分支,最近一次推送在 2026 年 7 月)整包公開,技術棧是 Node.js 搭 Express 網站框架、PostgreSQL 空間資料庫與 Redis 快取,前後端程式碼都能讀,主程式從早年單檔已經重構成分層的模組結構,版本註記到 3.7.0。但倉庫裡沒有授權檔(GitHub 判定 license 為 None,專案設定檔裡寫的 ISC 授權聲明沒有對應的授權條款檔),「公開可讀」與「授權可用」是兩回事,要拿它的程式碼二次利用,權利狀態是未定的。

GitHub 倉庫頁 ruiduobao/china-divisions-map,588 顆星與 85 個分支Pin
GitHub 上的 china-divisions-map 倉庫(舊名 gaode_MAP_CUN),原始碼整包公開。

自架也要想清楚一件事:程式碼全開,資料可不開。倉庫裡沒有那些邊界向量檔(那是一座 PostGIS 資料庫與幾萬個向量檔案的工程),自己架起來得到的是一個空站,資料還是要回 CTAmap 或統計局源頭自己灌。多數人的最短路徑,其實就是把線上站當資料入口用,程式碼當參考讀。

學術教學拿得到,村界填色與商用要繞道

適用的人很明確:要中國省市縣邊界做學術研究、教學教材、個人資料視覺化專案的人,這站免登入、五格式、還能切年份,比在各方資料頁面間輾轉舒適得多;寫論文或報告需要鄉鎮一級 2020 年斷面邊界的,批次下載也拿得到。做點分析需要全國村委會座標的,村級點位一批打包同樣省事。

不適合的場景也同樣明確:需要 2024 年之後區劃的(站上最新斷面是 2023)、需要村級邊界畫填色地圖的(預設只有點)、商業用途的(條款明文禁止)、以及沒有微信又需要大量下載的(20 次後的密碼牆繞不開)。這幾種需求裡,前兩種可以回上游 CTAmap 或國家統計局的區劃代碼表自己想辦法,後兩種就只能換資料源了。

拿到向量檔之後的後處理,可以順手接上站內介紹過的工具:村級點位資料匯出成 CSV 要批次檢查或改欄位時,CSVInk 這類檔案不出瀏覽器的表格工具很合用;做中國基礎設施類的專題需要疊更多圖層時,OpenGridWorks 電網地圖是同樣把公開資料畫進地圖的另一個例子。資料入口解決了,後面的功夫都在資料整理本身。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1312

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...