【发布时间】:2013-11-08 02:47:06
【问题描述】:
无法在 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 部分,但华盛顿等其他州被绘制成四部分。
李> 关于未正确显示弗吉尼亚的任何建议。对 Virginia 的 HTML 标记的检查看起来也不错,并且似乎反映了数据。如何添加调试代码以更详细地了解为什么 D3 内部或外部浏览器难以绘制 Virginia 并默认在整个 svg 区域中绘制一个大钢蓝色框?
代码开始时与书中的示例完全相同,唯一的变化是 d3.v3.js 是从 d3 org 站点中的 zip 文件重新下载的。当然,弗吉尼亚的不透明度以编程方式降低到零
谢谢 .. 以为我遇到了浏览器问题,然后是数据问题,最后是 d3 库版本问题,但都消除了,现在需要帮助来决定下一步要看什么..
【问题讨论】: