我正在尝试制作Voronoi地图,以便为大量的圈子创建标签。我正在按照Mike Bostock step by step的示例进行操作,但是我遇到了一个错误,并且不确定为什么。
我初始化voronoi细胞,然后尝试为每个多边形创建路径。
const cells = d3.voronoi()
.extent([[0, 0], [600, 700]])
.polygons(circle_locations)
const cell = svg.append("g")
.attr("class", "voronoiWrapper")
.attr("fill", "none")
.selectAll("path")
.data(cells)
.enter()
cell.append("path")
.attr("stroke", "#orange")
.attr("d", d => `M${d.join("L")}Z`);
这给我一个错误,即d
未定义。但这使我感到困惑,因为我将单元格连接到了上面的对象cell
上。这实际上是复制粘贴示例所具有的内容,但效果不佳。
这是我的data的演示。有很多与此无关的随机内容,但是如果您愿意的话,此摘要位于main.js
的底部。
答案 0 :(得分:2)
您当前范围的CustomUserAuth.Email & CustomUserAuth.PrimaryEmail
和x1
值...
y1
...太低了。因此,您的const cells = d3.voronoi()
.extent([[0, 0], [600, 700]])
//these------------^----^
数据数组中有空数组。
根据圆的位置增加该边界,您将不再具有未定义的基准。另外,只需过滤数据数组(cells
)中的有效值即可。