vue中使用echarts实现地图可视化(上)

简介: vue中使用echarts实现地图可视化

在实现vue中地图可视化之前。我们先来看看如何渲染百度地图。


百度地图的简单使用


先申请百度地图秘钥:lbsyun.baidu.com/index.php?t…


获取秘钥:lbsyun.baidu.com/apiconsole/…


申请秘钥后,引入百度地图js库,将百度地图api挂载到window上。


<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=您的密钥">


<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  <style type="text/css">
  body, html,#map {width: 100%;height: 100%;}
  </style>
  <script type="text/javascript" src="https://api.map.baidu.com/api?type=webgl&v=1.0&ak=G1LFyjrNGIkns5OfpZnrCGAKxpycPLwb"></script>
  <title>地图展示</title>
</head>
<body>
  <div id="map"></div>
</body>
</html>
<script type="text/javascript">
    // 创建Map实例
  const map = new BMapGL.Map("map"); 
    // 初始化中心点坐标 
  const point = new BMapGL.Point(116.404, 39.915); 
  // 初始化地图,设置中心点坐标和地图级别
  map.centerAndZoom(point, 12);  
  // 开启鼠标滚轮缩放
  map.enableScrollWheelZoom(true);     
</script>


具体用法请访问百度地图官网 lbsyun.baidu.com/index.php?t…


web中实现百度地图可视化


mapv库: 主要是提供一些方法。获取数据


mapvgl库:主要是绘制数据源。


<script src="https://mapv.baidu.com/build/mapv.js"></script>
    <script src="https://code.bdstatic.com/npm/mapvgl@1.0.0-beta.54/dist/mapvgl.min.js"></script>


绘制数据源:


  • 生成mapvgl视图view。就是在百度地图上添加一层画布。


  • 初始化mapvgl的PointLayer对象。在画布和数据添加映射关系。


  • 将PointLayer对象加入到view。


  • 将数据与PointLayer进行绑定。



下面是一个百度地图绘制散点图的案列


<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  <style type="text/css">
    html, body {
      width: 100%;
      height: 100%;
      margin: 0;
      padding: 0;
    }
    #map_container {
      width: 100%;
      height: 100%;
      margin: 0;
    }
  </style>
  <script type="text/javascript" src="https://api.map.baidu.com/api?type=webgl&v=1.0&ak=G1LFyjrNGIkns5OfpZnrCGAKxpycPLwb"></script>
        // 这个库是简化初始化百度地图对象的
  <script src="https://mapv.baidu.com/gl/examples/static/common.js"></script>
  <script src="https://mapv.baidu.com/build/mapv.js"></script>
  <script src="https://code.bdstatic.com/npm/mapvgl@1.0.0-beta.54/dist/mapvgl.min.js"></script>
  <title>地图展示</title>
</head>
<body>
  <div id="map_container"></div>
  <script type="text/javascript">
    var map = initMap({
      tilt: 0,
      heading: 0,
      center: [103.438656,25.753594],
      zoom: 8,
      style: snowStyle,
      skyColors: [
        // 地面颜色
        'rgba(226, 237, 248, 0)',
        // 天空颜色
        'rgba(186, 211, 252, 1)'
      ]
    });
    setData(initData());
    function initData() {
        var data = [];
        var citys = [
                '北京', '天津', '上海', '重庆', '石家庄', '太原', '呼和浩特', '哈尔滨', '长春',
                '沈阳', '济南', '南京', '合肥', '杭州', '南昌', '福州', '郑州', '武汉', '长沙', '广州',
                '南宁', '西安', '银川', '兰州', '西宁', '乌鲁木齐', '成都', '贵阳', '昆明', '拉萨', '海口'
        ];
      var randomCount = 700;
      // 构造数据
      while (randomCount--) {
            var cityCenter = mapv.utilCityCenter.getCenterByCityName(citys[parseInt(Math.random() * citys.length, 10)]);
            data.push(
                {
                    geometry: {
                        type: 'Point',
                        coordinates: [cityCenter.lng - 2 + Math.random() * 4, cityCenter.lat - 2 + Math.random() * 4]
                    },
                    properties: {
                            count: Math.random() * 100
                    }
                });
      }
  return data;
    }
    function setData(data) {
    // 生成mapvgl视图view。就是在百度地图上添加一层画布。
        var view = new mapvgl.View({
            map: map
        });
      var intensity = new mapvgl.Intensity({
            gradient: {
                0: 'rgb(25, 66, 102, 0.8)',
                0.3: 'rgb(145, 102, 129, 0.8)',
                0.7: 'rgb(210, 131, 137, 0.8)',
                1: 'rgb(248, 177, 149, 0.8)'
            },
            maxSize: 30,
            minSize: 5
        });
        // 初始化mapvgl的PointLayer对象。在画布和数据添加映射关系。
      var pointLayer = new mapvgl.PointLayer({
            blend: 'lighter',
            size: function (data) {
                return intensity.getSize(data.properties.count);
            },
            color: function (data) {
                return intensity.getColor(data.properties.count);
            }
      });
        // 将数据与PointLayer进行绑定。
      pointLayer.setData(data);
        // 将PointLayer对象加入到view。
      view.addLayer(pointLayer);
    }
  </script> 
