最新全國省市區縣鄉鎮街道行政區劃數據提取(2022年)
AreaCity 開源庫整理了省、市、區縣、鄉鎮街道四級行政區劃數據,配套了在線工具轉換成三級、四級聯動JavaScript程式碼,使用自帶的轉換工具軟體可以導入資料庫;數據源自: 統計局、民政部、騰訊地圖行政區劃、高德地圖行政區劃,從這四大平台整合。
數據在線預覽://xiangyuecn.gitee.io/areacity-jsspider-statsgov/
GitHub地址://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov
截止發文(2022-02-12),開源庫內於2022年02月06日發布了新整理的最新版數據;行政區劃數據更新頻繁,僅區縣每年都有好多個變更,統計局、民政部每年都會發布新數據,不過需要自行處理;所以省市區數據需要經常去同步維護,好在這個開源庫有在持續的長期維護,新數據發布後更新相對容易很多。
由於開源庫更新維護數據比較及時,所以只要開源庫沒有被關閉,本文介紹的提取方法就一直適用,不僅僅是適用於今年; 比那些上傳到下載平台就萬年不更新的數據優秀很多。
除了四級行政區劃數據外,開源庫內還可以在線預覽和下載到省市區三級坐標矢量邊界,和鄉鎮街道地理圍欄數據,並且提供了轉換工具軟體可以方便的導入資料庫、轉換成shp、geojson、sql格式、轉換坐標系;坐標邊界我後面再發使用教程,本文只介紹四級行政區劃數據的提取使用。
最新版通用json格式文件提取
在數據在線預覽頁面底下,提供了個在線轉換工具,打開就是當前庫裡面整理好的最新版數據(開源庫更新維護數據比較及時),能將省市區鎮四級數據轉成json格式文件,控制選項也豐富,想要導出一級、兩級、三級、四級數據都可以:
轉換好後直接可以下載到json文件:
文件內包含了n:城市名、i:城市ID、p:上級ID、y:拼音前綴,都是單個字母做key,目的是減少文件大小,如果想要name、id這樣的key,可以點擊「在線編輯UserFormat源碼」裡面默認實現了導出完整的數據格式。
json文件對於跨平台使用很方便,不單單是網頁裡面使用,手機app、桌面程式、後端程式碼內使用均適用。
最新版多級聯動js版數據程式碼提取
在數據在線預覽頁面底下,提供了個在線轉換工具,打開就是當前庫裡面整理好的最新版數據(開源庫更新維護數據比較及時),能將省市區鎮四級數據轉成多級聯動js,控制選項也豐富,轉成兩級、三級、四級聯動都可以,還能在頁面上直接體驗到四級聯動下拉選擇:
轉換好後直接可以下載到js文件:
其實js程式碼內已經內嵌了json格式的數據,並且封裝好了多級聯動js程式碼,我們只需要按程式碼內的說明,調用方法即可在html網頁裡面快速實現多級聯動,用戶選擇後會有事件回調。
最新版數據導入資料庫
導入前先下載好:
- 【轉換工具軟體】在數據在線預覽頁面內,點擊轉換工具軟體鏈接可以下載到開源庫提供的轉換工具,使用此工具,可以將省市區鎮四級行政區劃數據導入到MySQL、SQL Server資料庫,或者轉換成sql文件(導入到其他兼容資料庫);
- 【ok_data_level4.csv數據文件】在數據在線預覽頁面內,點擊顯示的數據下載鏈接,下載得到
ok_data_level4.csv
數據文件。
注意:文件一定要到開源庫內下載,開源庫更新維護數據比較及時,不要到其他的下載平台下載,不然那些上傳到下載平台萬年不更新的極有可能下載到老版本。
轉換工具軟體只支援Windows電腦,Mac上可以使用虛擬機來使用軟體。
準備好後,打開轉換工具,開始將數據導入資料庫(這裡導入的MySQL,導入SQL Server一樣操作):
- 點擊工具內的「高級>>」按鈕,打開自定義腳本介面;
- 在腳本介面點擊頂上的選擇文件,選擇下載的
ok_data_level4.csv
數據文件; - 在內置腳本下拉框中選擇「省市區鎮導入資料庫」選項,然後點擊應用按鈕;
- 在左側介面的資料庫設置中,選擇類型為MySQL,填寫好資料庫連接埠+資料庫名+帳號密碼;
- 自定義腳本介面中點擊「導入資料庫」按鈕,等待一會,4萬多條數據3分鐘不到就就導入資料庫了。
導入成功,4萬多條數據耗時2分22秒:
MySQL客戶端查看數據:
以上操作同樣適用於SQL Server,一樣的步驟,另外內置腳本中還支援「省市區鎮轉SQL」功能,可以直接導出SQL文件,可以導入到其他兼容的資料庫。
數據的一些要注意的地方
開源庫會盡量和民政部的更新頻率保持一致,但由於最為主要的兩個數據源國家統計局
、騰訊地圖行政區劃
更新頻度並沒有民政部高;因此省市區三級準確度和民政部準確度是一量級,並且要更完整些;第四級鎮級主要由騰訊地圖行政區劃
提供,騰訊數據源並不經常更新,因此會導致小部分新增、調整的城市第四級沒有數據(會用上級數據補齊),使用前應該考慮此缺陷。
數據通過使用上級數據補齊的形式(具體細節請參考庫文檔後面的數據規則),使得任何一個數據都能滿足省市區鎮4級結構,沒有孤立的(ID全局唯一),因此不管從哪級進行下級選擇,都能進行有效操作。可以通過ID結構來識別這種補齊填充的數據,只要ID為上級的ID+多個0,就代表此數據為補齊填充數據,比如:東莞(4419)-東莞(441900),很容易鑒別出441900為補齊用的填充數據。
會發生補齊行為的數據很少,約50來個,主要為:直筒子市(東莞、儋州等)、省直轄縣級市(濟源、潛江等),他們的下一級僅有補齊的這條數據。另外直轄市(北京、天津等)下級也僅有一條數據,ID結尾為01(不包括重慶,重慶下級分成了市、縣兩個)。
直筒子等這種為什麼不直接把下級往上提一級來做區級,採用補齊填充的方式來對齊數據的原因,請參考issue#9。
數據中不包含大部分行政管理區,比如:雄安新區、天府新區、蘇州工業園區等。
省市區縣鄉鎮坐標、矢量邊界數據
在數據在線預覽頁面中同樣可以下載到省市區三級坐標邊界數據,和鄉鎮級的坐標邊界數據,通過轉換工具軟體可以方便的導入資料庫、轉換成shp、geojson、sql格式、轉換坐標系。
坐標邊界的使用我後面再發教程,敬請關注~
ECharts Map四級下鑽在線測試和預覽+程式碼生成://xiangyuecn.gitee.io/areacity-jsspider-statsgov/assets/geo-echarts.html
【END】