vue+echarts+geojson+makeapie实现地图下钻和数据显示(代码片段)

尔嵘 尔嵘     2023-01-14     665

关键词:

一、参考示例:Make A Pie

 说明:上面这个是JQuery实现的地区分布图 

二、实现过程:

1、下载json:

地址: https://hxkj.vip/demo/echartsMap/

或者:EasyMap 

下载的有的并非是严格的json文件,选用用  json.cn 进行转换

2、vue文件中引入json,直接使用

import jsonData from "../assets/json/411300.json"; //引入josn文件

3、将参考实例中的参考代码语法改成vue能直接用的

4、绘制地图

三、完整代码如下:

components新建组件jmap.vue,代码如下:

<template>
  <div id="container"></div>
</template>
<script>
import jsonData from "../assets/json/411300.json"; //引入josn文件

export default 
  props: ,
  data() 
    return 
        jsonData: [],
        geoCoordMap: 
            内乡县: [111.843801, 33.046358],
            南召县: [112.435583, 33.488617],
            卧龙区: [112.528789, 32.989877],
            唐河县: [112.838492, 32.687892],
            宛城区: [112.544591, 32.994857],
            新野县: [112.365624, 32.524006],
            方城县: [113.010933, 33.255138],
            桐柏县: [113.406059, 32.367153],
            淅川县: [111.489026, 33.136106],
            社旗县: [112.938279, 33.056126],
            西峡县: [111.485772, 33.302981],
            邓州市: [112.092716, 32.681642],
            镇平县: [112.232722, 33.036651]
        ,
        jData: [
           name: "唐河县", value: 12 ,
           name: "西峡县", value: 6 ,
           name: "宛城区", value: 16 ,
           name: "社旗县", value: 2000 ,
           name: "新野县", value: 10 ,
           name: "南召县", value: 11 
        ],

    ;
  ,
  mounted() 
    this.init();
  ,
  created() 
    this.jsonData = jsonData;
  ,

  methods: 
    convertData(data) 
        var res = [];
        for (var i = 0; i < data.length; i++) 
            var geoCoord = this.geoCoordMap[data[i].name];
            if (geoCoord) 
                res.push(
                    name: data[i].name,
                    value: geoCoord.concat(data[i].value).concat(data[i].img)
                );
            
        
        return res;
    ,

    //初始化数据
    init() 
        var chartDom = document.getElementById('container');
        var myChart = this.$echarts.init(chartDom);
        var option;
        myChart.showLoading();
        this.$echarts.registerMap("nanyang", jsonData);//注册地图
        myChart.hideLoading();

        option = 
          title: 
            top: 20,
            text: "VIP分布",
            subtext: "VIP分布",
            textStyle: 
              color: "#000"
            
          ,
          tooltip: 
            formatter: function(params) 
              var html = "";
              html =
                "<div>" +
                "<div >" +
                params.name +
                "</div>" +
                "<div>" +
                '<span style="font-size:14px;font-weight:bold;">' +
                "IVP数:" +
                params.data.value[2] +
                " " +
                "</span>" +
                "</div>" +
                "</div>";
              return html;
            
          ,
          geo: 
            map: "nanyang",
            type: "map",
            zoom: 1,
            showLegendSymbol: true,
            label: 
              normal: 
                show: true,
                color: "#fff"
              ,
              emphasis: 
                show: true,
                color: "red"
              
            ,
            itemStyle: 
              normal: 
                areaColor: "#3a7fd5",
                borderColor: "#0a53e9", //线
                shadowColor: "#092f8f", //外发光
                shadowBlur: 20
              ,
              emphasis: 
                areaColor: "#0a2dae" //悬浮区背景
              
            
          ,
          series: [
            
              name: "666",
              type: "scatter",
              coordinateSystem: "geo",
              symbol: "pin",
              symbolSize: [50, 50],
              label: 
                normal: 
                  show: true,
                  textStyle: 
                    color: "#fff",
                    fontSize: 10
                  ,
                  formatter(value) 
                    return value.data.value[2];
                  
                
              ,
              itemStyle: 
                normal: 
                  color: function(val) 
                    if (val.dataIndex == "0") 
                      return "blue";
                     else if (val.dataIndex == "1") 
                      return "green";
                     else if (val.dataIndex == "2") 
                      return "#ff9900";
                     else 
                      return "red";
                    
                  
                
              ,
              data: this.convertData(
                this.jData.sort(function(a, b) 
                  return b.value - a.value;
                )
              ),
              showEffectOn: "render",
              rippleEffect: 
                brushType: "stroke"
              ,
              hoverAnimation: true,
              zlevel: 1
            
          ]
        ;
        myChart.setOption(option);
    
  
;
</script>

父组件中使用上述组件

先引入:import jMap from "@/components/jmap"; 

再注册:components: jMap

使用:

<div class="home">
 <div class="mapp">
     <jMap style="width: 100%;height: 100%"></jMap>
 </div>
</div>

class为home的记得要给个具体的宽高

参考:

【1】https://www.makeapie.com/editor.html?c=xYSCeb6QAd

【2】Examples - Apache ECharts

echarts添加自定义geojson数据实现地图展示(代码片段)

...到了,就研究了研究,在echarts中添加了自定义的geojson数据,实现数据的地图展示。geojson数据生成:geojson数据的生成有很多种方式,在此介绍两种:1、通过gdal直接 查看详情

echarts地图的基本使用方法(代码片段)

