map 地图组件

地图选择器网址
baseUrl:
https://gallerybox.echartsjs.com 

1.geo+

+波纹

// https://gallerybox.echartsjs.com/asset/get/s/data-1591343795436-TgLtkd9hN.json

(function () {
  let mapDate = [{
    name: '江干区',
    value: [120.185, 30.274, 2999]
  },
  {
    name: '拱墅区',
    value: [120.182, 30.351, 6354]
  },
  {
    name: '西湖区',
    value: [120.091, 30.27, 5841]
  },
  {
    name: '滨江区',
    value: [120.21, 30.209, 9842]
  },
  {
    name: '萧山区',
    value: [120.254, 30.159, 29999]
  },
  {
    name: '余杭区',
    value: [120.295, 30.427, 10245]
  },
  {
    name: '富阳区',
    value: [119.956, 30.05, 23014]
  },
  {
    name: '桐庐县',
    value: [119.675, 29.784, 10245]
  },
  {
    name: '淳安县',
    value: [119.058, 29.613, 45210]
  },
  
  {
    name: '建德市',
    value: [119.28, 29.464, 36524]
  },
  {
    name: '临安区',
    value: [119.712, 30.227, 32014]
  },
  {
    name: '钱塘新区',
    value: [120.485, 30.284, 62247]
  }
  ];
  let option = {
    title: {
      top: 20,
      text: '“困难人数” - 杭州市',
      left: 'left',
      textStyle: {
        color: '#fff'
      }
    },
    //视觉映射组件
    visualMap: {
      type: 'piecewise',//分段型视觉映射组件
      // min: 0,
      // max: 1000000,
      right: 100, //视觉映射组件位置
      inverse: true,//是否反转视觉映射组件
      seriesIndex: 1,//指定取哪个系列的数据 seriesIndex=1对应type=effectScattereffectScatter系列,这里面的data属性和需要视觉映射
      bottom: 100,
      textStyle: {
        color: '#FFFF'
      },

      // lt(小于,little than),gt(大于,greater than)
      //分段
      pieces: [{
        gt: 50000,
        color: 'red',
        label: '困难人数大于5万人'
      }, //(50000,+无穷)
      {
        gt: 30000,
        lte: 50000,
        color: 'green',
        label: '困难人数3-5万人'
      }, //(30000,50000]
      {
        gt: 10000,
        lte: 30000,
        color: 'yellow',
        label: '困难人数1-3万人'
      }, //(10000,30000]
      {
        lte: 10000,
        color: 'pink',
        label: '困难人数小于1万人' //[-无穷,10000]
      }
      ],

    },

    // //地理坐标系组件。放在下面
    geo: {
      map: 'hanzhou',
      aspectScale: 0.75, //长宽比
      zoom: 1.3,
      roam: false, //是否开启鼠标缩放和平移漫游true='scale' +'move'
      itemStyle: {
        // areaColor: 'red',// 
        shadowColor: 'rgba(0,0,0,.7)', //182f68
        shadowOffsetX: 10,
        shadowOffsetY: 15, //作为阴影陪衬
      }
    },
    series: [
      {
        type: 'map',
        zoom: 1.3, //当前视角的缩放比例。
        roam: false,
        map: 'hanzhou', //echarts.registerMap('hanzhou')必须同名

        label: { //地图区域上的文字
          show: true,
          textStyle: {
            color: '#fff'
          },

        },
        itemStyle: {
          borderColor: '#2ab8ff',//2ab8ff
          borderWidth: 1.5,
          areaColor: '#12235c', //这个才是地图区域颜色
        },
        emphasis: {
          label: {
            show: true,
            color: "#fff",
            fontWeight: 700,
            fontSize: 18,
          },
          itemStyle: {
            areaColor: '#2AB8FF', //鼠标放上去的强调色
            borderColor: "green"
          }

        }
      },
      {
        type: 'effectScatter', //带有涟漪特效动画的散点
        coordinateSystem: 'geo', //该系列使用的坐标系就是上面定义的 geo坐标系
        effectType: 'ripple', //特效类型,目前只支持涟漪特效'ripple'。
        showEffectOn: 'render', //配置何时显示特效。render' 绘制完成后显示特效。
        rippleEffect: { //涟漪特效相关配置。
          period: 10, //动画的周期,秒数。
          scale: 3, //动画中波纹向外扩散的最大距离
          brushType: 'fill' //波纹的绘制方式 可选 'stroke' 和 'fill'。
        },
        symbol:'circle', //波纹标记的图形。circle  rect roundRect arrow
        symbolSize:17, //波纹最里面的大小
        hoverAnimation: true,
        // 一旦用了visualMap itemStyle配置无效
        // itemStyle: {
        //   color: '#fff',
        //   shadowBlur: 10,
        //   shadowColor: '#333',
        //   borderType:'dotted'
        // },
        data: mapDate
      }

    ]
  };

  $.get('/data/1hangzhou.json', handleData)
  function handleData(geoJson) {
    echarts.registerMap('hanzhou', geoJson);
    drawMap()
  }
  function drawMap() {
    let map1 = document.getElementById('map1')
    let myChart = echarts.init(map1)
    myChart.setOption(option)
  }




})();
View Code

