Javascript 为什么我的d3 voronoi实现会创建一个奇怪的图形?

Javascript 为什么我的d3 voronoi实现会创建一个奇怪的图形?,javascript,html,d3.js,geojson,voronoi,Javascript,Html,D3.js,Geojson,Voronoi,在红点周围创建voronoi多边形时遇到问题。在每个状态的边界内随机生成点。我正在尝试使用d3 voronoi库来实现这一点,它会在下面的链接中生成图片。有什么建议吗?一些国家是多极化国家,这是一个问题吗 D3示例 身体{ 字体系列:“Helvetica Neue”,“Helvetica”,“Arial”,无衬线; 字体大小:15磅; } h1{ 文本对齐:居中; 字号:500; } svg{ 显示:块; 保证金:自动; } /*工具提示*/ 分区工具提示{ 位置:绝对位置; 可见性:隐藏;

在红点周围创建voronoi多边形时遇到问题。在每个状态的边界内随机生成点。我正在尝试使用d3 voronoi库来实现这一点,它会在下面的链接中生成图片。有什么建议吗?一些国家是多极化国家,这是一个问题吗


D3示例
身体{
字体系列:“Helvetica Neue”,“Helvetica”,“Arial”,无衬线;
字体大小:15磅;
}
h1{
文本对齐:居中;
字号:500;
}
svg{
显示:块;
保证金:自动;
}
/*工具提示*/
分区工具提示{
位置:绝对位置;
可见性:隐藏;
字体大小:60%;
颜色:#333333;
背景色:#e6;
不透明度:.95;
填充物:5px;
}
钮扣{
填充:10px 20px;
}
.背景{
填充:无;
指针事件:全部;
}
#州{
填充:#aaa;
}
#美国。活跃{
显示:无;
}
#国家边界{
填充:无;
冲程:#fff;
笔划宽度:1.5px;
笔划线条连接:圆形;
笔划线头:圆形;
指针事件:无;
}
.县界{
填充:#aaa;
冲程:#fff;
笔划宽度:.5px;
}
.县边界:悬停,.州:悬停{
填充物:橙色;
}
格瑞数据
var data_map=d3.map();
可变宽度=1920,
高度=1200,
居中的;
var-path_-gen;
var aa=[];
var计数=0;
//风险敞口率;
//var-svg;
//var imageData=polyContext.getImageData(0,0,宽度,高度);
变量状态代码=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51];
变量状态名称=
{
“阿拉巴马州”:9,
“阿拉斯加”:3,
“亚利桑那州”:11,
“阿肯色州”:6,
“加州”:55,
“科罗拉多”:9,
“康涅狄格州”:7,
“特拉华”:3,
“哥伦比亚特区”:3,
“佛罗里达”:29,
“格鲁吉亚”:16,
“夏威夷”:4,
“爱达荷州”:4,
“伊利诺伊州”:20,
“印第安纳州”:11,
“爱荷华州”:6,
“堪萨斯州”:6,
“肯塔基州”:8,
“路易斯安那州”:8,
“缅因州”:4,
“马里兰”:10,
“马萨诸塞州”:11,
“密歇根”:16,
“明尼苏达州”:10,
“密西西比”:6,
“密苏里州”:10,
“蒙大拿”:3,
“内布拉斯加州”:5,
“内华达州”:6,
“新罕布什尔州”:4,
“新泽西州”:14,
“新墨西哥州”:5,
“纽约”:29,
“北卡罗来纳州”:15,
“北达科他州”:3,
“俄亥俄州”:18岁,
“俄克拉荷马州”:7,
“俄勒冈州”:7,
“宾夕法尼亚州”:20,
“罗德岛”:4,
“南卡罗来纳州”:9,
“南达科他州”:3,
“田纳西州”:11,
“德克萨斯州”:38,
“犹他州”:6,
“佛蒙特州”:3,
“弗吉尼亚”:13,
“华盛顿”:12,
“西弗吉尼亚州”:5,
“威斯康星州”:10,
“怀俄明州”:3,
};
d3.队列()
.defer(d3.json,“data/countries_20m.json”)
//.defer(d3.json,“https://unpkg.com/us-atlas@1/us/10m.json)
.defer(d3.json,“data/states_20m.json”)
.defer(d3.json,“data/us_20m.json”)
.defer(d3.csv,“data/pop.csv”,函数(d){
//换算成数字
d['POPESTIMATE2019']=+d['POPESTIMATE2019'];
//使用该县的FIPS countyode访问该县的数据
返回数据映射集(d['fipstext'],d);
})
.等待(准备好);
功能就绪(错误、cmap、smap、umap、数据\u csv){
//数据是什么样子的?
//console.log(数据_csv);
//解压缩GeoJSON特性
var县=cmap[“特征];
var状态=smap[“特征];
var us=umap[“特征];
//var状态=smap[“特征];
//var国家;
//----------------------------------------
//SVG设置
//可变宽度=1920,
//高度=1200;
svg=d3。选择(“#县”)。追加('svg')
.attr('width',width)
.attr('高度'),高度;
//.call(d3.zoom().on(“zoom”,函数)(){
//attr(“transform”,d3.event.transform)
// }));
//将空占位符g元素附加到SVG
//g将包含几何体元素
设g=d3.select(“#state”).append('svg'))
.attr('width',width)
.attr('高度'),高度;
设h=d3.select('#us').append('svg'))
.attr('width',width)
.attr('高度'),高度;
var hi=svg.append('svg')。selectAll('path');
//----------------------------------------
//地理设置
var proj=d3.geoabersusa()
.比例尺(2300)
.翻译([宽度/2,高度/2]);
路径=d3.地质路径(项目);
var voronoi=d3.voronoi()
.范围([[0,0],[width,height]]);
//----------------------------------------
//比例设置
变量颜色=['#f7fbff'、'#deebf7'、'#c6dbef'、'#9ecae1',
"第6版","第42版"