在 D3 中显示干净的美国各州地理地图时遇到问题。
我从http://examples.oreilly.com/0636920026938/chapter_12/04_fill.html复制了确切的代码,还从http://examples.oreilly.com/0636920026938/chapter_12/us-states.json 下载了 us-states.json
在 CentOS 上的 firefox 中,我只看到一个蓝色的大钢盒覆盖整个 svg 元素,而不是单个状态。
最终发现 d3.v3.js 不支持波多黎各,因此删除了 us-states.josn 文件中包含波多黎各描述的最后一行。
还是拿一个大钢箱;遍历 html 显示对应于 Virginia 的路径元素还显示了一个横跨整个 SVG 元素的大方形钢蓝色框。
添加 style("opacity",function(d) { if (d.properties.name=="Virginia") return 0.0; else return "1.0"; })
现在地图显示所有州减去显示空白的弗吉尼亚州和我从数据文件中手动删除的波多黎各。
在 html 元素和 json 文件中查看弗吉尼亚的几何形状,并没有看到弗吉尼亚的任何不同或独特之处,它被绘制成 3 部分,但像华盛顿这样的其他州被绘制成 4 部分。
为什么弗吉尼亚没有正确显示的任何建议。对 Virginia 的 HTML 标记的检查看起来也不错,并且似乎反映了数据。如何添加调试代码以更详细地了解为什么 D3 内部或外部浏览器在努力绘制弗吉尼亚并默认在整个 svg 区域上绘制一个大钢蓝色框?
代码开始时与书中的示例完全相同,唯一的变化是 d3.v3.js 是从 d3 org 站点中的 zip 文件重新下载的。当然,弗吉尼亚的不透明度以编程方式降低到零
谢谢..以为我遇到了浏览器问题,然后是数据问题,最后是 d3 库版本问题,但全部消除了,现在需要帮助来决定下一步要看什么..