用shp制作geoJson格式地圖數據(shp convert to geoJson)


本文緊接前文,簡單說明利用shp數據制作Echarts支持的geoJson格式的地圖數據。本文以北京市通州區各鎮的shp數據為例進行說明。

軟件環境:

ArcGIS 10.2 (ArcGIS 10.2安裝傳送門)

1. 加載數據,將shp數據加載到ArcMap中


2.為shp數據增加一個name字段

由於Echarts默認以name為字段標識地區名稱,因此要為shp數據增加一個name字段,其值為各鎮名稱。保存數據。


3.轉化為geoJson格式

這里利用一個在線轉化工具進行數據轉換,地址:http://mapshaper.org/   

點擊 select 按鈕


選擇步驟1中的shp數據


點擊 Export 選擇 GeoJson 進行導出


4.引入geoJson

[javascript] view plain copy
  1. var mapChart;  
  2. var option;  
  3. //use json file to make map layer  
  4. $.get('../../js/Beijing_TZQ_TOWN.json', function (beijingJson) {  
  5.         echarts.registerMap('北京', beijingJson);   
  6.         mapChart = echarts.init(document.getElementById('map-wrap'));   
  7.         option = {  
  8.             title:{  
  9.                 text: '通州區各鎮人口密度圖',  
  10.                 left: 'center'  
  11.             },  
  12.             tooltip: {  
  13.            trigger: 'item',  
  14.            formatter: '{b}<br/>{c} (個)'  
  15.             },  
  16.             toolbox: {  
  17.           show: true,  
  18.           orient: 'vertical',  
  19.           left: 'right',  
  20.           top: 'left',  
  21.           feature: {  
  22.               dataView: {readOnly: false},  
  23.               restore: {},  
  24.               saveAsImage: {}  
  25.           }  
  26.             },  
  27.             visualMap: {  
  28.             min: 0,  
  29.             max: 2000,  
  30.             text:['高','低'],  
  31.             realtime: false,  
  32.             calculable: true,  
  33.             inRange: {  
  34.                 color: ['lightskyblue','yellow', 'orangered']  
  35.             }  
  36.                 },  
  37.             series:[  
  38.                 {  
  39.                 name: '通州區各鎮',  
  40.                         type: 'map',  
  41.                         map: '北京', // 自定義擴展圖表類型  
  42.                         aspectScale: 1.0, //長寬比. default: 0.75  
  43.                         zoom: 1.1,  
  44.                         roam: true,  
  45.                itemStyle:{  
  46.                    normal:{label:{show:true}},  
  47.                    emphasis:{label:{show:true}}  
  48.                },  
  49.                 data: [] //需要動態加載data內容  
  50.                 }  
  51.             ]  
  52.         }  
  53.     mapChart.setOption(option);  
  54. });  

這里特別要注意的是:series中 map屬性要為'北京',這個根據你geoJson數據所表示的地區而定,加入你制作的是西安市geoJson數據,這里map要寫'陝西',這樣初始地圖的大小才較為合適。

5.最終效果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM