使用D3.js抖动地理路径

时间:2014-12-02 03:08:12

标签: javascript d3.js geo

我正在尝试添加'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以供参考。

0 个答案:

没有答案