2016-03-08 45 views
0

Im遵循這個tutorial「解釋了簡單的d3.js映射」。我想創建一張地圖並改變一個國家的顏色。從topoJSON(D3)中選擇國家ID

我已經簡化教程只顯示在這個Plunk

我想我也許可以通過在topoJSON發現的ID選擇國家地圖

{"type": "Polygon", 
    "id": 604, 
    "arcs": [ 
     [133, -473, -448, -378, -374, -413] 
    ] 
    }, 

我知道,英國是「id」:826.我應該使用id來改變一個國家的顏色嗎?我該如何解決這個問題?

回答

1

您可以使用.filter來選擇您感興趣的國家,然後以您想要的方式進行處理。

實施例:

// select a country by Id and change its styling 
g.selectAll('path') 
    .filter(function(d) { 
    return d.id === 826 
    }) 
.style('fill', 'red') 

演示:Updated plunk

+0

太好了!謝謝 – user3821345

+0

如果我想選擇並更改所有具有匹配id的國家填充到我的數據中,我是否也可以這樣做? https://plnkr.co/edit/axloYGgL2l7264cY6NVw?p=info我想.filter(函數(d){ return(d.id === cd [「country-code」]) }) – user3821345

+0

You可以將所有國家代碼存儲在一個數組中,然後檢查這些國家的ID是否屬於該數組。這是一個關於plnkr的解決方案:https://plnkr.co/edit/Tq5qdQFZnCb0cas0vqe1?p=preview –