3

我正在试验 d3.js,我有一张世界地图,上面有代表各个城市的点。我想使用 LineString 和 d3.geo.path() 在我正在做的城市之间画直线(ish)。出于某种原因,某些线路并不直接通往目的地,正如您在下一个区块中看到的那样,从欧洲到太平洋岛屿之一的线路形成了一个弧线。

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

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

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

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

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

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

4

1 回答 1

1

要绘制直线,请使用:

d3.svg.line()

您将不得不使用您正在使用的任何投影转换您的坐标

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

这似乎也不允许您绘制一条离开地图一侧并进入另一侧的线。

于 2013-08-28T18:42:15.257 回答