为什么我的D3 / topojson SVG没有使用queue.js渲染?

时间:2013-09-08 16:31:58

标签: json svg d3.js topojson queue.js

我正在尝试使用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)
       })

但是我跟着here的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"},...

0 个答案:

没有答案