D3 Spinning Globe:包含缩放功能的麻烦

时间:2016-06-03 12:46:36

标签: javascript jquery d3.js

我正在尝试使用D3将变焦功能合并到Mike Bostock的旋转地球仪上。只要地球正在旋转,或者在“动画”中,缩放功能就像魅力一样。状态。然而,我遇到了以下问题:

(1)当我滚动时,一旦有mousedown甚至变焦功能被禁用,这不是所希望的效果。我已经缩小了问题范围,我认为出现这种情况是因为第70行的代码如下:done = true;

(2)缩放功能已禁用所有有趣的翻译效果(例如gnomonic,等距等),这也不是理想的效果。

我有一个工作小提琴演示了遇到的问题:http://jsfiddle.net/Guill84/8sru2573/1/

1 个答案:

答案 0 :(得分:1)

缩放后动画正在刷新图形。当它关闭时你需要明确地执行此操作(我还清理了缩放,这是一个错误):

function move() {
    if(d3.event){
        var scale = d3.event.scale;
        var origin = [d3.event.translate[0] * -1, d3.event.translate[1]];

        projection.scale(scale);
        backgroundCircle.attr('r', scale);

        if (done) refresh(); //<-- explicit refresh  
    }
}

更新fiddle