我正在使用mapbox.js来创建voronoi地图。但是,我从纬度/经度到屏幕上像素的投影精度存在问题,因为精度只是 int 而不是浮点数。这会导致放大/缩小时点略有变化,从而导致整个沃罗诺伊地图发生变化!
编辑:我已经更新了代码,也包括生成 voronoi 的代码。您可以看到 voronoi 代码使用像素,因此这是有问题的,因为准确性可能存在问题。
var voronoi = d3.geom.voronoi()
.x(function (d) {
return d.x;
})
.y(function (d) {
return d.y;
});
filteredPoints.forEach(function (d) {
var latlng = new L.LatLng(d.latitude, d.longitude);
var point = map.latLngToLayerPoint(latlng);
d.x = point.x;
d.y = point.y;
}
voronoi(filteredPoints).forEach(function (d) {
d.point.cell = d;
});
阅读传单源代码并编写相同的内容,除了没有调用 round()