在項目中,需要使用鄉鎮街道的地圖邊界,之前一直使用的是百度地圖或Echarts地圖,其沒有這部分行政區的數據,需要在第三方購買數據,其提供的是shp文件
主文件:counties.shp
索引文件:counties.shx
dBASE表: ounties.dbf
我使用GeoServer將shp文件導入(文件導入時選擇GBK編碼),然后再使用GeoServer界面管理中導出數據功能導出為GeoJSON格式
開始使用的GeoServer2.3.8,當導出問KML數據,中文沒出現亂碼現象,但是導出為GeoJSON時,出現亂碼現象,在網上也沒搜到解決辦法。
尋找中文亂碼問題,找了半天,沒找到,重新下載GeoServer2.8.0版本,沒有經過其他處理就解決了亂碼問題。
注意:GeoServer對jdk有要求,在下載對應版本時要注意看其文檔說明。
我使用county.shp做了一個demo
shp文件(第二個文件是導入GeoServer時自動生成的)
導入后,在GeoServer管理界面中如下:
選擇右邊下來中的GeoJSON,會在網頁中打開一個json文件,保存到本地即可
echarts使用的地圖格式就是GeoJSON
OpenLayers展示效果:
使用GeoJSON文件在Echarts中的展示效果
在百度地圖上的展示效果:
在控制台上輸出部分行政區名字:
說明:在echarts中,使用的編碼為UTF-8,導出的GeoJSON文件,Features的properties中沒有屬性為name的,而在使用echarts的功能上時,需要使用的name屬性,
修改GeoJSON中行政區對應的屬性名改為name即可,下面一張圖是我導入省級地圖,修改后,對部分省使用echarts進行着色效果。