Получение Невозможно прочитать тип свойства null 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


person Mukesh Yadav    schedule 23.05.2013    source источник


Ответы (1)


Вам не нужно использовать датум для добавления элемента, вы можете просто добавить его:

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

Если вы хотите привязать функции к элементам пути, используйте это вместо этого:

svg.selectAll('path')
    .data(subunits)
    .enter()
    .append('path')
    .attr('d', path);
person Pablo Navarro    schedule 23.05.2013
comment
Даже если я добавлю такой путь, он ничего не покажет, это мой первый раз, поэтому я не уверен, что мой топоджсон неверен или мой код. - person Mukesh Yadav; 24.05.2013
comment
Я проверил ваш код с помощью selectAll, и я не получаю TypeError. Вы пробовали с файлом geojson? Ознакомьтесь с этим руководством bost.ocks.org/mike/map. - person Pablo Navarro; 24.05.2013