echarts百度地图2021最新实现方式(点,线结合)

2023-11-11

  1. 先在html文件中准备一个定义了高宽的 DOM 容器

    <div id="map" style="width: 100%;height:900px;"></div>
    
  2. 引入js

    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/extension/bmap.min.js"></script>
    <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=百度的API Key"></script>
    
  3. 开始写js代码

    // 1.初始化
    var dom = document.getElementById("map");
    var myChart = echarts.init(dom);
    
    // 2.数据准备
    // 国家的坐标
    var geoCoordMap = {
    "中国":[104.195397,35.86166],
    "日本":[138.252924,36.204824],
    "韩国":[127.766922,35.907757],
    };
    // 需要标注的国家数据
    var data =[ {name: '中国', value: 300},
        {name: '日本', value: 150},
        {name: '韩国', value: 200},];
    // 将点的中文位置转为经纬度坐标
    var convertData = function (data) {
           var res = [];
           for (var i = 0; i < data.length; i++) {
               var geoCoord = geoCoordMap[data[i].name];
               if (geoCoord) {
                   res.push({
                       name: data[i].name,
                       value: geoCoord.concat(data[i].value)
                   });
               }
           }
           //console.log(res);
           return res;
       };
       
    // 对于线的数据处理
    var data2 = [
        [{name:'日本'},{name:'中国'}],
        [{name:'韩国'},{name:'日本'}]
    ];
    var convertData2 = function (data) {
        var res = [];
        for (var i = 0; i < data.length; i++) {
            var dataItem = data[i];
            var fromCoord = geoCoordMap[dataItem[0].name];
            var toCoord = geoCoordMap[dataItem[1].name];
            if (fromCoord && toCoord) {
                res.push([
                    {
                        coord: fromCoord,
                    },
                    {
                        coord: toCoord,
                    },
                ]);
            }
        }
        return res;
    };
    
       
    // 3.配置项设置
    //飞线图标
    var planePath = 'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z';
    
    var  option = {
    title: {
        text: '企业贸易区域分布',
        left: 'center'
    },
    tooltip : {
        formatter: function(params) {
          return (
            "贸易金额"+'<br/> '+
            params.name +' '+ ' : ' +params.value[2]
          );
        }
    },
    bmap: {
        center:[104.195397,35.86166],
        zoom: 5,
        roam: true,//是否可拖拽
        mapStyle: {
            styleJson: [{
                'featureType': 'water',
                'elementType': 'all',
                'stylers': {
                    'color': '#75cff0'
                }
            }, {
                'featureType': 'land',
                'elementType': 'all',
                'stylers': {
                    'color': '#e4ecc2'
                }
            }, {
                'featureType': 'railway',
                'elementType': 'all',
                'stylers': {
                    //'visibility': 'off'
                    'color': '#cccccc'
                }
            }, {
                'featureType': 'highway',
                'elementType': 'all',
                'stylers': {
                    'color': '#fdfdfd'
                }
            }, {
                'featureType': 'highway',
                'elementType': 'labels',
                'stylers': {
                    'visibility': 'off'
                }
            }, {
                'featureType': 'arterial',
                'elementType': 'geometry',
                'stylers': {
                    'color': '#fef6c0'
                }
            }, {
                'featureType': 'arterial',
                'elementType': 'geometry.fill',
                'stylers': {
                    'color': '#c0b950'
                }
            }, {
                'featureType': 'poi',
                'elementType': 'all',
                'stylers': {
                    //'visibility': 'off'
                    'color': '#c08673'
                }
            }, {
                'featureType': 'green',
                'elementType': 'all',
                'stylers': {
                    'visibility': 'off'
                }
            }, {
                'featureType': 'subway',
                'elementType': 'all',
                'stylers': {
                    'visibility': 'off'
                }
            }, {
                'featureType': 'manmade',
                'elementType': 'all',
                'stylers': {
                    'color': '#d1d1d1'
                }
            }, {
                'featureType': 'local',
                'elementType': 'all',
                'stylers': {
                    'color': '#d1d1d1'
                }
            }, {
                'featureType': 'arterial',
                'elementType': 'labels',
                'stylers': {
                    'visibility': 'off'
                }
            }, {
                'featureType': 'boundary',
                'elementType': 'all',
                'stylers': {
                    'color': '#fefefe'
                }
            }, {
                'featureType': 'building',
                'elementType': 'all',
                'stylers': {
                    'color': '#d1d1d1'
                }
            }, {
                'featureType': 'label',
                'elementType': 'labels.text.fill',
                'stylers': {
                    'color': '#999999'
                }
            }]
        }
    },
    series : [
        {
            name: 'pm2.5',
            type: 'scatter',
            coordinateSystem: 'bmap',
            //symbol:'pin',
            //symbol:'image:///static/img/坐标.png',
            symbol:'path://M0,-28 C4.97056275,-28 9,-24.00634644 9,-19.07992512 C9,-17.8616986 8.75360187,-16.7005104 8.30750495,-15.642645 C7.4180692,-13.7976331 6.60280551,-12.1374788 5.86171387,-10.6522416 L5.49734905,-9.9241533 C2.09460285,-3.1449169 0.365363613,-0.2748662 0.309631348,-0.2486559 C0.152069092,0.0828853 -0.279388428,0.0828853 -0.451770485,-0.2486559 L-8.30750495,-15.642645 C-8.75360187,-16.7005104 -9,-17.8616986 -9,-19.07992512 C-9,-24.00634644 -4.97056275,-28 0,-28 Z M0,-22 C-1.65685425,-22 -3,-20.65685425 -3,-19 C-3,-17.3431458 -1.65685425,-16 0,-16 C1.65685425,-16 3,-17.3431458 3,-19 C3,-20.65685425 1.65685425,-22 0,-22 Z',
            color:'#d10007',
            data: convertData(data),
            symbolSize: function (val) {
                return val[2] / 10;
            },
            encode: {
                value: 2
            },
            label: {
                formatter: '{b}',
                position: 'right',
                show: false
            },
            emphasis: {
                label: {
                    show: true
                }
            }
        },
        {
            type: 'lines',
            coordinateSystem: 'bmap',
            zlevel: 10,
            effect: {
                show: true,
                period: 6,
                trailLength: 0.7,
                color: 'red',
                symbol: planePath,
                symbolSize: 3
            },
            lineStyle: {
                normal: {
                    color: '#a6c84c',
                    width:1,
                    opacity: 0.4,
                    curveness: 0.2
                }
            },
            data: convertData2(data2)
    
            }
        ]
    };
    
     
     4.最后渲染生成地图
    myChart.setOption(option);
    

    4.其它拓展
    1)如果想把地图上的地名,省份等文字标签都隐藏,可在mapStyle属性中设置

    {
       "featureType": "all",
       "elementType": "labels.text.fill",
       "stylers": {
           //"color": "#ff452c",
           "visibility": "off"
       }
    },
    

    还有一些其他的拓展功能没有写出来,后面再更新吧。

    注:以上只有一步是需要申请自己的百度地图的api key调用,其他的都可以直接用,大家也可以在我的基础上进行扩展。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

