在地图上绘制平行线

时间:2014-07-11 00:33:03

标签: d3.js

示例http://bl.ocks.org/mbostock/5731693显示在equirectangular地图上绘制的赤道,然后转换到另一个投影。在等角矩形投影上,赤道只是一条水平延伸的直线。

如果我将平行移动到另一个纬度,比如20⁰,就会发生有趣的事情。 D3不是在赤道上方绘制直线20⁰,而是从给定的控制点中间绘制接近30⁰平行线的弯曲段。

由于我刚开始使用D3,我对此处发生的事情感到有些不知所措。

1 个答案:

答案 0 :(得分:0)

看起来每个点都与它们所放置的球体的大弧相连。大弧被定义为大圆的一部分,而这些圆又是将球体分成两半的圆。

大弧是连接球体上两个点的最短路径。它们相当于穿过球体表面的直线。在赤道上,这是一个很大的圆圈(因为它将地球划分为北半球和南半球),这些巨大的弧线是赤道的一部分,形成了一条在equirectanglar投影上看起来像一条直线的东西。由于20⁰纬线不是一个大圆,它上任意两点之间的最直接路径不会位于线上,而是位于20⁰纬线以北的弧。

对于大圆圈,您可以使用坐标[[-180, 20], [-90, 0], [0, -20], [90, 0], [180, 20]]