VUE,echart3D地图,自定义信息框

 

<template>

  <div class="chart" ref="nanjingMap"></div>

</template>

<script>

import nanjing from "./nanjing.json";

import echarts from "echarts";

import "echarts-gl";

export default {

  name: "NanjingMap",

  data() {

    return {

        data:[

               {name: '玄武区', value: 543,a:112,b:131,c:333,d:213,f:42,g:13},

               {name: '秦淮区', value: 646,a:132,b:123,c:323,d:211,f:42,g:23},

               {name: '建邺区', value: 564,a:112,b:163,c:343,d:214,f:42,g:33},

               {name: '鼓楼区', value: 586,a:212,b:153,c:133,d:213,f:42,g:43},

               {name: '栖霞区', value: 442,a:112,b:143,c:133,d:211,f:42,g:53},

               {name: '雨花台区', value: 353,a:312,b:313,c:233,d:221,f:42,g:63},

               {name: '江宁区', value: 578,a:121,b:131,c:391,d:213,f:42,g:73},

               {name: '六合区', value: 298,a:122,b:123,c:133,d:211,f:42,g:23},

               {name: '溧水区', value: 268,a:172,b:133,c:323,d:212,f:42,g:33},

               {name: '高淳区', value: 121,a:142,b:183,c:334,d:218,f:42,g:43},

               {name: '浦口区', value: 594,a:122,b:113,c:331,d:201,f:42,g:53},

            ],

    };

  },

  methods: {

    initNanjingMap() {

      let nanjingMapChart = this.$echarts.init(this.$refs.nanjingMap);

      this.$echarts.registerMap("nanjing", nanjing);

      let area = "";

     let option = {

    visualMap: {

            min: 0,

            max: 700,

            left: '10%',

            text: ['高', '低'], // 文本,默认为数值文本

              color: '#f08c2e',

            calculable: true,

                   inRange: {

                color: ['#6de8fa61', '#5470c678', '#061f5570']

            }

        },

          series:[

            {

              type: "map3D",

               map: "nanjing",

                data:this.data,

            

          itemStyle: {

            //areaColor: 'blue',

            //opacity: 3,

            borderWidth: 2,

            borderColor: "rgb(62,215,213)",

            //opacity: 0.48,

          },

             "label": {

                "emphasis": {

                    "show": true,

                     color: "#f7e500", 

                     fontSize: 20,

                },

                "normal": {

                    "show": true,

                     color: "#f7e500", 

                     fontSize: 16,

                }

            }, 

            //"mapType": "nanjing",

            "roam": true,

           // "type": "map",

            

             zoom:1.2,

          }

        

          ],

       viewControl: {

            //用于鼠标的旋转,缩放等视角控制。

            autoRotate: true, //是否开启视角绕物体的自动旋转查看

            distance: 70, //默认视角距离主体的距离,对于 globe 来说是距离地球表面的距离,对于 grid3D 和 geo3D 等其它组件来说是距离中心原点的距离。在 projection 为'perspective'的时候有效。

          },

          tooltip: {

            trigger: 'item',

             backgroundColor:"#186a7891",

             borderRadius: 10,

              padding: [20, 20, 20, 20],

               textStyle: {

                 color:'white',

                align: 'left',

                fontSize: 14

              },

           // formatter: '{b}<br/>主体数量:{c} '

            formatter(params){

           //for(let x in params){

              let p=params.data;

               return p.name+'    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp总计:  '+p.value+"</br></br><Row><Col span='6'>食品餐饮:"+p.a+ "</Col><Col span='6' offset='2'>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp药品药械:"+p.b+ "</Col<Col span='6' offset='2'>&nbsp&nbsp&nbsp&nbsp&nbsp化妆品:"+p.c+ "</Col></Row></br></br><Row><Col span='6'>特种设备:"+p.d+ "</Col><Col span='6' offset='2'>&nbsp&nbsp&nbsp&nbsp&nbsp医疗器械:"+p.f+ "</Col<Col span='6' offset='2'>&nbsp&nbsp&nbsp&nbsp&nbsp其他:"+p.g+ "</Col></Row>"

         //  }

            

       }

        },

      };

      nanjingMapChart.getZr().on("click", function (e) {

       console.log(area);

      });

      nanjingMapChart.setOption(option);

    },

    init() {

      const self = this;

      setTimeout(() => {

        window.addEventListener("resize", function () {

          self.nanjingMap = self.$echarts.init(self.$refs.nanjingMap);

          self.nanjingMap.resize();

        });

      }, 10);

    },

 show(a){

console.log(a);

 },

  },

  created() {},

  mounted() {

    this.initNanjingMap();

    this.init();

  },

};

</script>

<style lang="less" scoped>

.chart {

  height: 100%;

  width: 100%;

  // background: url("../../../assets/home-img/JZ.png") -50px;

}

</style>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue ECharts是一个将ECharts图表库与Vue.js架集成的解决方案,它使得在Vue项目中使用ECharts绘制图表变得更加方便。对于广州地图可视化,你可以使用ECharts的地理地图功能来展示广州市的数据,例如人口密度、商业区分布或者公共交通线路等。 具体步骤如下: 1. **安装依赖**:首先确保你在项目中已经安装了VueECharts。如果你还没有安装,可以通过npm或yarn来添加: ``` npm install vue-echarts echarts @echarts/map-js --save ``` 2. **引入并注册组件**:在Vue组件中导入ECharts地图数据,并创建一个Vue组件,如`Map.vue`: ```html <template> <div ref="map" style="width: 100%; height: 500px;"></div> </template> <script> import { Map, MapComponent } from 'vue-echarts'; import 'echarts/map/js/china'; export default { components: { MapComponent }, data() { return { mapData: {} // 地图数据 }; }, mounted() { this.initChart(); }, methods: { initChart() { this.$refs.map.initChart({ option: { geo: { roam: true, map: '广东', tooltip: {}, label: { emphasis: { show: false } }, itemStyle: { normal: { areaColor: '#ecf4fa' } } } } }); } } } </script> ``` 3. **加载地图数据**:你需要获取反映广州区域的地图数据,这可能来自ECharts内置的中国地图,也可能需要自定义矢量数据。你可以使用ECharts提供的API来设置地图上的区域颜色、标记点等。 4. **动态数据展示**:如果你想在地图上显示实时数据,你需要准备相关的数据源,并在`mounted`生命周期钩子或者数据改变时更新地图的`option`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值