在看了“让我们制作地图”(很好的教程!)之后,我决定制作我们省的地图并为该省的所有市镇着色。我做了shapefile的工作,成功地用黑色投影了全省。您能帮助理解 svg.selectAll(".subunit") 函数,以便我可以更改它以从我的 geojson 文件中提取 GM_CODE 吗?如果需要,我可以发送 geojson 文件。
<!DOCTYPE html>
<meta charset="utf-8">
<style>
.GM_CODE.GM0003 { fill: #ddc; }
.GM_CODE.GM0005 { fill: #cdd; }
.GM_CODE.GM0007 { fill: #cdc; }
.GM_CODE.GM0009 { fill: #dcd; }
</style>
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://d3js.org/topojson.v1.min.js"></script>
<script>
var width = 960,
height = 640;
var projection = d3.geo.albers()
.center([0, 53.2])
.rotate([-6.5, 0])
.parallels([50, 60])
.scale(40000)
.translate([width / 2, height / 2]);
var path = d3.geo.path()
.projection(projection);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
d3.json("groningen.json", function(error, json) {
svg.selectAll(".subunit")
.data(topojson.feature(json, json.objects.gemeente).features)
.enter.append("path")
.attr("class", function(d) { return "GM_CODE " + d.GM_CODE; })
.attr("d", path);
});
</script>