在d3.js中的点之间绘制线条
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在d3.js中的点之间绘制线条相关的知识,希望对你有一定的参考价值。
我正在尝试使用d3.js在绘制点之间绘制线条。
示例geojson(FeatureCollection of 3 LineString):https://www.dropbox.com/s/hgkdvbnrgmb6kak/test.geojson?dl=0
完整的现有代码:https://www.dropbox.com/s/49820rs561vneti/test.html?dl=0
Code Chunk我遇到问题:
lines.append("g").selectAll("path")
.data(d3.entries(data.features)).enter()
.append("svg:path")
.attr("d", path)
圆圈出现但不是将它们连接在一起的线。
任何帮助将不胜感激!
答案
错误1:
在你的topojson里面。
{
"geometry": {
"type": "LineString",
"coordinates": [
[
103.79971,
1.3013115
],
[
103.8071998,
1.2932586
]
]
},
"type": "Feature",//this is wrong
"properties": {}
}
应该是:
{
"geometry": {
"type": "LineString",
"coordinates": [
[
103.79971,
1.3013115
],
[
103.8071998,
1.2932586
]
]
},
"properties": {}
}
错误2:
lines.append("g").selectAll("path")
.data(d3.entries(data.features)).enter()
.append("svg:path")
.attr("d", path)
.style("fill", "none")
.style("stroke-width", "2px")
您不能创建这样的行,为了创建行,您必须使用图层并像这样添加该功能(注意功能来自您的test.geojson):
d3.json("test.geojson", function(data) {
layer1.features(data.features);//adding the features to the layer
map.add(layer1);
完整的工作代码here。
以上是关于在d3.js中的点之间绘制线条的主要内容,如果未能解决你的问题,请参考以下文章
Javascript / D3.js - 绘制大型数据集 - 提高 d3.js 绘制的 svg 图表中的缩放和平移速度