所以,我创建了一张地图,显示陨石对世界的影响。地图可以在这里找到
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);
}
答案 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