前端 vue 实现区域地图-并在地图上标注柱状图

news2024/11/15 21:32:15

效果图 西藏的区域规划以及柱状图
在这里插入图片描述

一、下载区域地图的js文件

区域地图可以在中国的区域地图 这里下载

二、实现代码

一个普通的html可以参考
实现广东省的区域地图并标注柱状图

三、vue里具体实现代码
1.做一个有具体宽高的dom

<template>
  <div class="box">
        <div id="centerMap"></div>
  </div>
</template>
    #centerMap{
      width: 100%;
      height: 550px;
    }

2.定义方法

  created() {
        this.centerChart()
  }
     centerChart(){
        var myChart = echarts.init(document.getElementById('centerMap'));
        var option = {}
        var geoCoordMap = {
            阿里地区: [82.564653, 33.063726],
            那曲市: [89.24948, 32.783399],
            拉萨市: [91.091762, 30.037072],
            日喀则市: [86.477854, 29.498529],
            山南市: [92.266609, 28.303935],
            林芝市: [95.239298, 29.198982],
            昌都市: [97.035183, 30.783725],
        }
        var customerBatteryCityData = [{
            name: "阿里地区",
            value: 70
        }, {
            name: "那曲市",
            value: 701
        }, {
            name: "拉萨市",
            value: 702
        }, {
            name: "日喀则市",
            value: 703
        }, {
            name: "山南市",
            value: 704
        }, {
            name: "林芝市",
            value: 705
        }, {
            name: "昌都市",
            value: 706
        }]
        // 获取json格式的数据 地图数据
        $.getJSON('/西藏自治区.json', function(geoJson) {
          echarts.registerMap('xizang', geoJson);
           var option = {
              // backgroundColor: '#131C38',
              tooltip: {
                    trigger: 'item',
                    show: true,
                    enterable: true,
                    textStyle: {
                        fontSize: 20,
                        color: '#fff'
                    },
                    backgroundColor: 'rgba(0,2,89,0.8)',
                    formatter: '{b}<br />{c}'
                },
                geo: [{
                    map: 'xizang',
                    aspectScale: 0.9,
                    roam: false, // 是否允许缩放
                    zoom: 1.2, // 默认显示级别
                    layoutSize: '95%',
                    layoutCenter: ['55%', '50%'],
                    itemStyle: {
                        normal: {
                            areaColor: {
                                type: 'linear-gradient',
                                x: 0,
                                y: 400,
                                x2: 0,
                                y2: 0,
                                colorStops: [{
                                    offset: 0,
                                    color: 'rgba(37,108,190,0.3)' // 0% 处的颜色
                                }, {
                                    offset: 1,
                                    color: 'rgba(15,169,195,0.3)' // 50% 处的颜色
                                }],
                                global: true // 缺省为 false
                            },
                            borderColor: '#4ecee6',
                            borderWidth: 1
                        },
                        emphasis: {
                            areaColor: {
                                type: 'linear-gradient',
                                x: 0,
                                y: 300,
                                x2: 0,
                                y2: 0,
                                colorStops: [{
                                    offset: 0,
                                    color: 'rgba(37,108,190,1)' // 0% 处的颜色
                                }, {
                                    offset: 1,
                                    color: 'rgba(15,169,195,1)' // 50% 处的颜色
                                }],
                                global: true // 缺省为 false
                            }
                        }
                    },
                    emphasis: {
                        itemStyle: {
                            areaColor: '#0160AD'
                        },
                        label: {
                            show: 0,
                            color: '#fff'
                        }
                    },
                    zlevel: 3
                }, {
                    map: 'xizang',
                    aspectScale: 0.9,
                    roam: false, // 是否允许缩放
                    zoom: 1.2, // 默认显示级别
                    layoutSize: '95%',
                    layoutCenter: ['55%', '50%'],
                    itemStyle: {
                        normal: {
                            borderColor: 'rgba(192,245,249,.6)',
                            borderWidth: 2,
                            shadowColor: '#2C99F6',
                            shadowOffsetY: 0,
                            shadowBlur: 120,
                            areaColor: 'rgba(29,85,139,.2)'
                        }
                    },
                    zlevel: 2,
                    silent: true
                }, {
                    map: 'xizang',
                    aspectScale: 0.9,
                    roam: false, // 是否允许缩放
                    zoom: 1.2, // 默认显示级别
                    layoutSize: '95%',
                    layoutCenter: ['55%', '51.5%'],
                    itemStyle: {
                        // areaColor: '#005DDC',
                        areaColor: 'rgba(0,27,95,0.4)',
                        borderColor: '#004db5',
                        borderWidth: 1
                    },
                    zlevel: 1,
                    silent: true
                }],
                series: [
                    // map
                    {
                        geoIndex: 0,
                        // coordinateSystem: 'geo',
                        showLegendSymbol: true,
                        type: 'map',
                        roam: true,
                        label: {
                            normal: {
                                show: false,
                                textStyle: {
                                    color: '#fff'
                                }
                            },
                            emphasis: {
                                show: false,
                                textStyle: {
                                    color: '#fff'
                                }
                            }
                        },
                        itemStyle: {
                            normal: {
                                borderColor: '#2ab8ff',
                                borderWidth: 1.5,
                                areaColor: '#12235c'
                            },
                            emphasis: {
                                areaColor: '#2AB8FF',
                                borderWidth: 0,
                                color: 'red'
                            }
                        },
                        map: 'xizang', // 使用
                        data: customerBatteryCityData
                            // data: this.difficultData //热力图数据   不同区域 不同的底色
                    },
                    // 柱状体的主干
                    {
                        type: 'lines',
                        zlevel: 5,
                        effect: {
                            show: false,
                            // period: 4, //箭头指向速度,值越小速度越快
                            // trailLength: 0.02, //特效尾迹长度[0,1]值越大,尾迹越长重
                            // symbol: 'arrow', //箭头图标
                            // symbol: imgDatUrl,
                            symbolSize: 5 // 图标大小
                        },
                        lineStyle: {
                            width: 20, // 尾迹线条宽度
                            color: 'rgb(22,255,255, .6)',
                            opacity: 1, // 尾迹线条透明度
                            curveness: 0 // 尾迹线条曲直度
                        },
                        label: {
                            show: 0,
                            position: 'end',
                            formatter: '245'
                        },
                        silent: true,
                        data: lineData()
                    },
                    // 柱状体的顶部
                    {
                        type: 'scatter',
                        coordinateSystem: 'geo',
                        geoIndex: 0,
                        zlevel: 5,
                        label: {
                            show: true,
                            formatter: function() {
                                return ``
                            },
                            position: "top"
                        },
                        symbol: 'circle',
                        symbolSize: [20, 10],
                        itemStyle: {
                            color: 'rgb(22,255,255, 1)',
                            opacity: 1
                        },
                        silent: true,
                        data: scatterData()
                    },
                    // 柱状体的底部
                    {
                        type: 'scatter',
                        coordinateSystem: 'geo',
                        geoIndex: 0,
                        zlevel: 4,
                        label: {
                            // 这儿是处理的
                            formatter: '{b}',
                            position: 'bottom',
                            color: '#fff',
                            fontSize: 12,
                            distance: 10,
                            show: true
                        },
                        symbol: 'circle',
                        symbolSize: [20, 10],
                        itemStyle: {
                            // color: '#F7AF21',
                            color: 'rgb(22,255,255, 1)',
                            opacity: 1
                        },
                        silent: true,
                        data: scatterData2()
                    },
                    // 底部外框
                    {
                        type: 'scatter',
                        coordinateSystem: 'geo',
                        geoIndex: 0,
                        zlevel: 4,
                        label: {
                            show: false
                        },
                        symbol: 'circle',
                        symbolSize: [40, 20],
                        itemStyle: {
                            color: {
                                type: 'radial',
                                x: 0.5,
                                y: 0.5,
                                r: 0.5,
                                colorStops: [{
                                    offset: 0,
                                    color: 'rgb(22,255,255, 0)' // 0% 处的颜色
                                }, {
                                    offset: 0.75,
                                    color: 'rgb(22,255,255, 0)' // 100% 处的颜色
                                }, {
                                    offset: 0.751,
                                    color: 'rgb(22,255,255, 1)' // 100% 处的颜色
                                }, {
                                    offset: 1,
                                    color: 'rgb(22,255,255, 1)' // 100% 处的颜色
                                }],
                                global: false // 缺省为 false
                            },

                            opacity: 1
                        },
                        silent: true,
                        data: scatterData2()
                    }
                ]
            }
            myChart.setOption(option);
        })
        // 动态计算柱形图的高度(定一个max)
        function lineMaxHeight() {
            const maxValue = Math.max(...customerBatteryCityData.map(item => item.value))
            return 0.9 / maxValue
        }
        // 柱状体的主干
        function lineData() {
            return customerBatteryCityData.map((item) => {
                return {
                    coords: [geoCoordMap[item.name],
                        [geoCoordMap[item.name][0], geoCoordMap[item.name][1] + item.value * lineMaxHeight()]
                    ]
                }
            })
        }
        // 柱状体的顶部
        function scatterData() {
            return customerBatteryCityData.map((item) => {
                return [geoCoordMap[item.name][0], geoCoordMap[item.name][1] + item.value * lineMaxHeight()]
            })
        }
        // 柱状体的底部
        function scatterData2() {
            return customerBatteryCityData.map((item) => {
                return {
                    name: item.name,
                    value: geoCoordMap[item.name]
                }
            })
        }
        if (option) {
            myChart.setOption(option);
        }
    }
