D3 map - 过滤特定属性

时间:2016-04-23 20:44:05

标签: d3.js

我正在使用具有国家/地区名称文本标签的D3构建地图。我的问题是我生成了太多的国家/地区标签,并希望手动选择要显示的国家/地区。

最好的方法是什么?我可以使用

找到我的国家/地区名称
d.properties.name

也许我可以使用d3.filter(),但我不知道如何写它

svg.selectAll(".place-label")
.data(topojson.feature(germany, germany.objects.populated).features)
.enter().append("text")
.attr("class", "place-label")
.attr("transform", function(d) { return "translate(" +  projection(d.geometry.coordinates) + ")"; })
.attr("dy", ".35em")
.text(function(d) { return d.properties.name; });

1 个答案:

答案 0 :(得分:0)

您可以使用这样的过滤功能:

.text(function(d) { return d.properties.name; })
.filter(function(labels) {
                    if(labels.properties.name == "some country name"){
                        //do stuff here
                    }
                    //or return the specific label and continue styling it afterwards
                    return labels.properties.name == "germany";
                })
.style("opacity",0);// make it dissappear

您也可以将其置于点击等事件中。