我正在使用具有国家/地区名称文本标签的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; });
答案 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
您也可以将其置于点击等事件中。