我正在尝试添加'jitter'或将随机噪声添加到包含线要素的D3.js地图中。请注意,这与此other example略有不同,因为它涉及地理路径。另外,虽然我想使用自定义转换来做到这一点,但我认为我不能,因为我需要能够使用标准转换(从WGS84到NY State Plane)。我认为抖动函数应该基于修改后的path
函数,或者是一个以path
作为输入的单独函数。
var projection = d3.geo.conicConformal()
.parallels([40 + 40 / 60, 41 + 2 / 60])
.rotate([74, -40 - 10 / 60]);
var path = d3.geo.path()
.projection(projection);
请注意,我根本不想修改输入数据(即,抖动应该在路径上,而不是输入地理数据)。还要注意,抖动可以是完全随机的(即,每次都不必相同)。我最初的想法是将数据包装在抖动函数中,或者将路径函数包装在抖动函数中。无论哪种方式,我都不确定从哪里开始?有什么建议?即使是相关API项目的链接也很棒!
svg.selectAll("path")
.data(jitter(lines.features)) // Wrap data in jitter function... or...
.enter().append("path")
.attr("class", "line")
.attr("d", function(d) { return jitter(path(d)); }) // Jitter path directly
此处提供了(简化)jsfiddle以供参考。