为了账号安全,请及时绑定邮箱和手机立即绑定

echarts官方示例代码解释(非专业前端,javascripts有基础不精通),还望赐教

echarts官方示例代码解释(非专业前端,javascripts有基础不精通),还望赐教

无无法师 2017-03-19 13:44:32
$.get('data/asset/data/lines-bus.json', function(data) {     var hStep = 300 / (data.length - 1);     var busLines = [].concat.apply([], data.map(function (busLine, idx) {         var prevPt;         var points = [];         for (var i = 0; i < busLine.length; i += 2) {             var pt = [busLine[i], busLine[i + 1]];             if (i > 0) {                 pt = [                     prevPt[0] + pt[0],                     prevPt[1] + pt[1]                 ];             }             prevPt = pt;             points.push([pt[0] / 1e4, pt[1] / 1e4]);         }         return {             coords: points,             lineStyle: {                 normal: {                     color: echarts.color.modifyHSL('#5A94DF', Math.round(hStep * idx))                 }             }         };     }));data/asset/data/lines-bus.json是:echarts源地址:http://echarts.baidu.com/demo.html#lines-bmap-effect
查看完整描述

2 回答

?
慕无忌6238110

TA贡献1条经验 获得超3个赞

首先lines-bus.json是一个二维数组,里面每一个一维数组存储一辆公交车的轨迹,其中第一个和第二个元素为初始坐标(经纬度*10000),往后每两个元素为一组表示经纬度的偏移量(*10000)。

var busLines = [].concat.apply([], data.map(function (busLine, idx) {}))是将data数组映射到一个新的数组里,即将lines-bus.json转换为真实的经纬度坐标。

var pt = [busLine[i], busLine[i + 1]];为起始点坐标。

if (i > 0) {

               pt = [prevPt[0] + pt[0], prevPt[1] + pt[1] ];

            }计算加上偏移量后的经纬度*10000

prevPt = pt;将当前坐标赋值给上一个点坐标,继续循环;

points.push([pt[0] / 1e4, pt[1] / 1e4]);坐标小数点前移四位得到真实的经纬度值,存储到points数组里。

 return {

            coords: points,

            lineStyle: {

                normal: {

                    color: echarts.color.modifyHSL('#5A94DF', Math.round(hStep * idx))

                }

            }

        };为新数组的存储格式,新的数组每一个元素是一个对象。


查看完整回答
3 反对 回复 2017-06-22
?
慕仔1023009

TA贡献1条经验 获得超1个赞

你好,我想请教一下,你怎么知道知道data/asset/data/lines-bus.json的数据的???


查看完整回答
1 反对 回复 2019-01-19
  • 2 回答
  • 0 关注
  • 7867 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信