...配置项和数据显示图表。引入地图底图echarts现支持使用geoJSON及svg的形式引入1、GeoJSON引入导入标准的GeoJSON格式的数据//GeoJSON格式"type":"Feature", 查看详情

关于vue+echarts地图引用空间文件或gis(.shp)

...得到的空间文件在https://mapshaper.org/这个网站进行转化为geoJSON;3.你转换的是geoJSON但是到手的确实JSON文件,这个不用慌,就是这么的无厘头;4.如果你得到的是一个JSON文件当然最好,如果是多个你就需要合并了,就像我是的安装... 查看详情

echarts绘制geo地图

参考技术A前面只是将已经现成的geojson数据绘制出来如果遇到一个需求,需要将地图合并,并抹除重合的边界,该如何处理呢?例如,需要将北湖区和苏仙区合并成市局机关,geojson数据要如何处理呢? 查看详情

怎么获取echarts需要的geojson数据去渲染地图:以广州市白云区24镇街为例(内附资源)(代码片段)

...过半天的查找没有在网上找到广州市白云区24镇街的边界geojson数据,要不不全,要不就是收费(能理解),并且自己第一次弄这个geojson数据确实感觉有点恶心心。希望这篇对同学有所帮助,减少一些不必... 查看详情

获取街道镇级的地图geojson数据方法,使用echarts绘制出街道镇级的地图区域画面(中山市为例)(代码片段)

...域。3、统一管理区域数据,有区县的市直接拿区县的geoJson数据,没有区县的市级直接拿街道、镇级的geoJson数据来绘制区域地图。二、获取geoJson数据注意:以下方法获取的都是2015年左右的数据。第一种方法(不... 查看详情

vue里怎么使用echarts实现地图自动轮播功能自定义tooltip悬浮位置提示自定义label标签位置样式?(代码片段)

...浮样式。准备工作1、安装依赖npmiecharts-s2、准备24镇街的geoJson数据关于怎么获取24镇街的geoJson数据,请参考我之前的一篇博客:怎么获取echarts需要的geoJson数据去渲染地图:以广州市白云区24镇街为例3、准备一份配置2... 查看详情

vue使用echarts图表插件/vue-echarts

参考技术Avue使用图表相关的内容可以选择Vue-ECharts也可以使用封装后的v-chart(暂不讲)Vue-ECharts安装npminstallechartsvue-echartsVue-ECharts引入Vue-ECharts使用Vue-ECharts文档Echarts文档 查看详情

vue使用vue-echarts图表(代码片段)

vue-echarts和echarts的区别:vue-echarts是封装后的vue插件,基于 ECharts v4.0.1+开发,依赖 Vue.js v2.2.6+,功能一样的只是把它封装成vue插件这样更方便以vue的方式去使用它。echarts就是普通的js库,vue-echarts特征:轻量,高... 查看详情

使用geoserver导出地图数据geojson并应用

...码),然后再使用GeoServer界面管理中导出数据功能导出为GeoJSON格式开 查看详情

vue中使用echarts

1.安装npminstallecharts-S2.引入全局引入main.js中//引入echartsimportechartsfrom'echarts'Vue.prototype.$echarts=echarts按需引入全局引入会将所有的echarts图表打包,导致体积过大,最好还是按需引入letecharts=require('echarts/lib/echarts 查看详情

vue中如何使用echarts

在vue中使用echarts主要是注意如何与vue生命周期相结合,从而做到数据驱动视图刷新主要是以下几步:echarts的option设置在data(){}中在mounted(){}生命周期去初始化数据,初始化echarts在updated(){}生命周期中去setOption(option)渲染echarts。模... 查看详情

vue使用echarts以及echarts配置分享

一、本篇文章将给大家分享如何在vue中使用echart以及echart各项配置,这些配置都是工作中比较常见以及常用到的,所以给大家分享下,希望对大家有用。二、vue中使用echart。1、首先下载echart依赖,这里采用的npm包管理工具,在... 查看详情

在vue中使用echarts

在vue中使用Echarts一、下载Echarts下载命令:npminstallecharts--save二、配置Echarts将下载好的echarts引入vue项目;然后添加在vue对象的prototype属性中:  三、setOption方法挂载Echarts  完成后就可以在官网copy代码在自己的项目... 查看详情

vue系列——在vue项目中使用echarts

安装echarts依赖npminstallecharts-S创建图表全局引入main.js//引入echartsimportechartsfrom‘echarts‘Vue.prototype.$echarts=echartsHello.vue<divid="myChart":style="{width:‘300px‘,height:‘300px‘}"></div>expor 查看详情

vue+echarts画甘特图(代码片段)

  vue项目中添加echarts,只需要增加echarts依赖,然后在main.js中引入echarts就可以使用了。  1、npminstallecharts--save  2、修改main.jsimport*asechartsfrom'echarts'Vue.prototype.$echarts=echarts  3、具体页面使用ÿ 查看详情

vue+echarts画甘特图(代码片段)

  vue项目中添加echarts,只需要增加echarts依赖,然后在main.js中引入echarts就可以使用了。  1、npminstallecharts--save  2、修改main.jsimport*asechartsfrom'echarts'Vue.prototype.$echarts=echarts  3、具体页面使用ÿ 查看详情

echarts用法

参考文档: https://github.com/xlsdg/vue-echarts-v31、下载echarts插件$npminstall--savevue-echarts-v32、引入echarts  2.1全部引入     importIEchartsfrom‘vue-echarts-v3/src/full.vue‘;  2.2部分引入importVuefrom‘vue‘;impor 查看详情