我有一个topojson
文件,其中包含印度的所有地区。我想只渲染特定州的地区。我无法弄清楚如何做到这一点。
这是我的初始代码(它呈现所有区域):
var district_geo_obj = topojson.feature(district, district.objects.india_district); var district_projection = d3.geoMercator() .fitSize([width/2, width/2], district_geo_obj); var district_path = d3.geoPath().projection(district_projection); map_svg.selectAll("path") .data(district_geo_obj.features) .enter().append("path") .attr("d", district_path) .attr('class', 'map-margin-const') .style('fill', function(d) { return 'red'; })
这是topojson文件的screnshot
答案 0 :(得分:-1)
var districts = ["aaa", "bbb", "ccc", "ddd"];
map_svg.selectAll("path")
.data(district_geo_obj.features)
.enter().append("path")
.attr("d", district_path)
.attr('class', 'map-margin-const')
.style('fill', function(d) {
return 'red';
}).style("stroke-width", function (d, i) {
if (districts.indexOf(d["properties"]["NAME_1"]) > -1 ) return "1px"; // Not sure about the syntax. But this should do
else return "0px";
})