d3.js中地图上的直线

时间:2013-08-28 16:31:51

标签: javascript d3.js

我正在尝试使用d3.js,我有一张世界地图,其中包含代表不同城市的点数。我想在城市之间使用LineString和d3.geo.path()绘制直线(ish)。由于某些原因,某些线路并未直接到达目的地,如下图所示,从欧洲到太平洋岛屿之一的线路会产生弧线。

http://bl.ocks.org/whatsthebeef/6360703

问题似乎发生在地图的一侧和另一侧的线路偏离的地方。我解释了文档的一部分,说这条线是顺时针绘制的,所以我尝试切换点的顺序,但它保持不变。

我正在寻找更像这样的东西

http://mbostock.github.io/d3/talk/20111116/airports.html

我可以在这个例子中看到mbostock正在使用greatArc,但它也在文档中说这不是必需的,并且没有关于大弧的文档,因为它似乎已被弃用。

任何想法如何防止这种电弧放电?

1 个答案:

答案 0 :(得分:1)

要绘制直线,请使用:

d3.svg.line()

您必须使用正在使用的任何投影转换坐标

var trcoords_o = projection(r.coordinates[0]);
var trcoords_d = projection(r.coordinates[1]);

这似乎也不允许你画一条离开地图一边而进入另一边的线。