Node.Js Map示例,添加速度和点击数据?

时间:2016-04-06 14:50:14

标签: javascript node.js mapbox

我一直在尝试使用node.js和mapbox库来学习更好的可视化。

在此处使用此示例:Running Map Example

我想添加一个速度图表,并允许用户点击一个节点,然后在一个小弹出窗口中查看有关该位置的数据 - 对于今天,我只想提高速度。

它似乎是一个递归算法,所以我需要实现变量来存储以前的位置和时间,但我遇到了三个问题:

  • 我不知道如何使用这种日期格式:" 2015-01-19T21:24:20Z"或Chroniton对其进行解析以生成可减数的数字以获得时间差异。
  • 我不知道如何使用给定的代码获得两点之间的距离,我可以简单地sqrt((.x(point1) - .x(point2)) + (.y(point1) + .y(point2)),但我不确定在这个例子中如何存储或解析坐标
  • 我不知道 where 来计算速度。看起来坐标仅在图形显示后定义,因为坐标不在图形中使用。我可能错了,但我需要一些方向。

这是我现在拥有的: 使用高程显示作为我的模板,我认为我已经通过添加以下三个片段来显示该行:

设置比例:

var speed = d3.scale.linear()
.range([height, 0])
.domain([0, d3.max(dataRet, function(d) {
    return d[1][2];
})]);

在行中添加数据:

var SpeedLine = d3.svg.line()
    .x(function (d) { return x(d[0]); })
    .y(function (d) { return speed(d[2])})

显示行:

svg.append('path')
.datum(dataRet)
.attr('class', 'speed-line')
.attr('d', speedLine);

我知道我必须添加类似于这个psudocode的速度函数:

var dt = chroniton.domain(Time1, Time2)
var speed[i] = LongLat(previousPoint).distanceto(currentPoint)/dt

在弹出框中:

dt.format(something to do with time formatting)

注意1:,我将函数datePlaceHeart的名称更改为dataRet,因为我要添加新内容来执行此操作,并且datePlaceHeartSpeedStuffAndThings变得有点长;)

注意2:我还没有能够启动弹出窗口,因为我还没有弄清楚如何使用给定的数据计算速度,嗯,做一个简单的数据似乎有点傻第一。 (幸运的是,它实际上并不容易)

请帮帮忙?这是我编辑的完整代码(Edited index.js): Code

0 个答案:

没有答案