我正在追随迈克·波斯托克(Mike Bostock)的tutorial。
<!DOCTYPE html>
<html>
<head>
<script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
<script type = "text/javascript" src="https://d3js.org/d3-array.v1.min.js"></script>
<script type = "text/javascript" src="https://d3js.org/d3-geo.v1.min.js"></script>
<script src="https://unpkg.com/topojson-client@3"></script>
</script>
<style>
body { font-family: Arial; }
</style>
</head>
<body>
<svg></svg>
<script>
us = d3.json("https://unpkg.com/us-atlas@1/us/10m.json")
const width = 960;
const height = 600;
const path = d3.geoPath();
const svg = d3.select("svg")
.attr("width",width)
.attr("height",height)
.style("width", "100%")
.style("height", "auto");
//svg-command
svg.append("g")
.selectAll("path")
.data(topojson.feature(us, us.objects.counties).features)
.enter().append("path")
.attr("fill", d => color(data.get(d.id)))
.attr("d", path)
.append("title")
.text(d => format(data.get(d.id)));
format = d3.format("")
</script>
</html>
我收到错误Uncaught TypeError: Cannot read property 'counties' of undefined at check.html:32 (anonymous) @ check.html:32
我的理解是svg命令将一个group元素作为子元素添加到svg元素。它选择路径变量并绑定县,这是topojson文件中的特征。 topojson.feature()命令将数据转换为GEOJson。
所有县都可以在enter()命令中选择,因为html块中没有“ g”。然后,以下命令为它们分别指定颜色和名称。
topojson.feature是否仍在使用?