
Untitled
By: a guest on
Aug 20th, 2012 | syntax:
None | size: 2.19 KB | hits: 5 | expires: Never
d3.json("https://out.bitdeli.com/v1/data/s-04ba8cdd3ee197-2a7bff2d/groups?latest&max=50", function(json){
//console.log(json)
var now = new Date()
var change_mins = function(date, dmin) {
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes() + dmin, 0);
}
/*
var items = [
{"name":"Montgomery", "estimate":change_mins(now, 5) },
{"name":"Embarcadero", "estimate":change_mins(now, -5) }
]*/
//lets just try one train
var stations = _.map(json.items, function(item) {
return item.object
})
//lets just do Montgomery for now
//console.log(stations)
var station = _.find(stations, function(station) {
//console.log(station)
return station.station === "Montgomery St."
})
var trains = _.map(station.trains, function(train) {
train['time'] = change_mins(now, parseInt(train.minutes))
return train;
})
//console.log("trains",trains)
//get the width and height of the svg
var sw = parseInt(d3.select("svg").style("width"))
var sh = parseInt(d3.select("svg").style("height"))
var x = d3.time.scale()
.domain([
d3.min(trains, function(d) {return d.time}),
d3.max(trains, function(d) { return d.time})
])
.range([0, sw]);
var xDateAxis = d3.svg.axis()
.scale(x)
/*
.orient('top')
//.ticks(d3.time.mondays, (x.domain()[1] - x.domain()[0]) > 15552e6 ? 2 : 1)
//.tickFormat(d3.time.format('%d'))
.tickSize(6, 0, 0)
*/
var svg = d3.select("svg")
//lets draw a small box accross the top of the screen
svg.append("rect")
.attr("width", "100%")
.attr("height", 20)
.attr("fill", "#000000")
.attr("opacity", .3)
//lets make a second box for south bound
svg.append("rect")
.attr("transform", "translate(0, 25)")
.attr("width", "100%")
.attr("height", 20)
.attr("fill", "#000000")
.attr("opacity", .3)
console.log("asdf")
svg.append("g")
.attr("id", "xaxis")
.attr("transform", "translate(0,60)")
.call(xDateAxis)
//lets draw a rectangle for each item
svg.selectAll("g.item")
.data(trains)
.enter()
.append("circle")
.attr("cx", function(d,i) {
//console.log("d", d, d.time, x(d.time))
return x(d.time)
})
.attr("cy", 10)
.attr("r", 5)
.attr("fill", function(d,i) { return d.hexcolor})
.attr("opacity", 0.9)
})
console.log("sup")