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