Я пытаюсь привлечь землетрясения в течение нескольких месяцев на карте. Со следующим кодом я нарисовал все землетрясения, но хочу масштабировать временной интервал и сделать его видеопотоком.D3js нарисовать со временем?
svg.selectAll(".shock")
.data(data)
.enter().append("circle")
.attr("class", 'shock')
.attr("r", 5)
.attr("transform", function(d) {
return "translate(" + projection([
d.lng,
d.lat
]) + ")";
});
Как я могу показать все эти землетрясения в анимации продолжительностью 15 секунд? Один из способов, я думал: добавьте все круги (отсортированные по дате) с помощью radius 0
, затем увеличьте радиус первого и setTimeout
, чтобы увеличить радиус следующего и т. Д. Есть ли лучший способ?
Я знаю о временных масштабах, но не знаю, как их использовать для рисования с течением времени?
Спрашивающий Google дает несколько приятных примеров, охватывающих то, что вы пытаетесь достичь. Я думаю, что [этот пример] (http://bl.ocks.org/rveciana/6832422) делает именно то, что вам нужно. Он использует 'setInterval()' для запуска добавления новых кругов, которые добавляются один за другим, когда их нужно рисовать. Хотя это не совсем соответствует вашим потребностям, другой [хороший пример] (http://bl.ocks.org/tnightingale/4718717) с выбором, использующим 'd3.svg.brush()', может предоставить интересную информацию. – altocumulus
Еще [другая визуализация] (http://bl.ocks.org/benelsen/4969007). Это не работает, потому что данные не могут быть прочитаны, но анализ кода должен передать основные идеи. – altocumulus