node-red-contrib-tak-registration
Version:
A Node-RED node to register to TAK and to help wrap files as datapackages to send to TAK
61 lines (50 loc) • 1.8 kB
JavaScript
function drawLines(divId, lines, intervals, boundaries) {
var xs = boundaries.xs;
var ys = boundaries.ys;
var marginBottomLabel = 0;
var width = 300;
var height = width * (ys.length / xs.length);
var xScale = d3.scale.linear()
.range([0, width])
.domain([Math.min.apply(null, xs), Math.max.apply(null, xs)]);
var yScale = d3.scale.linear()
.range([0, height])
.domain([Math.min.apply(null, ys), Math.max.apply(null, ys)]);
var colours = d3.scale.linear().domain([intervals[0], intervals[intervals.length - 1]])
.range([d3.rgb(200, 200, 200), d3.rgb(0, 0, 0)]);
var svg = d3.select(divId)
.append("svg")
.attr("width", width)
.attr("height", height + marginBottomLabel);
svg.selectAll("path")
.data(lines)
.enter().append("path")
.style("fill", function (d) {
return colours(d.val);
})
.style("stroke", "black")
.style('opacity', 1.0)
.attr("d", function (d) {
var p = "";
d.coords.forEach(function (aa) {
p += (d3.svg.line()
.x(function (dat) {
return xScale(dat[0]);
})
.y(function (dat) {
return yScale(dat[1]);
})
.interpolate("linear")
)(aa) + "Z";
});
return p;
})
.on('mouseover', function () {
d3.select(this).style('fill', d3.rgb(204, 185, 116));
})
.on('mouseout', function () {
d3.select(this).style('fill', function (d1) {
return colours(d1.val);
})
});
}