4

我想知道如何使用 D3.js 为全屏世界地图计算和确定正确的 projection.scale([value]) 值。

文档说默认值为 150。但是这个“150”代表什么?

我正在尝试绘制与屏幕宽度完全相同的世界地图。我将 svg 区域设置为 window.innerWidth 但不确定我应该为世界地图的比例赋予什么值。

在某些情况下,人们得到了他们想要适应的特征的范围,但我无法得到世界地图整个范围的范围。

在这种情况下计算比例值的正确方法是什么?

width = window.innerWidth;
height = window.innerHeight;

svg = d3.select("#svgArea").append("svg")
    .attr("id", "svg")
    .attr("width", width)
    .attr("height", height);

projection = d3.geo.equirectangular()
    .scale(????)
    .translate([width / 2, height / 2])
    .precision(.1);

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

d3.json("world-50m.json", function(error, world) {
    var land = topojson.feature(world, world.objects.land);
    svg.insert("path", ".graticule")
        .datum(land)
        .attr("class", "land")
        .attr("fill", "#aaaaaa")
        .attr("stroke", "#000000")
        .attr("stroke-width", "0.5px")
        .attr("d", path);
})

提前致谢。

4

0 回答 0