d3.js。如何制作全幅地图?

d3.js。如何制作全幅地图?,d3.js,topojson,D3.js,Topojson,代码可用。地图看起来像是全宽的,但一点也不宽。顶部、左侧和右侧都有一些缩进。所有d3.js地图的示例中都使用了一些奇怪的幻数。我试着使用这些数据,但我的情况似乎不是这样。那个么,地图缩放的真正方法是什么呢?我想让它在任何屏幕上没有任何缩进的全宽 var body = d3.select("body").node().getBoundingClientRect(); var coef = 640 / 360; var width = body.width; var height = width

代码可用。地图看起来像是全宽的,但一点也不宽。顶部、左侧和右侧都有一些缩进。所有d3.js地图的示例中都使用了一些奇怪的幻数。我试着使用这些数据,但我的情况似乎不是这样。那个么,地图缩放的真正方法是什么呢?我想让它在任何屏幕上没有任何缩进的全宽

var body = d3.select("body").node().getBoundingClientRect();

var coef = 640 / 360;

var width = body.width;
var height = width / coef;

var svg = d3.select("body")
  .append("svg")
  .attr("width", width)
  .attr("height", height)

var projection = d3.geo.equirectangular()
  .rotate([-180, 0])
  .scale(width / 640 * 100)
  .translate([width / 2, height / 2])

var path = d3.geo.path()
  .projection(projection);


d3.json("https://dl.dropboxusercontent.com/s/20g0rtglh9xawb8/world-50m.json?dl=1", function(error, world) {
  svg.append("path")
    .datum(topojson.feature(world, world.objects.land))
    .attr("d", path);
});

您正在寻找吗?可能是,但我不知道您提供的示例中的
json
变量是什么。我使用topojson包中的标准
world-50m.json
数据文件。所以,如果我为path.bounds()方法提供
world
变量,我给数组提供了无穷大的值…好吧,你的小提琴对我不起作用,所以我不确定到底是什么问题。试着在FirefoxRight打开它,似乎可以。因此,顶部和底部的空间仅仅是因为纵横比,而左侧和右侧的边距是因为
body
元素的边距。您在寻找吗?可能是,但我不知道您提供的示例中的
json
变量是什么。我使用topojson包中的标准
world-50m.json
数据文件。所以,如果我为path.bounds()方法提供
world
变量,我给数组提供了无穷大的值…好吧,你的小提琴对我不起作用,所以我不确定到底是什么问题。试着在FirefoxRight打开它,似乎可以。因此,顶部和底部的空间仅仅是因为纵横比,而左侧和右侧的边距是因为
body
元素的边距。您在寻找吗?可能是,但我不知道您提供的示例中的
json
变量是什么。我使用topojson包中的标准
world-50m.json
数据文件。所以,如果我为path.bounds()方法提供
world
变量,我给数组提供了无穷大的值…好吧,你的小提琴对我不起作用,所以我不确定到底是什么问题。试着在FirefoxRight打开它,似乎可以。因此,顶部和底部的空间只是因为纵横比,而左侧和右侧的边距是因为
body
元素的边距。