我可以围绕其中心点顺时针转动 D3 地图投影吗?

Can I turn a D3 map projection clockwise around its centre point?

如果可以的话,我怎样才能将我的地图顺时针旋转大约 15-20 度,使其看起来像我在地图集中看到的中东地图?

直觉上,.rotate 看起来应该这样做,但我尝试插入不同的值,但它只是 'uncentres' 地图。

我认为 D3 代码的重要部分是:

var projection = d3.geo.albers()
      .center([49.7, 27.4])
      .rotate([0, 0, 0])
      .parallels([12.6, 40])
      .scale(800)
      .translate([width / 2, height / 2]);

(1)

谢谢。


(2)

我正在尝试复制看起来像这样 (2) 的地图 - 只是因为人们在常规地图集中看到的很熟悉。

不知道您到目前为止使用 projection.rotate() 尝试过什么,我仍然认为这种方法会产生预期的结果。例如,如您的示例中指定的那样,围绕 LAT=49.7N、LON=27.4E 顺时针旋转 20 度可以通过以下方式完成:

projection.rotate([-49.7,-27.4,-20])

我设置了一个 Plunk 来展示结果。


更新

如果您不一定要使用阿尔伯斯投影,可能还有其他选项可以提供更符合您需求的结果

what people are familiar with seeing in a regular atlas.

我在三张地图集中查找了它,其中使用等距柱状投影描绘了阿拉伯半岛,这看起来像您想要的输出:

var projection = d3.geo.equirectangular()
    .rotate([-49.7,-27.4])

您只需通过应用 .rotate([-49.7,-27.4]) 以 LAT=49.7N、LON=27.4E 为中心,而无需进一步滚动投影,即您不会将数组中的第三个元素提供给 rotate()。请参阅我更新的 Plunk。对我来说,这看起来就像我在地图集中看到它时所期望的样子。