山西省疫情地圖的實現(1)——山西省地圖文件

因新冠疫情,假期有點長,學習了一下echarts,做了個山西省疫情地圖:http://yiqing.sanjinyou.com

要用echarts顯示山西省地圖,就得有相關的地圖文件。可是網上找到的山西省地圖都過期了,不是最新的。在原有地圖基礎上修改的話,大部分縣只是改個名,相對還好處理;但長治的潞州區就麻煩了,倆區合併了,無法手工合併經緯度範圍,只好自己做地圖。

1、地圖文件編輯器

(1)手工描點太複雜,也沒找到合適的工具。

(2)查看echarts源碼,只找到解碼地圖的代碼,編碼部分只好自己實現(壓縮部分找朋友幫忙實現的)。

(3)用layui實現了一個簡單的地圖文件編輯器,可以添加、修改、刪除地圖要素,主要是修改區劃經緯度範圍。

(4)從百度地圖api獲取指定區劃的經緯度範圍(只能通過名稱精確搜索),壓縮生成地圖文件(中空情況無法處理,如陽泉市城區、礦區,晉城市城區)。

(5)改用高德地圖api獲取指定區劃的經緯度範圍(可以通過名稱模糊搜索,也可以使用區劃代碼搜索),中空的區劃會分成兩部分處理。

這樣就可以自己做地圖了。

2、地圖文件下載器

(1)山西省有11個市,通過高德地圖api獲取各市經緯度範圍,然後生成市級省地圖。可是山西省有一百多個區縣,縣級省地圖以及各市地圖用手工生成就太麻煩了。

(2)高德地圖api可以通過區劃編碼獲取經緯度範圍,這就爲直接下載地圖文件提供了可能性。

(3)需要最新的山西省各市縣區劃代碼。從民政局官網獲取數據,然後用正則解析即可生成最新的區劃編碼。(全國縣級以上區劃代碼)(民政局官網地址:2019年11月中華人民共和國縣以上行政區劃代碼

(4)layui表格顯示所有省/直轄市/自治區列表,這樣就可以直接下載縣級市地圖、市級省地圖、縣級省地圖、省級全國地圖了。

(5)內蒙古地圖出現了問題,經查是相鄰兩個位置的經緯度跨度過大,壓縮時比例尺不合適導致越界造成的。修改編碼代碼,比例尺的選取改成自動計算生成,這個問題就解決了。

3、顯示山西地圖

地圖文件已經有了,用echarts顯示地圖的相關代碼就比較多了,不贅述。

 

如上,得到了兩個副產品:
(1)生成縣以上行政區劃表。

(2)全國地圖、各省地圖、各市地圖的下載器。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章