vue中echart-gl 3D地图纹理实例

1. 安装

npm install echarts
npm install echarts-gl

2. vue组件

html部分
  <template>
  <section class="chartapp">
    <div class="map-chart" ref="mapChart"></div>
  </section>
</template>
JS引入
import * as Echarts from 'echarts'
import 'echarts-gl'
import shanghai from 'shanghai.json'
核心方法
mounted () {
	this.initChart()
},
methods: {
   initChart () {
	  const vue = this
	  let myChart = Echarts.init(this.$refs.mapChart)
	  myChart.onresize = myChart.resize
	  Echarts.registerMap('shanghai', shanghai)
	  const options = {
		series:{
			name: 'shanghai',
			type: 'map3D',
			map: shanghai,
			aspectScale: 0.9,
			selectedMode: false,
			shading: 'realistic'
			// 后面添加各个属性OBJ
		}
	  }
	  myChart.setOption(options)
  }
}
地图初显效果

echart-gl上海地图,初步展示
添加描边

  const itemStyle = {
    opacity: 1,
    borderWidth: 2,
    borderColor: '#01CAF8',
    shadowColor: 'red'
  }

添加区域图片纹理

  const realisticMaterial = {
    detailTexture: '/1.png',
    textureTiling: 1, // 纹理平铺,1是拉伸,数字表示纹理平铺次数
    roughness: 1, // 材质粗糙度,0完全光滑,1完全粗糙
    metalness: 0, // 0材质是非金属 ,1金属
    roughnessAdjust: 0
  }

添加区域鼠标移入效果

  const emphasis = {
    label: {
      show: true,
      color: '#FFF',
      fontSize: 20
    },
    itemStyle: {
      borderColor: '#41EB26',
      borderWidth: 5,
      color: '#41EB26' 
    }
  }

添加地级市的标签

  const label = {
    show: true,
    formatter: (params) => {
      name = params.data.name
      if (params.data.alias) name = params.data.alias
      return name
    },
    textStyle: {
      backgroundColor: 'transparent',
      color: '#FFF',
      fontSize: '20',
      padding: 0
    }
  }

此时效果图
echart-gl 上海地图纹理
颜色有点暗对,添加光线(intensity:环境光强度,值越大,越亮)

  const light = {
    main: {
      color: '#fff',
      intensity: 1,
      shadow: false,
      shadowQuality: 'high',
      alpha: 8,
      beta: 80
    },
    ambient: {
      color: '#fff', 
      intensity: 1
    }
  }

在这里插入图片描述

后续

点击事件(可用)

 myChart.off('click')
    myChart.on('click', function (params) {
 })

3. 总结

很对人遇到myChart.off(‘click’)不生效,是因为,你地图在geo上面的。series这儿就没问题了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值