D3.js 我可以把D3地图投影顺时针绕其中心点旋转吗?
如果可以的话,我怎么能把我的地图顺时针旋转15-20度,这样看起来就像我在地图册上看到的中东地图 直观地看,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
.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例子?谢谢。我是在现实生活中这样做的!我走到书架前,拿出我的三个地图集,查看阿拉伯半岛,并检查绘制这些地图时使用的投影。在互联网发明之前,人们如何生活;-)我不知道地图集里有这样的信息。谢谢-很高兴了解未来!