D3.js d3投影反照率产生格纹图的问题

D3.js d3投影反照率产生格纹图的问题,d3.js,topojson,D3.js,Topojson,我正在将博斯托克的美国地图集(未过滤的美国各州shp文件)中的地图文件转换为topojson。最后我得到了这张地图。有人知道为什么吗 我的投影代码: var svg=d3.选择(“交互式”).插入(“svg”) .attr(“宽度”,w) .attr(“高度”,h) 我尝试过的原始文件(做同样的事情):, 转换后的文件:,所以它原来应该这样做 有两种修复方法 要显示边框,我们可以保留当前代码,但需要将填充设置为“无”,只需对边框本身进行样式化。类似这样的工作原理: .states_border

我正在将博斯托克的美国地图集(未过滤的美国各州shp文件)中的地图文件转换为topojson。最后我得到了这张地图。有人知道为什么吗

我的投影代码: var svg=d3.选择(“交互式”).插入(“svg”) .attr(“宽度”,w) .attr(“高度”,h)

我尝试过的原始文件(做同样的事情):,
转换后的文件:,

所以它原来应该这样做

有两种修复方法

要显示边框,我们可以保留当前代码,但需要将填充设置为“无”,只需对边框本身进行样式化。类似这样的工作原理:

.states_borders{
stroke: #00001d;
  stroke-width: .5px;
  fill: white;
   /* stroke-dasharray: 1,1;  */
  stroke-linejoin: round;
  stroke-linecap: round;
}

为了正确地显示状态本身,我们需要使用
topojson.feature
来构造数据对象。

Sun spots?在不知道自己在做什么的情况下无法真正说出。它看起来好像
shp
文件(不管是什么)包含州边界段(如德克萨斯州-俄克拉荷马州边界、德克萨斯州-新墨西哥州边界),而topojson则希望州边界完整(如德克萨斯州边界,四面八方)。可能还有其他问题。@Larskothoff我已经展示了我的代码。我只是在用投影。我尝试过其他投影类型,但仍然得到相同的错误。你能澄清一下你想要实现什么吗
topojson.mesh(拓扑)
返回一条路径,该路径将该拓扑中的所有边界表示为多个开放式子路径。这正是地图显示的内容,只是地图的默认路径样式为黑色填充,没有笔划,这对于仅表示边界的路径没有意义。如果只想绘制边框,请设置
.style({fill:“none”,stroke:“black”})在路径上。如果你想让每个状态都是一个单独的填充路径,你需要一个不同的方法。你使用的方法只绘制边界,它不会创建你可以填充的形状。如果要填充它们,请使用其他方法之一创建一个单独形状的数组。
.states_borders{
stroke: #00001d;
  stroke-width: .5px;
  fill: white;
   /* stroke-dasharray: 1,1;  */
  stroke-linejoin: round;
  stroke-linecap: round;
}