我是TopoJson的新手,我有一些看起来像这样的数据......
{"type":"Polygon","properties":{"name":"Arkansas"},"arcs":[[0,1,2,3,4,5]]}
我想说输出阿肯色州,所以我提出以下(我使用underscore.js)......
var collection = topojson.feature(us, us.objects.subunits).features;
var final = [];
_.forEach(collection, function(item){
if(item.properties.name == "Arkansas"){
final.push(item);
}
});
svg.selectAll(".subunit")
.data(final)
.enter()
.append("path")
.attr("class", function(d) { return "subunit " + d.id; })
.attr("d", path);
这很好但是不是更方便吗?有没有类似us.objects.subunits [“Arkansas”]我能做什么?
答案 0 :(得分:1)
(从我的手机和内存中,尝试以下内容)
通常,要走的路是这样的:
var final = topojson.feature(us, us.objects.subunits).features;
svg.selectAll(".subunit")
.data(final)
.enter()
.append("path")
.attr("class", function(d) { return "subunit " + d.id; })
.attr("d", function(d){ if(d.properties.name == "Arkansas"){ return d } });
过滤直接在.attr('d', function(d){…})
范围内。如果不起作用,请尝试.attr('d', function(d, path){…})
并返回路径。