Echarts GL 结合mapbox趟坑记(使用appendData)

前言

echartsGL官网示例有个很炫酷的散点图,通过服务器分批加载实现了千万条以上数据的展示:

在这里插入图片描述

domo可以看这里

其实就是分批加载服务器数据然后呈现。看上去很简单,其实坑不是一般的多。

二、数据转换

通过官网下载上述demo,放到本地,打开控制台,找到数据请求地址,修改demo里的ROOTPATH,尝试在本地跑起来。一看,报错。接口不支持跨域。没办法,只能模拟一下接口返回的数据,通过Float32Array进行数据封装。demo里的核心代码如下:

myChart.appendData({
   
    seriesIndex: 0,
     data: data
 });

可以看到核心代码就是调用的echarts的对象方法appendData;

data的数据格式,在我摸了半天的情况下,终于弄清楚:
假设这是我的元数据(并非最终数据):

 [
   {
   
      lat:131.222,
	  lon:31.3333,
	  num:12
   } 
]

每一个数据可以由经度,维度,以及这个点的加权(记为num)组成。则我们需要一个Float32Array,其存储格式如下:

[131.22,31.33333,12,132.33,32.2222,24.....]

转换函数如下:

	_Scatter.prototype._transform = function(data_arr){
   

		const ret = new Float32Array
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你想了解关于 Mapbox GLEcharts 迁徙图的相关内容吗?Mapbox GL 是一个开源的地图绘制库,可以用来创建交互式的地图应用程序。Echarts 是一个基于 JavaScript 的数据可视化库,可以用来展示各种类型的图表,包括迁徙图。 要使用 Mapbox GLEcharts 创建迁徙图,你可以按照以下步骤进行操作: 1. 首先,引入 Mapbox GLEcharts 的相关库文件到你的项目中。你可以从官方网站或使用包管理工具如npm或yarn来安装它们。 2. 创建一个包含地图容器的 HTML 元素,在这个容器中将显示迁徙图。你可以使用 Mapbox GL 提供的 API 来初始化地图和设置样式。 3. 准备迁徙数据。迁徙数据通常包含起始地点、目标地点和迁徙人数等信息。你可以将这些数据存储在一个 JSON 文件中,或者通过网络请求从后端获取。 4. 在 JavaScript 代码中,使用 Echarts 的 API 创建一个迁徙图实例。通过配置项,你可以设置迁徙图的样式、数据源和交互行为等。 5. 将迁徙图实例绑定到地图容器中,这样迁徙图就会在地图上进行渲染。 以下是一个简单的示例代码,演示了如何使用 Mapbox GLEcharts 创建迁徙图: ```html <!DOCTYPE html> <html> <head> <title>Mapbox GL + Echarts 迁徙图</title> <meta charset="utf-8" /> <style> #map { width: 800px; height: 600px; } </style> </head> <body> <div id="map"></div> <script src="path/to/mapbox-gl.js"></script> <script src="path/to/echarts.js"></script> <script> // 初始化地图 mapboxgl.accessToken = 'your-access-token'; var map = new mapboxgl.Map({ container: 'map', style: 'mapbox://styles/mapbox/streets-v11', center: [lon, lat], zoom: 10 }); // 准备迁徙数据 var migrationData = [ { from: [fromLon1, fromLat1], to: [toLon1, toLat1], count: 100 }, { from: [fromLon2, fromLat2], to: [toLon2, toLat2], count: 200 }, // ... ]; // 创建迁徙图实例 var chartDom = document.getElementById('map'); var myChart = echarts.init(chartDom); var option = { series: [{ type: 'lines', data: migrationData.map(function (item) { return { coords: [item.from, item.to], value: item.count }; }), // 其他配置项... }] }; myChart.setOption(option); // 将迁徙图绑定到地图容器中 map.on('load', function () { var canvas = myChart.getCanvas(); var container = map.getCanvasContainer(); container.appendChild(canvas); }); </script> </body> </html> ``` 请注意,上述代码中的一些参数如 access token、经纬度等需要根据你的实际情况进行设置。 希望这个回答能够帮到你!如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值