</body>
</html>


更多案例请访问官网 mapv.baidu.com/gallery.htm…


下面就要介绍百度地图通过echarts在vue中实现可视化了。。。。有点小激动。


vue中通过echarts来实现百度地图的可视化


使用注意事项:


  • 当图表不能显示的时候,注意看是否给定了组件宽高


  • 选项的使用请看echarts的官网。


npm i -S vue-echarts echarts


引入百度地图的js库。注意需要引入的是第二版本的。否则不兼容vue-echarts。


百度地图 <script src="https://api.map.baidu.com/api?v=2.0&ak=key"></script>
高德地图 <script src="https://webapi.amap.com/maps?v=1.4.3&key=key"></script>


vue2中的使用


如果安装了最新版本的vue-echarts。还需要安装


npm i -D @vue/composition-api


import VueECharts from 'vue-echarts'
import ECharts from 'echarts'
Vue.prototype.$echarts = ECharts
Vue.component('vue-echarts', VueECharts)


// 使用
    // 注意这里的props是options。到了vue-echarts v6就改成了option了。
    <vue-echarts :options="option"/>
     // 默认有一个echarts的class属性
    // 引用bmap的echarts的扩展
    import 'echarts/extension/bmap/bmap' 
    // option中的bamp组件
    const option = {
      bmap: {
        key: 'G1LFyjrNGIkns5OfpZnrCGAKxpycPLwb',
        center: [104.114129, 37.550339],
        zoom: 5,
        roam: false
      }
    }


如果未导入import 'echarts/extension/bmap/bmap'


网络异常,图片无法展示
|


相关文章
|
16天前
|
存储 JavaScript 数据可视化
vue3+echarts应用——深度遍历html的dom结构并用树图进行可视化
vue3+echarts应用——深度遍历html的dom结构并用树图进行可视化
38 1
|
6天前
|
定位技术
echarts 地图点位
在使用ECharts的点击事件绑定中,观察到每次点击会递增一次后台请求:首次点击请求1次,第二次点击请求2次,第三次点击请求3次,以此类推。为解决这个问题,尝试在事件绑定前使用`myChart.off(&#39;click&#39;)`移除原有监听器,然后添加新的点击事件处理函数。
|
13天前
|
数据可视化 JavaScript 前端开发
Echarts是一个开源的JavaScript可视化库,用于创建各种类型的图表
Echarts是JavaScript的开源可视化库,Python通过Pyecharts库可调用它来绘制图表。示例展示了如何用Pyecharts创建柱状图:定义图表对象,设置标题和坐标轴,添加X轴、Y轴数据,最后渲染展示。Pyecharts还支持折线图、散点图、饼图等多种图表类型,更多详情可查阅官方文档。
30 0
|
16天前
|
新零售 分布式计算 数据可视化
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
|
16天前
|
数据采集 数据可视化 小程序
vue3+echarts可视化——记录我的2023编程之旅
vue3+echarts可视化——记录我的2023编程之旅
28 1
|
17天前
|
数据可视化 定位技术
selenuim&echarts——可视化分析csdn新星赛道选手展示头像、展示ip城市和断言参赛信息的有效性(进阶篇)(二)
selenuim&echarts——可视化分析csdn新星赛道选手展示头像、展示ip城市和断言参赛信息的有效性(进阶篇)
19 0
|
17天前
|
数据采集 JSON 自然语言处理
selenuim&echarts——可视化分析csdn新星赛道选手展示头像、展示ip城市和断言参赛信息的有效性(进阶篇)(一)
selenuim&echarts——可视化分析csdn新星赛道选手展示头像、展示ip城市和断言参赛信息的有效性(进阶篇)
17 0
selenuim&echarts——可视化分析csdn新星赛道选手展示头像、展示ip城市和断言参赛信息的有效性(进阶篇)(一)
|
17天前
|
数据采集 JSON 数据可视化
python_selenuim获取csdn新星赛道选手所在城市用echarts地图显示
python_selenuim获取csdn新星赛道选手所在城市用echarts地图显示
7 1
|
26天前
|
JavaScript
如何在vue添加echarts图表
如何在vue添加echarts图表
16 0
|
1月前
|
SQL JavaScript 分布式数据库
使用Vue+ ECharts进行动态图表展示
Vue是一个用于构建用户界面的渐进式JavaScript框架,可以轻松构建单页面应用程序(SPA)。ECharts是一个基于JavaScript的数据可视化库,可以通过简单的配置实现各种图表的展示和交互。
101 0