2上海人口密度

visualMap type:continuous

,//分段型视觉映射组件

// 上海人口密度
(function () {
  const mapDate = [
    // 也可以是省略经纬度简写的数据  {name: '中西区', value: 20057.34},
    { name: '黄浦区', value: [121.490317, 31.222771, 34640.6929895246] }, //x ,y value 经纬度 value
    { name: '徐汇区', value: [121.43752, 31.179973, 19816.1066471877] },
    { name: '长宁区', value: [121.4222, 31.218123, 18030.5744125326] },
    { name: '静安区', value: [121.448224, 31.229003, 32386.8766404199] },
    { name: '普陀区', value: [121.392499, 31.241701, 23506.8575597301] },
    { name: '虹口区', value: [121.491832, 31.26097, 36306.4735945486] },
    { name: '杨浦区', value: [121.522797, 31.270755, 21623.9420385312] },
    { name: '闵行区', value: [121.375972, 31.111658, 6552.58799730276] },
    { name: '宝山区', value: [121.489934, 31.398896, 7029.35901693789] },
    { name: '嘉定区', value: [121.250333, 31.383524, 3169.39034898751] },
    { name: '浦东新区', value: [121.567706, 31.245944, 4167.53827215572] },
    { name: '金山区', value: [121.330736, 30.724697, 1249.78756078833] },
    { name: '松江区', value: [121.223543, 31.03047, 2612.76996235387] },
    { name: '青浦区', value: [121.113021, 31.151209, 1613.12859999403] },
    { name: '奉贤区', value: [121.458472, 30.912345, 1576.19837355795] },
    { name: '崇明区', value: [121.397516, 31.626946, 593.612767716303] },
  
  

  ]
  let option = {
    title: {
      text: '上海人口密度',
      left: 'left',
      textStyle: {
        color: '#fff'
      }

    },
    tooltip: {
      trigger: 'item', //'{b}<br/>{c} (人/平方公里)'
      formatter: params => {
        return `${params.name}<br/>${params.value.toFixed(2)} (人/平方公里)`
      }
    },
    visualMap: {
      type: 'continuous', //continuous
      min: 400,
      max: 35000,
      seriesIndex: 0,
      text: ['High', 'Low'],
      realtime: false,
      calculable: true,
      left:10, //视觉映射组件位置
      inRange: {
        color: ['lightskyblue', 'yellow', 'orangered']
      },
      textStyle: {
        color: '#FFFF'
      },
    },
    series: [
      {
        name: '上海人口密度',
        type: 'map',
        map: 'shanghai', // 必须和 echarts.registerMap('shanghai', getJson);一样
        zoom: 1.3, //当前视角的缩放比例。
        roam: true,
        label: {
          show: true
        }, emphasis: {
          label: {
            show: true,
            color: "#fff",
            fontWeight: 700,
            fontSize: 18,
          },
          itemStyle: {
            areaColor: 'yellow', //鼠标放上去的强调色
            borderColor: "green"
          }

        },

        data: mapDate
        // 自定义名称映射
        // nameMap: {
        //   'Central and Western': '中西区',
        //   'Eastern': '东区',
        // }
      }
    ]
  };
  $.get('/data/shanghai.json', handleData)
  function handleData(getJson) {
    echarts.registerMap('shanghai', getJson);
    drawMap()

  }
  function drawMap() {
    let map2 = document.getElementById('map2')
    let myChart = echarts.init(map2)
    myChart.setOption(option)
  }
})();
View Code
原文地址:https://www.cnblogs.com/xiaoliziaaa/p/13236109.html