echarts+百度地图+关系图,使用介绍

可视化篇:Echarts2.0引入百度地图 写在最前 Echarts作为百度团队下一个可视化的js库,自2.0更新至3.0以来,其带来的视觉冲击更加强悍,数据可视更加精美,图形交互更加贴合用户。 由于echarts2在百度地图的实例上没有作过多的说明,echarts3更是删除了该实例,另外由于工作需要,捣鼓一番,作个笔记。 阅读详情

echarts+百度地图+关系图,使用介绍

前言

  • 最近有一个需求:做一个关于全世界专家信息的展示,需要在地图上显示其位置以及互相之间的关系,于是想到了使用echarts来实现这个功能。

一、echarts

1.1 介绍
  • ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。
1.2 使用简介
  1. 地址:echarts地址
  2. 文档:进入网址之后按照下图即可看到官方教程,此处不再做赘述在这里插入图片描述
  3. 示例:点击示例即可看到各种各样的表格(反正就是花里胡哨的)在这里插入图片描述
  4. 引用:那么接下来我们应该怎么引用这些花里胡哨的图标呢?请看如下操作
    在这里插入图片描述在这里插入图片描述
    这样我们就可以看到这个代码是如何编写的了。(刚也说了这个option是灵魂人物,所以我们大多数操作对其修改即可)
  5. 本地使用:有时候我们本地开发想要对其js进行修改达到我们预期的结果时这时候我们可以下载他的js文件,然后直接引用即可(如下图)
    在这里插入图片描述

二、百度地图

  1. 百度地图提供了可以使用的API,以供开发人员调用:地址
  2. 注册:点击控制台,没有注册的注册一下在这里插入图片描述
  3. 创建一个应用在这里插入图片描述在这里插入图片描述
  4. 创建完成之后能看到一个东西(访问应用(AK))这个后面要用到哦。在这里插入图片描述
  5. 百度地图操作到此完毕(记得上面的AK哦)

三、Echarts+baiduMap

  1. 上面的东西都准备好之后我们就可以使用百度地图了
  2. 需要引用三个东西(echarts.min.js、bmap.min.js、ak的引用)话不多说直接上代码。在这里插入图片描述
  3. 完整代码(除了上面的js引用:自己加上就行了)
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="container" style="width: 100%; height: 100%"></div></script>
    <script>
        var dom = document.getElementById("container");
        var myChart = echarts.init(dom);
        option = {
            bmap: {
                center: [104.114129, 37.550339],
                zoom: 5,
                roam: true,
                mapStyle: {
                    styleJson: [{
                        'featureType': 'water',
                        'elementType': 'all',
                        'stylers': {
                            'color': '#d1d1d1'
                        }
                    }, {
                        'featureType': 'land',
                        'elementType': 'all',
                        'stylers': {
                            'color': '#f3f3f3'
                        }
                    }, {
                        'featureType': 'railway',
                        'elementType': 'all',
                        'stylers': {
                            'visibility': 'off'
                        }
                    }, {
                        'featureType': 'highway',
                        'elementType': 'all',
                        'stylers': {
                            'color': '#fdfdfd'
                        }
                    }, {
                        'featureType': 'highway',
                        'elementType': 'labels',
                        'stylers': {
                            'visibility': 'off'
                        }
                    }, {
                        'featureType': 'arterial',
                        'elementType': 'geometry',
                        'stylers': {
                            'color': '#fefefe'
                        }
                    }, {
                        'featureType': 'arterial',
                        'elementType': 'geometry.fill',
                        'stylers': {
                            'color': '#fefefe'
                        }
                    }, {
                        'featureType': 'poi',
                        'elementType': 'all',
                        'stylers': {
                            'visibility': 'off'
                        }
                    }, {
                        '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'
                        }
                    }]
                }
            },
        };
        myChart.setOption(option);
    </script>
</body>
</html>

四、Echarts+baiduMap+Graph