``

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1110894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序之自定义组件 结合案例(会议OA的会议/投票管理及个人中心的搭建)详解 (4)

⭐⭐ 小程序专栏&#xff1a;小程序开发专栏 ⭐⭐ 个人主页&#xff1a;个人主页 目录 一.前言 二.小程序自定义组件及其使用 2.1 自定义组件的使用 三.使用自定义组件完成会议功能界面的实现 3.1 导航栏的实现 3.2 会议界面内容的实现 四.投票管理界面 五.个人中心 今天…

SystemVerilog Assertions应用指南 Chapter1.30 使用“ intersect”控制序列的长度

在123节讨论的“ intersec”运算符可以有效地控制序列的长度,尤其是在时序窗口未定义上界的情况。每当使用可能性( eventuality)运算符时,检验器成功所需的时钟周期数没有限制。运算符 intersect提供了一个定义可能性运算符可以使用的最小和最大时钟周期数的机制。 属性…

计算机丢失MSVCP140.dll的解决方法分享

MSVCP140.dll是一个动态链接库文件&#xff0c;它是Microsoft Visual C 2015 Redistributable的一部分。这个文件包含了许多用于运行C程序的函数和类库。当计算机丢失这个文件时&#xff0c;可能会导致某些软件或游戏无法正常运行。 那么&#xff0c;为什么计算机会丢失MSVCP14…

