Javascript 什么';在D3.js地图上从lat/lon投影直线的最简单方法是什么?

Javascript 什么';在D3.js地图上从lat/lon投影直线的最简单方法是什么?,javascript,d3.js,maps,Javascript,D3.js,Maps,我在D3.js地图上添加了几个圆,将它们标在0,0处,然后使用transform将这些圆转换为正确的纬度和经度(包含在数组数据中): 这些圆可以很好地工作,但我还想在其中一些点之间添加短线(都在英国境内的点之间),在同一组坐标上绘制 我尝试过添加如下所示的线条,但不知道如何添加坐标: var line = d3.svg.line(); g.selectAll(".lines") .data(geo) .enter().append("line", ".line") .attr("d

我在D3.js地图上添加了几个圆,将它们标在0,0处,然后使用transform将这些圆转换为正确的纬度和经度(包含在数组数据中):

这些圆可以很好地工作,但我还想在其中一些点之间添加短线(都在英国境内的点之间),在同一组坐标上绘制

我尝试过添加如下所示的线条,但不知道如何添加坐标:

var line = d3.svg.line();

g.selectAll(".lines")
  .data(geo)
  .enter().append("line", ".line")
  .attr("d", line)
  .attr("x1", ?) //Line to go from 51.50, -0.12 to 55.95, -3.18
  .attr("y1", ?)
  .attr("x2", ?)
  .attr("y2", ?);
是否有一种方法可以同时设置
x1
y1
,以及
x2
y2
,以便我可以使用
projection()
功能(就像我对圆所做的那样)

还是有更好的方法来做到这一点


谢谢

你看到了吗?谢谢,我已经读过了。然而,我仍然不明白如何使用投影([lat,lng])给一条线提供它的世界坐标。我是分别输入
x1
y1
x2
y2
,然后进行翻译,还是在输入x和y坐标时在每个x和y坐标上使用
projection()
。所以它应该是
.attr(“x1”,projection([51.50,-0.12])[0])。attr(“y1”,projection([51.50,-0.12])[1])
等等。但是,您最好先生成这部分数据,然后使用一个行生成器。这非常有效。非常感谢!
var line = d3.svg.line();

g.selectAll(".lines")
  .data(geo)
  .enter().append("line", ".line")
  .attr("d", line)
  .attr("x1", ?) //Line to go from 51.50, -0.12 to 55.95, -3.18
  .attr("y1", ?)
  .attr("x2", ?)
  .attr("y2", ?);