我几天前开始学习D3,并尝试为我做的地图添加缩放功能。
我正在使用这个示例作为基础,但当我尝试适应我的地图时,我收到了这个错误,而且我的地图消失了。
TypeError: d3.behavior is undefined
这是我的代码:
var projection = d3.geoMercator()
.translate([width / 2, height / 2])
.scale((width - 1) / 2 / Math.PI);
var zoom = d3.behavior.zoom()
.scaleExtent([1, 8])
.on("zoom", zoomed);
var path = d3.geoPath().projection(projection);
var svg = d3.select("#map")
.classed("svg-cont", true)
.append("svg")
.attr("preserveAspectRatio", "xMinYMin meet")
.attr("viewBox", "0 0 560 350")
.classed("svg-content-responsive", true)
.append("g");
svg
.call(zoom)
.call(zoom.event);
And below
function zoomed() {
g.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
}
d3.behavior.zoom
已被移除,改为使用d3.zoom
。请注意更新相关代码。 - Gerardo Furtado