Flex and Bison 阅读与学习笔记

本文的内容来源于本人阅读 flex & bison的笔记和项目工程学习中遇到的问题。如果你能从中获得一丝丝帮助&#xff0c;本人将不胜荣幸。 文章目录 Ⅰ、目录与批注前四章 引言和使用介绍flex 规范参考bison 参考规范其余内容 Ⅱ、相关练习代码学习历程代码实例 参考文献 Ⅰ、…

【文章摘要-20231019】Any-to-Any Generation via Composable Diffusion

论文链接 代码链接 作者提出了一个可组合的扩散模型&#xff0c;该模型体现为能够处理任何输入模态的组合&#xff0c;进而输出任何模态组合的新型生成模型&#xff0c;如语言、图像、视频或音频。不同于已经存在的生成式人工智能系统&#xff0c;该算法能够并行生成多个模态并…

Java基础 :内部类、枚举、泛型

内部类 概念 是类中的五大成分之一&#xff08;成员变量、方法、构造器、内部类、代码块&#xff09;&#xff0c;如果一个类定义在另一个类的内部&#xff0c;这个类就是内部类。 场景 当一个类的内部&#xff0c;包含了一个完整的事物&#xff0c;且这个事物没有必要单独…

工作之余Happy一下(实现时钟特效)

样式 测试代码&#xff1a; <!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title>时钟特效</title><style> body{background: #000;}.content{width: 400px;margin: auto;color: #fff;}#title…

openGauss学习笔记-104 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书替换

文章目录 openGauss学习笔记-104 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书替换104.1 操作场景104.2 前提条件104.3 注意事项104.4 操作步骤 openGauss学习笔记-104 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书替换 openGaus…

工业企业网络推广解决方案 | 网络营销专家分享 | 上海添力

在国内&#xff0c;工业企业如果想在线上做推广&#xff0c;其主要途径就是做搜索引擎推广&#xff0c;在几个常用的搜索引擎&#xff08;百度、360、搜狗、必应&#xff09;中&#xff0c;一般都是从百度开始做起。但不少工厂做百度广告&#xff0c;钱花了不少&#xff0c;就是…