4.1 心路历程
  1. 上面操作已经完美的实现了Echarts与百度地图的结合,下面就是与关系图结合了。
  2. 首先看了一下Echarts中的示例,并没有百度地图与关系图的示例(感觉很失落),于是只能将就的看一下散点图了在这里插入图片描述
  3. 按照上面的图下载对应的HTML之后开始分析(注:上面说了echarts的灵魂就是option)
    1. 可以看出图表中的数据都是从option中的series传入(内部具体的参数代表的意义请自行百度)。
    2. 该散点图代码显示如下(三个地方需要关注,如下)在这里插入图片描述
    3. 由此可知地图需要传输的value中需要为一个列表(其中有三个元素),前两个值为坐标,后面一个值为改点对应的值
    4. 由以上的分析可以得出大概应该怎么处理不同的点如何在地图上显示了,下面就开始着手百度地图跟关系图的结合。
  4. 选取一个合适的散点图(我这边选取的是悲惨世界人物关系图如下图)在这里插入图片描述
  5. 分析该图的数据构成
    1. 点击进去之后查看完整代码,可以发现数据来自于一个网站(如下图)在这里插入图片描述

    2. 查看该网站的数据(地址:https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/data/asset/data/les-miserables.json)在这里插入图片描述

    3. 我这边是直接把这个数据复制到本地了,方便进行数值修改调整,最终的数据如下(这个是经过简化保存到本地的json数据)

{
    "nodes": [
      {
        "id": "0",
        "name": "Myriel",
        "symbolSize": 19.12381,
        "value": [121.15, 31.89, 9],
        "category": 0
      },
      {
        "id": "1",
        "name": "Napoleon",
        "symbolSize": 20,
        "value": [118.87, 42.28, 16],
        "category": 0
      }
    ],
    
    "categories": [
      {
        "name": "类目0"
      },
      {
        "name": "类目1"
      },
      {
        "name": "类目2"
      },
      {
        "name": "类目3"
      },
      {
        "name": "类目4"
      },
      {
        "name": "类目5"
      },
      {
        "name": "类目6"
      },
      {
        "name": "类目7"
      },
      {
        "name": "类目8"
      }
    ]
  }
4.2 最终代码(这里仅展示前端代码)
<!DOCTYPE html>
<html style="height: 100%">

<head>
    <meta charset="utf-8">
</head>

