d3.js。如何制作全幅地图?
代码可用。地图看起来像是全宽的,但一点也不宽。顶部、左侧和右侧都有一些缩进。所有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
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
元素的边距。