2016-09-23 108 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

我可以知道這個問題嗎? –