<body style="height: 100%; margin: 0">
    <div id="container" style="width: 100%; height: 100%"></div>

    <script type="text/javascript" src="/layui/echarts/echarts.min.js"></script>
    <script type="text/javascript" src="/layui/jquery.js"></script>
    <script type="text/javascript" src="/layui/echarts/extension/bmap.min.js"></script>
    <script src="http://api.map.baidu.com/api?v=2.0&ak=这里是ak值"></script>
    
    <script type="text/javascript">
        var dom = document.getElementById("container");
        var myChart = echarts.init(dom);
        var app = {};
        var graph;

        var option;
        var option_1;
        $.ajax({
            type: 'get',
            url: '/get_relation_data',	//这里是向后端请求数据,获取的上面的json数据
            success: function (data) {
                graph = data['relation_data']
                start();
            }
        })
        function start() {
            graph.nodes.forEach(function (node) {
                node.label = {
                    show: node.symbolSize > 30
                };
            });
            option = {
                title: {
                    text: '全国主要城市空气质量 - 百度地图',
                    subtext: 'data from PM25.in',
                    sublink: 'http://www.pm25.in',
                    left: 'center'
                },
                tooltip: {
                    trigger: 'item'
                },
                bmap: {
                    center: [104.114129, 37.550339],
                    zoom: 5,
                    roam: true,
                    mapStyle: {
                        styleJson: [{
                            'featureType': 'water',
                            'elementType': 'all',
                            'stylers': {
                                'color': '#d1d1d1'
                            }
                        }, {
                            'featureType': 'land',
                            'elementType': 'all',
                            'stylers': {
                                'color': '#f3f3f3'
                            }
                        }, {
                            'featureType': 'railway',
                            'elementType': 'all',
                            'stylers': {
                                'visibility': 'off'
                            }
                        }, {
                            'featureType': 'highway',
                            'elementType': 'all',
                            'stylers': {
                                'color': '#fdfdfd'
                            }
                        }, {
                            'featureType': 'highway',
                            'elementType': 'labels',
                            'stylers': {
                                'visibility': 'off'
                            }
                        }, {
                            'featureType': 'arterial',
                            'elementType': 'geometry',
                            'stylers': {
                                'color': '#fefefe'
                            }
                        }, {
                            'featureType': 'arterial',
                            'elementType': 'geometry.fill',
                            'stylers': {
                                'color': '#fefefe'
                            }
                        }, {
                            'featureType': 'poi',
                            'elementType': 'all',
                            'stylers': {
                                'visibility': 'off'
                            }
                        }, {
                            '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: 'Les Miserables',
                        type: 'graph',
                        layout: 'none',
                        data: graph.nodes,
                        coordinateSystem: 'bmap',
                        // links: graph.links,
                        categories: graph.categories,
                        roam: true,
                        label: {
                            position: 'right',
                            formatter: '{b}'
                        },
                        lineStyle: {
                            color: 'source',
                            curveness: 0.3
                        },
                        emphasis: {
                            focus: 'adjacency',
                            lineStyle: {
                                width: 10
                            }
                        }
                    }
                ]
            }

            myChart.setOption(option);
        }

        myChart.on('click', function (para) {
            console.log(para);
        })

        if (option && typeof option === 'object') {
            myChart.setOption(option);
        }

    </script>
</body>
</html>
  • 效果图如下(看着跟那个散点图差不多,因为我这把关系的链接给删除了,需要的可以自行添加,比较简单这里不做赘述)在这里插入图片描述
  • 如果需要对节点进行点击事件的话可以参考如下代码
		myChart.on('click', function (para) {
            console.log(para); //这里面的para是对应节点所对应的数据
        })

五、结局

  • 上面就是我制作这个图的前期准备的准备工作,目前基本的功能已经实现,后续的任务关系图的扩展将不在此赘述(信息安全嘛),希望这些能够给广大热爱优快云的人员带来帮助,也希望小小程序员的我能写出越来越好的文章。
在echarts中使用百度地图,卫星地图 在echarts中始用百度地图,卫星地图 <!-- 首先引入百度地图 --> <script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.2.1/echarts.min.js"></script> <script src="https://api.map.baidu.com/api?v=2.... 阅读详情

相关推荐

Echarts结合百度地图API绘制热力图

最近项目中需要使用echarts与百度地图API结合来绘制事故发生热力图,在将其与百度地图结合的过程中遇到了一些问题,现将其过程与解决方案记录下,以供日后参考。echarts中结合百度地图API的热力图demo:http://gallery.echartsjs.com/editor.html?c=xSJNKs7EX 使用步骤 1.引用echarts与百度地图扩展js文件 &amp;lt;!--引入百度地...

litexy 1万+

教你从零开始画echarts地图

离线地图下载地址echarts文档地址。

m0_67401660的博客 6815

echarts 中使用百度地图 bmap (基础使用:仅显示、定义样式)

1. 实现功能 实现简单的自定义样式百度地图,仅显示(基础,可自己研究扩展) 效果: 2. 代码步骤 第一步:创建基础结构,id=“map” 的 div做 echarts 容器 <!DOCTYPE html> <html> <head> <title>Echarts - 百度地图</title> <meta charset="utf-8"> <style type="text/css"> ...

qq_34695703的博客 1万+

ECharts--中国地图(无敌详细)

使用Echarts绘制中国地图,其中地图点信息由JSON文件编写,前端html直接从JSON文件中读取地区数据,渲染到前端即可。详细介绍用到的各个功能!代码直接复制运行即可!

qq_45066453的博客 8万+

Vue+Echarts+百度地图 小例子

刚学完Echarts后,看到一些官方例子,粘贴代码下来却实现不了相应的效果,经过一番了解,发现还要引入百度地图,记录详细过程如下。 1、安装echarts(使用3.x,4.x) npm install echarts --save 通过 npm 上安装的 ECharts 和 zrender 会放在node_modules目录下。可以直接在项目代码中 require(‘echarts’) 得到 ECharts。 ECharts 目前暂停地图下载,所以使用百度地图作为底图,需要安装百度地图扩展 2、安装.

Superman_peng的博客 2393

使用Echarts的散点图与百度地图结合显示

        最近做的东西需要将数据进行可视化的展示,选用的是Echarts的散点图和百度地图结合起来,将平台上的设备用散点图的形式呈现在百度地图上,因为第一次搞,结合看了下Echarts的官网的案例,成功显示了。    这里查了下官网的要求,需要引入echarts.min.js、bmap.min.js和百度地图的api(这个需要自己去申请开发者账号,具体操作可以百度),具体引入如下所示:&lt...

James23vs24的博客 6413

【vue】echarts+百度地图api画网管图

因项目需要在echarts+百度地图在背景图上画水管图,根据一个接水点和它的东南西北四个接水点点实时的连接情况连接成网管图。刚开始想的比较复杂,找的是关系图,后来参考了大神的代码选择了比较简单的线图。 获取所有管道点的代码: var geoCoordMap = new Map();//点数据集合for(var i in pointData ) { geoCoordMa...

小花生编程 2417

Echarts和百度地图api的简单使用

记一下 一直都是干后端,突然叫我做个这个也是脑壳疼,好歹还是出来了,顺便记一下 百度地图API:要先去百度地图官网申请,完了要新建应用,应用和你做的项目要匹配,用的ak也要匹配 百度地图API官网:http://lbsyun.baidu.com/apiconsole/key Echarts:要首先熟悉一下,下载需要的js文件。 引入echarts文件,<script src="echart...

weixin_43697765的博客 1864

J003 vue+springboot 求职招聘推荐算法情感分析|spark+bilstm情感分析+协同过滤推荐+关系图+百度地图Echarts可视化分析|管理端增删改查|数据大屏

Vue+SpringBoot求职招聘系统采用前后端分离架构,整合协同过滤推荐算法(UserCF/ItemCF)和BiLSTM情感分析技术,实现个性化岗位推荐与评论情感分析。系统包含可视化数据大屏、百度地图标注、词云分析等功能模块,通过ECharts展示薪酬趋势、职位分布等多维度数据。后台管理系统支持用户权限、职位信息、评论等内容管理。项目配套完整文档和技术支持,为求职者和HR提供数据驱动的决策支持。

麦麦大数据 1063

利用ECharts3来实现ECharts2实例中的模拟迁徙效果,即背景地图为百度地图。

最新更新:发现echarts最新版的有百度地图作为底图的demo了,地址:http://echarts.baidu.com/examples/editor.html?c=map-polygon,可以参考这个官方的来实现最佳实践_______________________________________________________________________________________...

GiScript的博客 2万+

echarts如何画地图

用echarts画地图的方式有两种 1. 通过真实的地图来画(百度地图、google地图、或者其它某种地图软件) 2. 去拿到某块区域的json文件来画

秋来九月八 6479

数据大屏web开发讲解

关于echarts , 基于canvas绘制。所以,你要对canvas有个基础的认知和了解。词云是基于echarts的扩展,需要另外引入扩展插件 echarts-wordcloud。前端大屏开发在项目中也比较常用,这里就有针对性的讲解一下。前端框架用的是vue。1.可视化图表库echarts。解决90%的大屏效果。6.chatGPT,提供很好的解决方案和解题思路。基本是1920 x 1080。这里说下,散点图、词云图、关系图谱、地图。2.SVG,大屏不失真。常用的图表,直接看官网的示例即可。

XMYBOBO的博客 440

echarts使用百度地图

echarts使用百度地图的教程,相当好用

秋来九月八 4502

百度地图上叠加echarts图表

项目需要在百度地图上实现类似饼状图的标注,看了一下目前百度地图结合好像只支持点、线以及热力图 这是要实现的效果 //为每个echarts设置不同的ID var divId = 1; // 自定义覆盖物,point为添加覆盖物的点位置 function ComplexCustomOverlay(point){ ...

冷风中的夜晚 3009

[VisionPro] CogPMAlignTool 工具详解

[VisionPro] [CogPMAlignTool] [模板匹配]

weixin_43163656的博客 1万+

Informer:比Transformer更有效的长时间序列预测

目录 AAAI 2021最佳论文:比Transformer更有效的长时间序列预测 Background Why attention Methods:the details of Informer Solve_Challenge_1:最基本的一个思路就是降低Attention的计算量,仅计算一些非常重要的或者说有代表性的Attention即可,一些相近的思路在近期不断的提出,比如Sparse-Attention,这个方法涉及了稀疏化Attention的操作,来减少Attention计算量,然后涉及的

To be a better man 1万+

SSM框架实现齐鲁文化名人Web平台开发实践

SSM框架作为JavaWeb开发的经典技术栈,通过Spring的IoC容器实现组件管理、SpringMVC处理请求路由、MyBatis操作数据库,构建高可维护性的企业级应用。在文化类项目中,该技术组合能有效处理非结构化数据存储、时空可视化等特殊需求,结合ECharts实现数据可视化、Lucene优化古籍检索。本文以齐鲁文化名人平台为例,详解如何运用SSM框架开发具备时空分布、思想传承等特色功能的历史文化系统,其中涉及的移动端适配、全文检索优化等方案对同类项目具有普适参考价值。

weixin_34094282的博客 159

Android 10.0 SystemUI 屏蔽状态栏消息推送弹出的悬浮通知

在状态栏中,有一些通知类似 消息推送 弹出的 悬浮通知,弹出30秒之后会消失掉 要想屏蔽掉这些通知,首选知道这些通知是怎么产生的 通知类型 NotificationContentInflater.java 详细的介绍各种通知的类型 frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java /** * The defau

安卓兼职framework和app工程师的博客 1542

vue3 使用echarts和百度地图

vue3.0 使用echarts和百度地图进行地图展示,自定义标注和自定义信息窗口,infoBox,infoWindow

weixin_43130350的博客 5681

Buck电源设计常见的一些问题(一)半桥栅极驱动芯片共性失效问题

半桥驱动芯片主要用在器件可应用于电信,数据通信,便携式存储或更低电压系统中的电源转换器,半桥、全桥、推挽、同步降压,正激变换器和同步整流器等方面。当然难免会遇到不少问题。基本上我们在产品开发的过程中都遇到过栅极驱动芯片坏掉的情况,所以找了一些资料,学习学习。也查找查找原因。

小幽余生不加糖 2369

UNet改进(24):注意力机制-从基础原理到高级融合策略

本文系统探讨了如何通过引入各类注意力机制增强UNet在医学图像分割中的性能。文章分为基础篇、进阶篇和高级篇三个层级:基础篇介绍了时序注意力、可变形注意力、分层注意力等8种基础机制;进阶篇提出了5种混合注意力设计;高级篇则探讨了全局+局部+多尺度等复杂组合机制。实验表明,这些注意力模块在心脏MRI、肺部感染等任务中能提升2-15%的分割精度。文章还提供了硬件适配建议和完整实现代码,为研究者提供了全面的技术参考。未来方向包括NAS优化、量子注意力等前沿探索,为UNet在医疗影像等领域的应用革新提供了理论指导。

2501_91516851的博客 764

echarts结合百度地图使用

百度地图结合echarts显示

belle_mei的博客 6378

[Dify实战] [安全合规] 用 Dify 优化安全巡检:从经验驱动到标准闭环-带绑定资源

摘要:企业信息系统安全管理中,安全合规巡检面临标准不统一、整改难追踪等痛点。本文提出基于Dify工具的智能化解决方案,通过自动化工作流实现标准检查清单生成、风险等级标注、整改建议输出及审计记录归档。方案采用结构化Prompt模板和Markdown输出格式,涵盖账号权限、数据安全等核心维度,并提供证据收集建议和闭环管理机制,帮助组织从人工经验驱动转向数据流程驱动的合规管理。配套可导入Dify的工作流文件将随后发布。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 272
上一篇: pycharm文件右下角变成问号打不开情况,解决方法
下一篇: shutil.rmtree出现PermissionError解决办法
焦志坤
博客等级 码龄8年 59粉丝 160原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值