最新全國省市區縣鄉鎮街道行政區劃資料提取(2022年)

高堅果發表於2022-02-12

AreaCity 開源庫整理了省、市、區縣、鄉鎮街道四級行政區劃資料,配套了線上工具轉換成三級、四級聯動JavaScript程式碼,使用自帶的轉換工具軟體可以匯入資料庫;資料來源自: 統計局、民政部、騰訊地圖行政區劃、高德地圖行政區劃,從這四大平臺整合。

資料線上預覽:https://xiangyuecn.gitee.io/areacity-jsspider-statsgov/
GitHub地址:https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov

截止發文(2022-02-12),開源庫內於2022年02月06日釋出了新整理的最新版資料;行政區劃資料更新頻繁,僅區縣每年都有好多個變更,統計局、民政部每年都會發布新資料,不過需要自行處理;所以省市區資料需要經常去同步維護,好在這個開源庫有在持續的長期維護,新資料釋出後更新相對容易很多。

由於開源庫更新維護資料比較及時,所以只要開源庫沒有被關閉,本文介紹的提取方法就一直適用,不僅僅是適用於今年; 比那些上傳到下載平臺就萬年不更新的資料優秀很多。

除了四級行政區劃資料外,開源庫內還可以線上預覽和下載到省市區三級座標向量邊界,和鄉鎮街道地理圍欄資料,並且提供了轉換工具軟體可以方便的匯入資料庫、轉換成shp、geojson、sql格式、轉換座標系;座標邊界我後面再發使用教程,本文只介紹四級行政區劃資料的提取使用。

最新版通用json格式檔案提取

資料線上預覽頁面底下,提供了個線上轉換工具,開啟就是當前庫裡面整理好的最新版資料(開源庫更新維護資料比較及時),能將省市區鎮四級資料轉成json格式檔案,控制選項也豐富,想要匯出一級、兩級、三級、四級資料都可以:

通用json格式檔案生成

轉換好後直接可以下載到json檔案:

json檔案資料

檔案內包含了n:城市名、i:城市ID、p:上級ID、y:拼音字首,都是單個字母做key,目的是減少檔案大小,如果想要name、id這樣的key,可以點選“線上編輯UserFormat原始碼”裡面預設實現了匯出完整的資料格式。

json檔案對於跨平臺使用很方便,不單單是網頁裡面使用,手機app、桌面程式、後端程式碼內使用均適用。

最新版多級聯動js版資料程式碼提取

資料線上預覽頁面底下,提供了個線上轉換工具,開啟就是當前庫裡面整理好的最新版資料(開源庫更新維護資料比較及時),能將省市區鎮四級資料轉成多級聯動js,控制選項也豐富,轉成兩級、三級、四級聯動都可以,還能在頁面上直接體驗到四級聯動下拉選擇:

js多級聯動程式碼生成

轉換好後直接可以下載到js檔案:

js檔案程式碼

其實js程式碼內已經內嵌了json格式的資料,並且封裝好了多級聯動js程式碼,我們只需要按程式碼內的說明,呼叫方法即可在html網頁裡面快速實現多級聯動,使用者選擇後會有事件回撥。

最新版資料匯入資料庫

匯入前先下載好:

  1. 【轉換工具軟體】在資料線上預覽頁面內,點選轉換工具軟體連結可以下載到開源庫提供的轉換工具,使用此工具,可以將省市區鎮四級行政區劃資料匯入到MySQL、SQL Server資料庫,或者轉換成sql檔案(匯入到其他相容資料庫);
  2. 【ok_data_level4.csv資料檔案】在資料線上預覽頁面內,點選顯示的資料下載連結,下載得到ok_data_level4.csv資料檔案。

注意:檔案一定要到開源庫內下載,開源庫更新維護資料比較及時,不要到其他的下載平臺下載,不然那些上傳到下載平臺萬年不更新的極有可能下載到老版本。

轉換工具軟體只支援Windows電腦,Mac上可以使用虛擬機器來使用軟體。

準備好後,開啟轉換工具,開始將資料匯入資料庫(這裡匯入的MySQL,匯入SQL Server一樣操作):

  1. 點選工具內的“高階>>”按鈕,開啟自定義指令碼介面;
  2. 在指令碼介面點選頂上的選擇檔案,選擇下載的ok_data_level4.csv資料檔案;
  3. 在內建指令碼下拉框中選擇“省市區鎮匯入資料庫”選項,然後點選應用按鈕;
  4. 在左側介面的資料庫設定中,選擇型別為MySQL,填寫好資料庫連線埠+資料庫名+賬號密碼;
  5. 自定義指令碼介面中點選“匯入資料庫”按鈕,等待一會,4萬多條資料3分鐘不到就就匯入資料庫了。

匯入配置

匯入成功,4萬多條資料耗時2分22秒:
匯入成功

MySQL客戶端檢視資料:
MySQL匯入的資料

以上操作同樣適用於SQL Server,一樣的步驟,另外內建指令碼中還支援“省市區鎮轉SQL”功能,可以直接匯出SQL檔案,可以匯入到其他相容的資料庫。

資料的一些要注意的地方

開源庫會盡量和民政部的更新頻率保持一致,但由於最為主要的兩個資料來源國家統計局騰訊地圖行政區劃更新頻度並沒有民政部高;因此省市區三級準確度和民政部準確度是一量級,並且要更完整些;第四級鎮級主要由騰訊地圖行政區劃提供,騰訊資料來源並不經常更新,因此會導致小部分新增、調整的城市第四級沒有資料(會用上級資料補齊),使用前應該考慮此缺陷。

資料通過使用上級資料補齊的形式(具體細節請參考庫文件後面的資料規則),使得任何一個資料都能滿足省市區鎮4級結構,沒有孤立的(ID全域性唯一),因此不管從哪級進行下級選擇,都能進行有效操作。可以通過ID結構來識別這種補齊填充的資料,只要ID為上級的ID+多個0,就代表此資料為補齊填充資料,比如:東莞(4419)-東莞(441900),很容易鑑別出441900為補齊用的填充資料。

會發生補齊行為的資料很少,約50來個,主要為:直筒子市(東莞、儋州等)、省直轄縣級市(濟源、潛江等),他們的下一級僅有補齊的這條資料。另外直轄市(北京、天津等)下級也僅有一條資料,ID結尾為01(不包括重慶,重慶下級分成了市、縣兩個)。

直筒子等這種為什麼不直接把下級往上提一級來做區級,採用補齊填充的方式來對齊資料的原因,請參考issue#9

資料中不包含大部分行政管理區,比如:雄安新區、天府新區、蘇州工業園區等。

省市區縣鄉鎮座標、向量邊界資料

在資料線上預覽頁面中同樣可以下載到省市區三級座標邊界資料,和鄉鎮級的座標邊界資料,通過轉換工具軟體可以方便的匯入資料庫、轉換成shp、geojson、sql格式、轉換座標系。

座標邊界的使用我後面再發教程,敬請關注~

ECharts Map四級下鑽線上測試和預覽+程式碼生成:https://xiangyuecn.gitee.io/areacity-jsspider-statsgov/assets/geo-echarts.html

ECharts Map四級下鑽

【END】

相關文章