D3.js 我可以把D3地图投影顺时针绕其中心点旋转吗?

D3.js 我可以把D3地图投影顺时针绕其中心点旋转吗?,d3.js,D3.js,如果可以的话,我怎么能把我的地图顺时针旋转15-20度,这样看起来就像我在地图册上看到的中东地图 直观地看,.rotate看起来应该这样做,但我尝试插入不同的值,它只是“取消”地图的中心 我认为D3代码的重要一点是: var projection = d3.geo.albers() .center([49.7, 27.4]) .rotate([0, 0, 0]) .parallels([12.6, 40]) .scale(800) .t

如果可以的话,我怎么能把我的地图顺时针旋转15-20度,这样看起来就像我在地图册上看到的中东地图

直观地看,
.rotate
看起来应该这样做,但我尝试插入不同的值,它只是“取消”地图的中心

我认为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]);
(一)

谢谢


(二)


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

不知道您迄今为止使用的是什么,我仍然认为这种方法会得到预期的结果。例如,按照示例中的规定,围绕LAT=49.7N,LON=27.4E顺时针旋转20度可通过以下方式完成:

projection.rotate([-49.7,-27.4,-20])
我建立了一个模型来演示结果


更新 如果您不一定要使用Albers投影,那么可能会有其他选项提供更适合您的需求的结果

人们熟悉的在普通地图册中看到的东西

我在三个地图集中查找了它,其中阿拉伯半岛是使用等矩形投影绘制的,这看起来像您想要的输出:

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

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

你可以简单地旋转容器……但我不能顺时针旋转投影,对吗?你也应该可以这样做。你需要在投影的div中居中地图才能工作。它是居中的,不是吗?通过
.center([49.7,27.4])
然后通过
翻译([width/2,height/2])
谢谢您的建议。您的值构成上面(2)中的映射。我将地图比例改为400,否则这些值只会生成一个空白页。你是如何在三个地图集中查找它的?你的意思是说你能找到三个投射阿拉伯半岛的D3例子?谢谢。我是在现实生活中这样做的!我走到书架前,拿出我的三个地图集,查看阿拉伯半岛,并检查绘制这些地图时使用的投影。在互联网发明之前,人们如何生活;-)我不知道地图集里有这样的信息。谢谢-很高兴了解未来!