【发布时间】:2017-09-25 00:17:05
【问题描述】:
我正在尝试更新 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。当然,我已经用谷歌搜索了这个错误以及我正在尝试做的各种描述,但我没有任何运气。提前感谢您的帮助。
【问题讨论】:
-
有用的提示,加载 non-minified 版本的
d3以便更好地了解您的错误... -
Harry,你最终是否为
D3.js第 4 版创建了d3.cartogram的工作版本? -
还没有。忙于其他事情。
标签: javascript d3.js topojson cartogram