4

D3.js を使用して全画面表示の世界地図の Projection.scale([value]) の正しい値を計算して決定する方法を知りたいです。

ドキュメントによると、デフォルト値は 150 です。しかし、この「150」は何を表しているのでしょうか。

画面とまったく同じ幅の世界地図を描こうとしています。svg area を 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