d3.js中地图上的直线

Straight lines on map in d3.js

本文关键字:地图 js d3      更新时间:2023-09-26

我正在试用d3.js,我有一张世界地图,上面有代表不同城市的点。我想用LineString和d3.geo.path()在城市之间画直线。由于某些原因,有些线不能直接到达目的地,正如你在下面的方块中看到的那样,从欧洲到太平洋岛屿之一的线形成了一个弧形。

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

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

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

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

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

有什么办法防止这种电弧吗?

要画一条直线,请使用:

d3.svg.line()

你必须使用的任何投影来转换你的坐标

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

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