2016-09-23 89 views
0

我想在重心使用县标识

function socket() { 
    socket.on = io.('/map'); 
    socket.on(func(data)) { 
    var countyid = data.countyid; 
    var isAffected = data.affected; //may be 0 or 1 
    var selectorId = '[id="'+ Number(countyid)+'"]'; 
    svg.selectAll(selectorId) 
     .enter().append("circle") 
     .attr("class","circle") 
     .attr('transform', path.centroid(d3.select(countyid))) 
     .attr('r',20); 
    } 
} 

它似乎无法正常工作插入圈到地图/ HTML页面上的元素插入圈成一个动态的地图中d3.js。

我已经能够使用一种非常不同的方法解决这个问题。

我创建使用https://bost.ocks.org/mike/bubble-map/

然后,我改变使用jQuery的质心的属性对所有县的重心。 以这种方式,我通过套接字删除了svg创建。

+1

代码在试图绘制任何圆圈之前应该打破 - 检查JS – dominikus

+0

这是确定的更接近伪代码概念。不是实际的可运行代码。 – NemoK

+0

@NemoK你可以仅使用'transform'来设置没有'cx'或'cy'的圆的位置(所以,忽略下面的两个答案),但是你必须返回一个“translate”值,正确地检索'centroid'数组的索引。因此,为了帮助你*“为什么这个代码不工作?”,你必须提供实际的代码,而不是伪代码。 –

回答

-1

要在svg中绘制圆圈,可以通过指定其属性来实现。

  • CX,CY,R

CX,CY确定所述圆到内部SVG绘制的位置。基本上,X轴和Y轴定位的位置

[R是圆的半径

<svg width="100" height="100"> 
 
    <circle cx="50" cy="50" r="40"/> 
 
</svg>

指定在你的代码的属性,并且将努力为你

+0

我可以知道这个问题吗? –