如何将地图置于d3.js中本初子午线以外的地方?

时间:2013-02-20 16:31:58

标签: maps d3.js

这是与this one(ggplot2的回答),this one(已为R回答)类似的问题,是this one的后续问题(仍然是寻找答案)。

我怎样才能使用Mike Bostock(http://bl.ocks.org/mbostock/4987520)近期的Constrained Zoom情节,但是在中心而不是非洲有太平洋的起始位置?

像这样...... enter image description here

显然,仅调整代码中的.translate([0, 0])值会移动地图,但没有“换行”可以让地图显示如上。

我确信必须有一种简单的方法来实现这一目标,因为它似乎是一种基本功能,我无法看到或找到解决方案。

1 个答案:

答案 0 :(得分:1)

好的,最后答案非常明显,非常感谢Hashbang的那些人,他们的帖子让我走上了正确的道路。

我遇到的问题是假设我需要使用.translate()函数将地图移动到正确的位置,而实际上.translate()函数只是移动返回地图上的点。换句话说,它直接将你所拥有的东西翻译成另一个位置(呃!)。

我应该做的是使用.rotate函数通过使用像这样的函数来旋转地图的经度;

var projection = d3.geo.mercator()
    .translate([0, 0])
    .scale(width)
    .rotate([-180,0]);

这只是简单地包裹地图并根据需要提供完全控制。 一个功能齐全的例子是here