我正在尝试更新d3-cartogram以使用 D3.js 版本 4。到目前为止,一切都很好 - 我刚刚更新了所有函数,以便将它们写入版本 4 的扁平命名空间中。例如, 而不是d3.geo.path()
, 它是d3.geoPath()
. 我还更改了一些小东西,以便代码可以与最新版本的TopoJSON 一起使用。例如,不是topojson.object(topology, geom).coordinates
,而是topojson.feature(topology, geom).geometry.coordinates
。
但是我遇到了一个我似乎无法解决的问题。该文件cartogram.js
有一行内容为var areas = objects.map(path.area)
,其中objects
是 TopoJSON 功能的集合。path.area
在 D3.js 版本 2 和 4 中有所不同,我似乎无法调和它们。如果我在每个版本中进行控制台登录,它看起来像这样:
- 版本 2:
function (n){return n&&e.hasOwnProperty(n.type)?e[n.type](n):t}
- 版本 4:
function (t){return U_(t,r(Ag)),Ag.result()}
在版本 4 中,它记录错误:Uncaught TypeError: r is not a function
. 自然,我已经用谷歌搜索了这个错误以及我正在尝试做的各种描述,但我没有任何运气。提前感谢您的帮助。