echarts百度地图2021最新实现方式(点,线结合) 的相关文章

  • 传统后端程序不使用Node.JS依然要搞Element UI

    概述 作为一个Java重度使用患者 后端程序员掌握一些前端知识是必备技能 Html CSS JS三大语言后端玩起来也得是溜得很 不过现在前端技术发展的速度简直做上了飞机 后端程序员自己首先要保障后端技术不被拉下 再想回头学学前端技术 没想到

随机推荐

  • Docker学习笔记 — 配置国内免费registry mirror

    由于国内特殊的网络环境 往往我们从Docker Hub中拉取镜像并不能成功 而且速度特别慢 那么我们可以给Docker配置一个国内的registry mirror 当我们需要的镜像在mirror中则直接返回 如果没有则从Docker Hub
  • Qt 菜单按钮移除小箭头

    mybtn gt setStyleSheet QPushButton menu indicator image none
  • 协程完成Unity的一些UI动画效果

    用协程进行实现UI的缩放 平移 淡入淡出 using System Collections using System Collections Generic using System using UnityEngine using Unit
  • DirectX教程(1):基本Windows入门

    Win32控制台程序 vs Windows程序 下面是一个简单的Win32程序 main函数是程序的起点 Windows能够向程序输入任何你认为必要的参数 include
  • windows的磁盘操作之六——获取系统所在物理磁盘号

    转载自 windows的磁盘操作之六 获取系统所在物理磁盘号 bunny技术坊的技术博客 51CTO博客 原文如下 很多情况下 我们在程序中需要获知操作系统安装在哪个分区上或者哪个物理磁盘上 进而对其进行一些操作或避免一些操作 例如要避免对
  • 客户关系管理系统PRD编写

    前言 本项目以温泉度假村项目为分析背景 是一个基于B S架构的中型客户关系管理服务商品 虽使用了实地用户调研 需求抽取等一般方法 但区别于一般互联网产品的PRD书写模式 将业务分析更加具体化 落地化 细节化 从而更加方便的与客户 用户等进行
  • 【模板】ST表

    文章目录 1 一维ST表 1 1 预处理 1 2 查询 2 二维ST表 2 1 初始化 2 2 查询 1 一维ST表 RMQ Range Maximum Minimum Query 问题 即区间最值查询问题 是指对于长度为 n n n 的数
  • iOS图标(AppIcon)与启动图(LaunchImage)

    图标 AppIcon 与启动图 LaunchImage 是开发iOS应用程序必不可少的内容 但是在网络上对于这部分的内容讲解的并不详细 所以花些时间写了这篇文章 希望有需要的朋友可以随时查看 想知道AppIcon与LaunchImage的原
  • Java实现数据共享的三种方式

    1 类的静态变量 类初始化的时候率先加载好 且不会被改变 2 类内声明共享数据类型的引用 3 内部类 参考链接
  • 求助!出现错误Error in if (class(thisdata$date) != “Date“) { : the condition has length > 1

    本人纯小白 运行下述代码时出现标题中错误 想知道原因和如何解决 gt model1 casecross numcases ozone temp rh matchdow TRUE stratamonth TRUE data data1
  • IIS部署上去之后点击页面报错

    iis无法提示详细错误信息 先改config里面 1
  • Java 最完整的购物车实现!

    点击上方 成猿之路 选择 置顶公众号 关键时刻 第一时间送达 阅读本文需要5分钟 链接 http www cnblogs com wang meng 作者 一枝花算不算浪漫 关于购物车的东西 这里首先抛出四个问题 1 用户没登陆用户名和密码
  • Windows中Git bash安装后的配置及SSH方式clone配置方法记录

    1 配置用户名和邮箱 打开git bash 执行以下命令 git config global user name your username git config global user email youremail 163 com 2
  • FFmpeg(Windows)

    环境 window10 FFmpeg下载路径 https ffmpeg zeranoe com builds FFmpeg是一套可以用来记录 转换数字音频 视频 并能将其转化为流的开源计算机程序 采用LGPL或GPL许可证 它提供了录制 转
  • 电气设计常用提示图标(自己画的)含高清原图下载地址

    1 1 不可循环利用 不可回收 1 2 可循环利用 可回收 1 3 静电敏感 ESD 1 4 注意高温 注意烫伤 1 5 有电危险 注意危险 1 6 高压危险 链接 https pan baidu com s 1xBJa53wAUheEKi
  • 闲来无事,做个风扇玩玩

    大家好 我是良许 现在全国各地都差不多入冬了吧 冬天的寒风凛冽不 不够凛冽 那良许就带大家做个风扇 把寒气传递给每一个人 我们也把视频录制好了 并且把代码开源出来了 大家可以文末免费领取 话不多说 直入主题 项目成果 视频 看到效果了没 你
  • JWT技术快速入门

    背景介绍 JSON Web Token JWT 是一个开放标准 RFC 7519 它定义了一种紧凑且自包含的方式 用于在各方之间安全地传输信息作为 JSON 对象 此信息可以验证和信任 因为它是数字签名的 JWT 可以使用密钥 使用HMAC
  • 刷脸支付30亿支持商家实现数字化转型

    刷脸支付设备无需任何外接设备 且消费者支付的时候不再需要输入手机号 除了外形变化之外 二代刷脸支付机具强调 刷脸即会员 即刷脸注册会员卡 支付宝方面称 前期刷脸注册会员转化率比传统模式提升6倍以上 支付宝行业支付事业部总经理钟繇表示 刷脸支
  • 阿里云OSS对象存储使用临时URL访问,并对下载文件重命名

    目录 解读 使用sdk版本 1 使用临时URL访问OSS 并获取临时URL 官方文档 举例 2 使用临时URL访问OSS 并对临时URL下载的文件重命名 分析 举例 解读 如何使用临时授权的url访问云对象地址 又如何通过该URL下载自定义
  • echarts百度地图2021最新实现方式(点,线结合)

    先在html文件中准备一个定义了高宽的 DOM 容器 div style width 100 height 900px div 引入js