【发布时间】:2015-10-07 15:25:18
【问题描述】:
我必须在带有 d3 的地图上显示一些 svg 圆形元素。
这是其中一个指向罗马的代码,其中一些样式属性设置为 D3。
var feature = g.append("circle")
.style("stroke", "#006600")
.style("fill", "#00cc00")
.attr("r", 20);
如下图所示,元素块没有正确显示右侧面板上指定的颜色。
http://i.stack.imgur.com/YwGLD.png
编辑: 好的,整个问题实际上是在 CSS 规则上。 事实上,像这样设置 svg 元素的 width 和 height 属性:
var svg = d3.select(map.getPanes().overlayPane).append("svg").style("width", "10000").style("height", "10000"),
g = svg.append("g").attr("class", "leaflet-zoom-hide");
圆圈出现在地图上。 现在这可能是一个灵魂,但如果尺寸适合内部的组元素(如果可能的话)或至少适合浏览器的窗口会更好。 我还没有成功,但我已经尝试将宽度和高度属性设置为 100%(如果不设置 div 父级导致不需要的视图,将无法正常工作)。
【问题讨论】:
-
看起来它在地图后面。尝试重新排序元素。
-
能不能加个jsfiddle。您没有传递 cx 和 cy 属性。你是用其他代码设置cs和cy属性吗?
-
看我的回答。我希望你完成使用我的代码。
-
我使用 trasform 属性来翻译它们,cx 和 cy 几乎相同(我也尝试了这个选项)。问题在于 svg 容器的 css 属性。处理它并找到正确的解决方案有点棘手。
标签: javascript css d3.js svg leaflet