1

我正在尝试使用 D3.js 创建世界地图,并通过 queue.js 分别加载多个 CSV 文件。但是,我无法呈现 json 几何图形,更不用说能够将 CSV 值附加到路径 ID。

如果没有 queue.js 方法,SVG 可以通过这个方法完美地加载到浏览器中:

     d3.json("world-50m.json", function(error, world) {

       svg.append("g")  
        .selectAll("path")
          .data(topojson.feature(world,world.objects.countries).features)
        .enter().append("path")
          .attr("class","land")
          .attr("d", path)
       })

但是我在这里遵循的 queue.js 方法不会渲染 SVG。

第一的:

    queue()
      .defer(d3.json, "world-50m.json")
    //.defer(d3.csv, "gni.csv", function(d) {rateById.set(d.id, +d.value);})
      .await(ready);

然后:

      function ready(error, world){
         svg.append("g")  
          .selectAll("path")
            .data(topojson.feature(world,world.objects.countries).features)
          .enter().append("path")
            .attr("class", "land")
        //  .attr("class", function(d) {return quantize(rateById.get(d.id));})
            .attr("d", path)

       }

有人可以告诉我我可能犯了什么错误吗?这是 json 文件结构的片段:

            {
      "type":"Topology",
      "transform":{
        "scale":[0.03600360036003601,0.017366249624962495],
        "translate":[-180,-90]
      },
      "objects":{
        "countries":{
          "type":"GeometryCollection","geometries":[
              {"type":"Polygon","arcs":[[0,1,2,3,4,5]],"id":"Afghanistan"},...
4

0 回答 0