我使用D3创建了一个动画,其中包含一个类似于this one的世界地图。动画包括沿着某些弧移动飞机图标,就像在this article中一样。
请注意,国家/地区的轮廓使用阴影突出显示,使用以下代码生成:
var filter = svg.append("defs")
.append("filter")
.attr("id", "drop-shadow")
.attr("height", "130%");
filter.append("feGaussianBlur")
.attr("in", "SourceAlpha")
.attr("stdDeviation", 5)
.attr("result", "blur");
var feMerge = filter.append("feMerge");
feMerge.append("feMergeNode")
.attr("in", "offsetBlur")
feMerge.append("feMergeNode")
.attr("in", "SourceGraphic");
...
svg.insert("path", ".map")
.datum(topojson.feature(countries, countries.objects.land))
.attr("class", "land")
.attr("d", path)
.style("filter", "url(#drop-shadow)");
不幸的是,这个阴影在我的动画循环中耗费了大量的性能(尽管阴影本身没有动画):