D3 Choropleth:TypeError:无法读取未定义的属性“县”

时间:2019-02-03 02:18:56

标签: javascript json d3.js topojson

我正在追随迈克·波斯托克(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是否仍在使用?

0 个答案:

没有答案