我正在尝试为一组纬度/经度点生成Voronoi图。
var points = [["-87.63374","41.878723"],["-87.680622","41.829353"],["-87.631739","41.8768"],["-87.626149","41.884431"]] ;
var boundingRegion = d3.geom.polygon([
[-88, 41.7],
[-88, 42.3],
[-87.5, 42.3],
[-87.5, 41.7]
]);
var voronoi = d3.geom.voronoi(points).map(function(cell) {
return boundingRegion.clip(cell);
});
document.write("<pre>"+JSON.stringify(voronoi, null, ' ')+"</pre>");
我在这里有一个基本示例的JSFiddle:
我使用一个简单的矩形放入4个点并剪切它们。
这些点是这样的,我应该看到每个得到的Voronoi区域至少有一个被修剪的顶点......单独的第一个就不符合这个。
当您在Google地图上绘制它们时,多边形相交并完全混乱。
如果你看一下http://jsfiddle.net/ZzjpC/3/,最后一点被删除了,一切看起来都不错。
所以这是我的问题:我的一组点是否有问题导致Voronoi图生成失败?或者这是一个D3错误,我应该告诉那些人?
答案 0 :(得分:1)
事实证明问题在于我的Voronoi网站(points
)是字符串数组而不是浮点数是导致问题的原因。我的猜测是,在某个地方发生了一个额外的事情,它被作为一个字符串连接而被执行而且破坏了事情。
将points
转换为浮点数而不是字符串可以解决问题。