做PPT或制作表情包时,不会把视频转成gif动图?5分钟学会

一、背景 当我们在做PPT时&#xff0c;不可避免的需要放一些视频&#xff0c;但视频占用空间太大&#xff0c;而且比较烦的是需要点一下才能播放。因此需要将视频转成gif动态&#xff0c;以自动播放。 GIF的全称是Graphics Interchange Format&#xff0c;可译为图形交换格式…

SQL题目记录

1.商品推荐题目 1.思路&#xff1a; 通过取差集 得出要推荐的商品差集的选取&#xff1a;except直接取差集 或者a left join b on where b null 2.知识点 1.except selectfriendship_info.user1_id as user_id,sku_id fromfriendship_infojoin favor_info on friendship_in…

ATE测试工程师的前景待遇如何?薪资天花板有多高?

在芯片行业&#xff0c;ATE测试工程师扮演着至关重要的角色。 他们不仅需要理解电路和芯片内部的工作原理&#xff0c;还需要利用各种测试工具和方法对芯片进行精确的测试和分析。那么ATE测试工程师前景如何&#xff1f;需要具备哪些技能要求呢&#xff1f; 首先来了解什么是…

【数据库范式】实际案例分析

前言 在日常业务研发过程中&#xff0c;我们常常需要与数据库表打交道。设计范式是数据表设计的基本原则&#xff0c;对于数据表的设计范式&#xff0c;我们特别容易忽略它的存在。很多时候&#xff0c;当数据库运行了一段时间之后&#xff0c;我们才发现数据表设计上有问题。然…

2023年中国润滑油分散剂市场需求量及行业竞争现状分析[图]

润滑油分散剂是一种两亲性化学品&#xff0c;可以增加油性部分以及水性部分在同一体系中的相容性&#xff0c;能降低分散体系中固体或液体粒子聚集的物质。换油时&#xff0c;可将有害的悬浮物从油中清除。 国内从60年代末开始试制丁二酰亚胺型分散剂&#xff0c;并于80年代初在…

93. 递归实现组合型枚举

题目&#xff1a; 93. 递归实现组合型枚举 - AcWing题库 思路&#xff1a; 1.从n个数中选择m个数&#xff0c;问有多少种选法。---->抽象为有m个坑位&#xff08;设置kenway[N]表示&#xff09;&#xff0c;其中填入编号为1~n的萝卜&#xff0c;问有几种填法。这里我们可…

二叉树题目:从中序与后序遍历序列构造二叉树

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;从中序与后序遍历序列构造二叉树 出处&#xff1a;106. 从中序与后序遍历序列构造二叉树 难度 5 级 题目描述 要…

互联网行业汇总

互联网行业汇总&#xff0c;全网最全&#xff01;选行业不愁 从事互联网选什么行业&#xff1f;这似乎是很多朋友的困惑。 所以这里给大家把互联网行业做个细致的汇总&#xff0c;每个行业列举几个典型的APP&#xff0c;简单拆解下各自的盈利模式&#xff0c;希望能给大家提供参…

了解Netty,从IO开始

java程序员要想升级高级工程师或者成为架构师&#xff0c;绕不开Netty的学习&#xff0c;就算你不做IM即时通信&#xff0c;也不是网络编程的工作岗位&#xff0c;仅仅只是CRUD程序员&#xff0c;当你想要了解一下Dubbo、Redis、kafka、rabbitMQ、ES、zookeeper、nginx等等的底…

群硕与Microsoft Dynamics全球团队密切协作,加速ERP产品迭代

群硕具备强大的软件研发能力&#xff0c;搭建自动化测试平台&#xff0c;保证高质量交付。 ERP系统的引入被视为企业走向数字化转型的关键一步。 此系统有助于实现企业内部资源与外部资源的整合&#xff0c;通过软件把人、财、物、产、供、销及相应的物流、信息流、资金流、管…

大数据之LibrA数据库系统部署方案

组网方案 基本概念 FusionInsight LibrA集群的组网方案中包含如下节点&#xff0c;如表1所示。 网络平面类型 FusionInsight LibrA整个系统网络划分为2个平面&#xff0c;即业务平面和管理平面&#xff0c;两个平面之间采用物理隔离的方式进行部署&#xff0c;保证业务、管理…