我正在尝试在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文件
答案 0 :(得分:0)
您不需要使用基准来附加元素,您只需附加它:
svg.append('path')
.attr('d', path(subunits[0]));
如果要将要素绑定到路径元素,请改为使用:
svg.selectAll('path')
.data(subunits)
.enter()
.append('path')
.attr('d', path);