D3 Map不渲染澳大利亚topojson文件

时间:2016-07-12 10:05:58

标签: d3.js topojson

我有一个JSON文件,d3地图没有呈现我创建的澳大利亚TopoJSON文件。

相同的代码可以很好地呈现美国地图。浏览器检查器中没有错误,两个地图在geojson.io等在线可视化网站上呈现正常。

我提供了JSON的链接。

<html>

<head>
  <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
  <script src="http://d3js.org/topojson.v1.min.js"></script>
  <style>
    path {
      fill: #ccc;
    }
  </style>
</head>

<body>
  <h1>topojson simplified Australia</h1>
  <script>
    var width = window.innerWidth,
      height = window.innerHeight;

    var path = d3.geo.path();

    var svg = d3.select("body").append("svg")
      .attr("width", width)
      .attr("height", height);

    d3.json("topo-australia-simplified.json", function(error, topology) {
      if (error) throw error;

      svg.selectAll("path")
        .data(topojson.feature(topology, topology.objects.australia).features)
        .enter().append("path")
        .attr("d", path);
    });
  </script>


</body>

</html>

1 个答案:

答案 0 :(得分:0)

问题在于你正在使用:

var path = d3.geo.path();

你没有给出预测:

var projection = d3.geo.mercator()
  .scale(500)//scale it up as per your choice.
  .translate([-900,0]);//translate as it was scaled up.

var path = d3.geo.path()
  .projection(projection);

工作代码here