尽管在控制台上没有错误,D3地图仍未渲染

时间:2017-10-20 10:47:12

标签: javascript json d3.js

我想打印一张托斯卡纳省的D3.js地图。我按照以下代码在线收集的说明(我使用Flask在线渲染):

<!DOCTYPE html>
<html lang="en"> 
<head> 
    <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
    <script src="http://d3js.org/topojson.v1.min.js"></script>
    <script src="http://d3js.org/d3.geo.projection.v0.min.js">    
</script>
</head>
<body>
    <div id="map"></div> 
</body>
<script type="text/javascript">
  var width = 700,
  height = 300;

  var projection = d3.geo.mercator()
  .center([0, 50])
  .scale(100)
  .rotate([0,0]);

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

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

  var g = svg.append("g");

  d3.json("{{ url_for('static', filename='italy.json') }}",     function(error, topology) {
  console.log(topology);
  g.selectAll("path")
  .data(topojson.feature(topology, topology.objects.ITA_adm2).features)
  .enter()
    .append("path")
    .attr("d", path);
  console.log(g);
  });
    </script>
</html>

查看JavaScript控制台时,它不会返回任何类型的错误,当我在网上找到word.json时,它可以正常工作。 为了制作我的地图,我下载了意大利各省GeoJSON(https://github.com/deldersveld/topojson/blob/master/countries/italy/italy-provinces.json)。我将它加载到站点mapshaper上,我只选择NAME_1==Toscana的元素。然后我将结果导出到topojson中(因此,您在数据中看到.ITA_adm2,因为它是存储几何的值的名称)。 结果并没有给我任何问题,但它也没有显示任何问题。我认为错误可能与TopoJSON有关,但是当我打印出console.log值时,它似乎读得很好。

0 个答案:

没有答案