获取无法读取null topojson的属性“类型”

时间:2013-05-23 14:16:23

标签: d3.js topojson

我正在尝试在topojson中实现我的第一张地图 我将形状文件转换为GeoJson然后转换为topojson。

当我运行波纹管代码时,Uncaught TypeError: Cannot read property 'type' of null文件出现D3.js错误。

var width = 960,
      height = 1160;

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

var color = d3.scale.linear()
    .domain([-20, 0, 20, 40])
    .range(["blue", "green", "yellow", "red"]);



  d3.json(base_url+"assets/m4k/party_perfomance/lok15_final.json", function(error, lok) {
        console.log(lok)
        var subunits = topojson.feature(lok, lok.objects.lok15);

        var projection = d3.geo.mercator()
                                    .scale(500)
                                    .translate([width / 2, height / 2]);

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

        svg.append("path")
            .datum(subunits)
            .attr("d", path);
  });

您可以在此处查看代码和topojson文件

http://tributary.io/inlet/5636305

1 个答案:

答案 0 :(得分:0)

您不需要使用基准来附加元素,您只需附加它:

svg.append('path')
    .attr('d', path(subunits[0]));

如果要将要素绑定到路径元素,请改为使用:

svg.selectAll('path')
    .data(subunits)
    .enter()
    .append('path')
    .attr('d', path);