1. 程式人生 > >Echarts 地圖生成 以及生成geojson檔案(附帶完整程式碼)

Echarts 地圖生成 以及生成geojson檔案(附帶完整程式碼)

前言:需要實現的效果就是生成省級地圖,點選省級地圖中的市切換至市級地圖。為了自己方便查閱,也方便大家使用。

效果如下:

所用的外掛

使用方法:

1、頭部引入(官網下載地址:點這裡下載檔案

<!-- 引入 ECharts 檔案 -->
<script src="echarts.min.js"></script>

2、基礎應用(參考官網)

<!-- 為ECharts準備一個具備大小(寬高)的Dom -->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
  // 基於準備好的dom,初始化echarts例項
  var myChart = echarts.init(document.getElementById('main'));

  // 指定圖表的配置項和資料
  var option = {
    title: {
      text: 'ECharts 入門示例'
    },
    tooltip: {},
    legend: {
      data:['銷量']
    },
    xAxis: {
      data: ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
    },
    yAxis: {},
    series: [{
      name: '銷量',
      type: 'bar',
      data: [5, 20, 36, 10, 10, 20]
    }]
  };

  // 使用剛指定的配置項和資料顯示圖表。
  myChart.setOption(option);
</script>

3、地圖的使用

//引入山西的js檔案
<script src="js/province/shanxi.js" type="text/javascript" charset="utf-8"></script>

具體程式碼如下: 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="js/echarts.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/province/shanxi.js" type="text/javascript" charset="utf-8"></script>
<title>山西地圖</title>
</head>
<body>
<div id="main" style="width: 1200px;height:900px;"></div>
</body>
<script type="text/javascript">
//container 為div的id 
var dom = document.getElementById("main");
//得到echarts的例項物件
var myChart = echarts.init(dom);
initEcharts('山西');
function initEcharts(pName) {
  //關鍵是配置項
  var option = {
    series: [{
      name: '網點個數',
      //series[i]-map:系列列表。每個系列通過 type 決定自己的圖表型別,此處是地圖型別
      type: 'map',
      mapType: pName,
      //地圖區域的多邊形 圖形樣式,有 normal 和 emphasis 兩個狀態
      itemStyle: {
        //normal 是圖形在預設狀態下的樣式;
        normal: {
          show: true,
          areaColor: "#CECECE",
          borderColor: "#FCFCFC",
          borderWidth: "1"
        },
        //emphasis 是圖形在高亮狀態下的樣式,比如在滑鼠懸浮或者圖例聯動高亮時。
        emphasis: {
          show: true,
          areaColor: "#C8A5DF",
        }
      },
      //圖形上的文字標籤,可用於說明圖形的一些資料資訊
      label: {
        normal: {
          show: true
        },
        emphasis: {
          show: true
        }
      },
    }],
    title: {
      text: pName,
      left: 'center'
    }
  };
  //使用剛指定的配置項和資料顯示圖表。
  myChart.setOption(option);
}
//定義全國省份的陣列
var provinces = ['datong', 'shuozhou', 'xinzhou', 'lvliang', 'taiyuan', 'yangquan', 'jinzhong', 'linfen', 'changzhi', 'jincheng', 'yuncheng'];
var provincesText = ['大同市', '朔州市', '忻州市', '呂梁市', '太原市', '陽泉市', '晉中市', '臨汾市', '長治市', '晉城市', '運城市'	];
myChart.on('click', function(param) {
  //console.log(param);
  //遍歷取到provincesText 中的下標  去拿到對應的省js
  for (var i = 0; i < provincesText.length; i++) {
    if (param.name == provincesText[i]) {
      //顯示對應省份的方法
      showProvince(provincesText[i],provinces[i]);
      break;
    }
  }
});
//展示對應的省
function showProvince(pText,pName) {
  loadBdScript('$' + pName + 'JS', 'js/province/' + pName + '.js', function() {
    //初始化echarts
    initEcharts(pText);
  });
}
//載入對應的JS
function loadBdScript(scriptId, url, callback) {
  var script = document.createElement("script")
  script.type = "text/javascript";
  if (script.readyState) { //IE  
    script.onreadystatechange = function() {
      if (script.readyState == "loaded" || script.readyState == "complete") {
        script.onreadystatechange = null;
        callback();
      }
    };
  } else { //Others  
    script.onload = function() {
      callback();
    };
  }
  script.src = url;
  script.id = scriptId;
  document.getElementsByTagName("head")[0].appendChild(script);
};
</script>
</html>

完整程式碼包:點這裡下載

注:本文純屬資源整合,如有問題請聯絡博主