我正在尝试为一组纬度/经度点生成 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 区域至少有一个剪裁顶点......单独的第一个不符合这一点。
当你在谷歌地图上绘制它们时,多边形相交并且完全混乱。
如果您查看http://jsfiddle.net/ZzjpC/3/,最后一点已被删除,一切看起来都很好。
所以这是我的问题:我的点集是否有问题导致 Voronoi 图生成失败?或者这是一个 D3 错误,我应该告诉那些人?