省、市、區、街道行政區資料以及行政區資料合併問題
一、行政區獲取
公司需要做大屏資料展示,地圖地區需要到街道級別。
查看了不少資料。
目前的解決方案是,省市級別的資料在阿里地圖選擇器下載(http://datav.aliyun.com/tools/atlas/),可以做到縣級下鑽,如果要下鑽到街道級別,則需要網上找這部分資料(找了很多,不大靠譜。如果付費的話,BIGEMAP,3000多授權,能下載所有行政區資料)。我們公司小,需求不多,就湖南部分割槽縣,所以網上找的方案,用的BIGEMAP的免費功能,匯出邊界,一個個的街道匯出(BIGEMAP無mac版)
以醴陵市(湖南省-株洲市-醴陵)為例
1、匯出所有街道級別KML檔案,然後在http://geojson.io/#new
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Polygon", "coordinates": [] } } ] }
2、合併資料,將所有街道級別JSON,合併到一起,就是整個醴陵市區的行政區資料。上述程式碼JSON物件下features資料放到一個features物件下(資料太多可以用nodejs或者java寫個方法,讀取檔案合併)
{ "type": "FeatureCollection", "features": [ { // 街道1下features }, { // 街道2下features }, { // 街道3下features }, // ... ] }
二、行政區資料合併
區級別的行政區及以上幾倍可能改變會比較小,街道級別資料變動比較多,以醴陵為例,BIGEMAP上資料應該是比較早以前資料,2015年後好像合併,改名的很多
(下面左邊為BIGEMAP上的醴陵市行政區資料,右圖是我們系統的,差不多也是最新的資料。)
注:本文以geojson、mapshaper這兩個網站合併區域,其他部落格也看到可以用js之類處理合並,可以去看看
1、合併資料,以【明月鎮】為例,百度百科資料(2015年,賀家橋鎮與大障鎮成建制合併設立明月鎮)。
在http://geojson.io/#new上傳家橋鎮與大障鎮的kml檔案 OPEN - FILE
獲得如下資料
將右側資料複製出來,另存為json檔案
2、修改該json檔案,目前得到格式如下,features陣列下,每個物件下的properties增加alias屬性,屬性值為合併後名字。儲存
3、開啟https://mapshaper.org/,選擇剛上傳的json檔案匯入,得到如下資料
開啟網站命令列工具,輸入命令dissolve 'alias' -o result.json,回車,然後下載json檔案
4、校驗,下載完的json資料拷貝出來,放入geojson右側JSON框內,就可以看到合併後的行政區了。注意修改properties下的屬性,合併後,屬性名為 alias ,需改為 name,與之前保持一致
以上只是一個笨方法,如果有更好方法,求告知。