缩放D3地图时出错

时间:2017-01-12 00:11:05

标签: javascript d3.js

所以,我创建了一张地图,显示陨石对世界的影响。地图可以在这里找到

http://codepen.io/redixhumayun/full/VPepqM/

我正在尝试在地图上启用缩放功能。我能够放大这些国家,但代表陨石的圆圈不会相应移动,我在控制台中出错。圆圈与原来的位置保持在同一个位置,它们不会根据变焦移动。

这是我得到的错误

  

未捕获的ReferenceError:未定义陨石

以下是缩放的相关代码

var zoom = d3.zoom()
             .on('zoom', zoomed);

function zoomed() {
  map.attr('transform', d3.event.transform);
  meteorite.attr('transform', d3.event.transform);
}

1 个答案:

答案 0 :(得分:3)

meteorite变量是匿名函数function(data){ ...的本地变量,因此在该函数之外不可用。

如果您将声明移到map定义的位置,它将起作用:

...
//creating the g variable for the svg element
var map = svg.append('g');

//adding the group to the svg for meteorites
var meteorite = svg.append('g');
...

以下是更新后的代码:http://codepen.io/anon/pen/egZdXO